Hak5 usb rubber ducky с прошивкой twin duck

Обновлено: 03.07.2024

С телефоном на базе Android и USB-флешкой, злоумышленник может взломать компьютер с Windows 10 менее чем за 15 секунд. После того, как корневая оболочка была установлена, сохранение в бэкдоре можно настроить с помощью двух простых команд. Все это не замечает ни антивирус, ни стандартный брандмауер Windows.

Как работает эта атака?

Будет создана полезная нагрузка PowerShell для загрузки, импорта и выполнения Powercat в одной команде. Затем он будет закодирован в двоичном формате, понятном USB Rubber Ducky.

Используя USB Rubber Ducky, Powercat исполняется с правами администратора и быстро устанавливает оболочку через Netcat.

На этом этапе постоянство настраивается с помощью команды schtasks, которая была разработана Microsoft для автоматизации задач и команд в Windows 10.

Что нам понадобится?

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

USB Rubber Ducky.

USB Rubber Ducky идентифицирует себя как клавиатуру при подключении к компьютерам, а затем автоматически вводит вредоносные команды, предварительно запрограммированные в его полезную нагрузку. Полезная нагрузка может быть настроена для выполнения множества эксплойтов. Цены на USB Rubber Ducky от начинаются от 45 долларов (

В качестве альтернативы USB Rubber Ducky проекты NetHunter и DroidDucky могут превратить устройства Android в инструменты для инъекции. Они требуют модификации операционной системы Android.

Android-устройство с предустановленным UserLAnd.

OTG адаптер.

После создания полезной нагрузки PowerShell (на следующем этапе) ее необходимо будет перенести на карту microSD в Rubber Ducky.

Некоторые модели телефонов и планшетов Android оснащены слотом расширения microSD для большего объема памяти, поэтому, если у вас есть один из них, вам будет удобно, поскольку вы можете передавать файл таким способом.

Если на вашем устройстве нет слота для карт памяти microSD, вам потребуется какой-либо адаптер On-The-Go (OTG), который позволяет подключать карты памяти к вашему устройству через порт зарядки. Универсальным решением будет считыватель MicroSD USB-C Monoprice, если в вашем телефоне есть порт USB Type-C. Lexar производит аналогичный продукт для портов Micro-USB.

Поскольку Rubber Ducky поставляется с адаптером microSD-USB, вы можете выбрать адаптер OTG с гнездом USB типа A для подключения адаптера microSD. Если у вас есть порт USB-C на устройстве Android, Aukey станет хорошим адаптером. Для портов Micro-USB доступно множество дешевых опций, таких как кабель Ugreen.

Кроме того, любая комбинация адаптеров может сделать работу ещё лучше. Как вы можете видеть, я использую адаптер Aukey в сочетании с портативным кард-ридером Anker.

Не обязательно, но желательно. Всё зависит от атаки.

Если сеть Wi-Fi используется совместно с целевым устройством, то встраивание локального IP-адреса злоумышленника в полезную нагрузку будет работать. В других случаях может потребоваться развернуть Ngrok.

После приготовлений мы готовы начать.

Начало работы с UserLAnd.

Вам нужно будет установить и настроить UserLAnd, создать новую файловую систему и подключиться к ОС через SSH с ConnectBot (или JuiceSSH или встроенным SSH-клиентом). Гугл вам в помощь.

Обновите систему и установите необходимое программное обеспечение.

Как и для любого устройства на базе Unix, перед продолжением проектов рекомендуется убедиться, что установленные пакеты полностью обновлены. Обязательно обновите систему и установите необходимое программное обеспечение, а также установите Java, который необходим для полезной нагрузки USB Rubber Ducky, с помощью приведенных ниже команд.

Выполнение этой команды может занять несколько минут в зависимости от доступной скорости интернета и процессора Android. Старые устройства Android загружают и распаковывают пакеты дольше.

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

Java требуется для компиляции полезных нагрузок Ducky. Чтобы установить его, используйте команду ниже.

Запустите Netcat.

В зависимости от сценария атаки существует несколько способов настроить Netcat, который позволит получить удаленный доступ к целевому компьютеру Windows.

Локальный IP-адрес. Если целевой компьютер находится в той же сети Wi-Fi, что и устройство Android, можно будет просто запустить прослушиватель Netcat в ОС UserLAnd Kali. Хотя этот метод и быстрый, он не идеален. Если цель отключится от общей сети Wi-Fi, соединение Netcat будет разорвано, и не будет никакого доступа к устройству при его перемещении между различными сетями.

Виртуальный частный сервер. VPS идеально подходят для удаленного взлома целей, поскольку они перемещаются между различными сетями Wi-Fi в любой точке мира. В этом случае злоумышленник приобретет дешевые VPS и SSH. В этом случае Netcat и Screen будут установлены для длительного хранения на взломанном компьютере Windows. Это можно настроить полностью с Android.

Ngrok. В этом случае Ngrok будет пересылать запросы обратно на Android-устройство злоумышленника. Бесплатные учетные записи Ngrok не позволяют пользователям перерабатывать субдомены, поэтому это может обеспечить сохранение до тех пор, пока сервер Ngrok не будет завершен на устройстве Android. Несмотря на то, что сервер Android можно поддерживать в течение длительного периода времени, он неизбежно в конечном итоге завершает работу, когда Android перезагружается или молча закрывает приложение UserLAnd, работающее в фоновом режиме.

В любом случае, рекомендуется настроить Screen так, чтобы сеансы терминала продолжались, несмотря на закрытие соединений SSH.

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

Чтобы начать новую сессию, просто напишите screen.

Затем используйте команду ifconfig -a для определения локального IP-адреса, используемого системой. Этот IP потребуется на следующем шаге при создании полезной нагрузки.

Наконец, запустите Netcat с помощью приведенной ниже команды.

Используя порт (-p) 1234, Netcat будет прослушивать (-l) на каждом доступном интерфейсе. -Vv напечатает IP-адрес цели в терминале, когда будет установлено новое соединение.

Создаем полезную нагрузку.

После перезагрузки Android запустите приложение UserLAnd и SSH в новой системе Kali.

/) каталоге. Этот файл будет содержать полезную нагрузку Ducky в виде простого текста.

Комментарии (REM) были добавлены, чтобы объяснить, что делает каждая строка полезной нагрузки.

Многое происходит в PowerShell в одной вкладке. Есть несколько команд, связанных и разделенных точками с запятой.

Комментарии могут оставаться в полезной нагрузке и не будут влиять на нажатия клавиш. Чтобы сохранить и выйти из терминала, нажмите Ctrl-x, затем y, затем Enter.

Кодируем полезную нагрузку.

USB Rubber Ducky не может быть загружен на карту microSD в виде обычного текста. Вместо этого, Hak5 Duck Encoder будет использоваться для преобразования простого текста в двоичный формат.

Чтобы клонировать репозиторий Duck Encoder, используйте команду ниже.

Перейдите (cd) во вновь созданный каталог Encoder /. И закодируйте payload.txt.

Эта команда будет использовать кодировщик.jar для преобразования входного (-i) файла в необходимый двоичный файл «inject.bin» для вывода (-o). Имя выходного файла не является произвольным и должно называться «inject.bin», чтобы Ducky мог выполнять атаки с помощью нажатия клавиш.

Когда это будет сделано, в каталоге Encoder / появится новый файл «inject.bin». Это можно проверить с помощью приведенной ниже команды ls -l.

Подключаем Ducky MicroSD к устройству Android.

С помощью адаптера для чтения карт памяти, вставьте Ducky microSD в устройство Android. Содержимое файла можно просмотреть с помощью приложения Android для загрузки.


Через несколько секунд новое съемное устройство будет доступно через системные загрузки

Вернитесь к терминалу OS Kali. Операционная система не будет иметь доступа к внешним устройствам хранения (например, к карте microSD), поэтому сначала нужно скопировать (cp) файл «inject.bin» в каталог / sdcard / Download /, а затем скопировать в microSD. используя ОС Android.

И вот оно, теперь доступно в приложении для закачки.


Начинаем взлом!

Вставьте USB Rubber Ducky в целевой компьютер с Windows 10, и новое соединение с устройством Android будет установлено.

Netcat сообщит о новом «Соединении с xx.xx.xx.xx», содержащем IP-адрес цели. Выполнение такой команды, как ls или pwd, выведет список файлов в текущем каталоге или напечатает имя текущего каталога соответственно. Pwnage может начаться.

Теперь, используя другой сеанс Screen, создайте новый Netcat и подождите, пока компьютер с Windows не будет работать.

Там много веселья со Schtasks. Для более подробной информации о доступных аргументах используйте schtasks /? и schtasks / Create/?

Если вы хотите попробовать Kali Linux, то Raspberry Pi прекрасно подойдет для начала. В 2018 году была выпущена модель Raspberry Pi 3 Model B+ с более мощным процессором, Wi-Fi, Bluetooth и Ethernet. Мы рекомендуем начинающим пентестерам комплект Kali Pi, который управляется ядром Kali Re4son и включает в себя беспроводной сетевой адаптер и USB Rubber Ducky. Он вполне доступен по цене.

Для проведения тестов, различных методик взлома и загрузки хакерского софта вы не должны использовать ваш основной компьютер, а только отдельную и независимую систему, на которой не страшно действительно что-то сломать. Raspberry Pi легко позволяет это сделать за относительно небольшие деньги в 45 — 50 долларов.

Не смотрите на то, что Pi очень маленькая. Это по-настоящему мощная платформа, которую можно использовать для проработки большинства статей на нашем сайте.


Зачем использовать Raspberry Pi для изучения основ взлома

У Raspberry Pi уже появилось много фанов, а это означает, что новичок может получить большую поддержку со стороны сообщества. Помимо специалистов по безопасности и хакеров, использующих ее для запуска Kali Linux, многие разработчики используют Pi для научных и промышленных приложений. Первая Pi была сделана для того, чтобы познакомить школьников с программированием. Сегодняшняя Raspberry Pi в умелых руках с соответствующими аксессуарами способна делать совершенно удивительные вещи. При создании прототипов кибероружия Raspberry Pi является основой подтверждения концепции (proof-of-concept) атаки, начиная от захвата дронов и заканчивая созданием массовых помех Wi-Fi.

Небольшие размеры Pi и способность делать некоторые сложные вещи были не раз продемонстрированы на шоу типа Mr.Robot, где она использовалась для удаленного взлома системы климат-контроля датацентра. Тем не менее, нужно понимать, что это не суперкомпьютер и поэтому важно правильно сформировать свои ожидания от этого крошечного, незаметного компьютера. Такие вещи, как брутфорс совершенно не практичны на Pi, за исключением самых простых списков, но в реальной атаке большая часть такой работы может быть переложена на облачный сервис.


Изучение Raspberry Pi вовсе не означает, что вы привязаны к операционной системе Kali Linux. Такие проекты как BerryBoot позволяют вам создавать SD-карту со многими операционными системами для Pi, что дает вам возможность загружать любую ОС, с которой вы хотите работать. Это также означает, что вы можете сделать Pi как хакерской рабочей станцией, так и намеренно уязвимым сервером для отработки атак, просто перезагрузив систему и выбрав другой образ диска.

Raspberry Pi также управляется Raspbian, официальной ОС Raspberry Pi. Эта ОС на базе Debian также может быть использована для изучения базовых инструментов Linux и хакинга, хотя для этого потребуется потратить больше времени на ее настройку. Если вы вдруг застряли при изучении программно-определяемой радиосистемы (SDR) или NFC в Kali Linux на Pi, то бывает, что переход на Raspbian может заставить все оборудование работать как единое целое, когда все остальные попытки терпят крах.

Использование для хакинга модели Pi 3 B+

Благодаря ядру от Re4son улучшенные спецификация и производительность сетевого оборудования могут использоваться с инструментами хакинга, которые предлагает Kali. Новая Pi оснащена контроллером 10/100/1000 Gigabit LAN, а также значительно повышена скорость Wi-Fi, что делает Pi идеальным для работы с сетями, вроде запуска статического веб-сервера, NAS или прокси-сервера. Она также стала идеальной платформой для взлома Wi-Fi и сетей, что делает ее более универсальным инструментом в наборе пентестера.

В дополнение к улучшениям в работе сетевых модулей, благодаря 64-разрядному четырехъядерному процессору с частотой 1,4 ГГц Pi 3 Model B+ получила увеличение производительности на 16,7% по сравнению с предыдущей моделью. Хотя этого увеличения недостаточно, чтобы Pi могла конкурировать с большинством настольных компьютеров или ноутбуков, но тем не менее это увеличение делает Kali более отзывчивой.


Сборки Kali Pi, Raspberry Pi легко можно использовать сразу после того, как вы загрузите Kali в первый раз. Вы можете подключить Pi к свободному монитору через HDMI-порт или подключиться к вашей Pi с помощью SSH через Ethernet или Wi-Fi. Подключение батарейного блока даст вам возможность использовать систему Kali Linux в любом месте и позволит подключаться к вашей Pi с ноутбука или смартфона через домашнюю сеть Wi-Fi или горячую точку сотового телефона.

Почему мы используем ядро от Re4son

Хотя новая Raspberry Pi поставляется с Bluetooth, Wi-Fi и другими опциями, которые можно использовать с помощью Kali Linux, но заставить их работать не всегда просто. Мы знаем, что у многих новичков возникают проблемы с настройкой Bluetooth на Pi, который так необходим для работы с некоторыми инструментами из Kali. Чтобы облегчить решение этой задачи, мы посмотрели на ядро Re4son — специальную версию Kali Linux, оптимизированную для работы с Raspberry Pi. Эта версия Kali работала с Raspberry Pi 3 Model B+ еще до того, как официальный релиз был доступен на Offensive Security.


Другая проблема, которую исправляет ядро Re4son — это возможность входа в систему при ее запуске. Чтобы включить Pi и войти в систему, вам нужно, чтобы ваша Pi запустила Kali Linux и подключилась к какой-нибудь известной ей Wi-Fi сети. После этого вы можете войти в Pi с помощью SSH с любого устройства в той же сети. Однако это схема не сработает, если Pi застрянет на этапе входа в систему, когда Kali спросит у вас имя пользователя и пароль. Наше предыдущее решение для этой задачи было довольно сложным. Некоторым читателям было непросто следовать за нашими объяснениями. Поэтому мы рады, что в этой версии наш Pi-образ поставляется с установочным скриптом, который автоматически решит эту проблему вместо вас.

Рекомендуемый набор для хакинга для начинающих в 2018 году

Чтобы начать работу с Raspberry Pi в качестве платформы для хакинга, вам понадобится несколько ключевых компонентов для запуска Pi. Сначала вам нужен будет доступ к другому компьютеру для того, чтобы записать образ Kali на SD-карту.


Кроме самой Pi 3 B+ вам будет нужен хороший адаптер питания. Для питания Pi использует кабель microUSB, а в комплект для начинающих CaniKit входит соответствующий адаптер. В целом, подходящим источником питания будет любой 2,4-амперный адаптер.

Затем вам понадобится SD-карта, на которую вы запишете операционную систему. Здесь имеется много вариантов, но лучше брать быструю SD-карту с 16 ГБ. Можно, конечно, взять карту и на 8 ГБ, но в этом случае все будет несколько сложнее.

Для взаимодействия с Pi, вам понадобится клавиатура и мышь. Проще всего использовать беспроводную клавиатуру и мышь, хотя мы рекомендуем избегать Bluetooth-устройств любой ценой. Они не очень хорошо работают с Kali и для настройки требуют практически вечность.


Для отработки приемов хакинга Wi-Fi, вам понадобится беспроводной сетевой адаптер, совместимый с Kali. После тестирования многих адаптеров мы были приятно удивлены производительностью сетевых адаптеров Panda. В частности, нам понравился их небольшой размер и возможность работать с 2,4/5 ГГц сетями. Для осторожного хакинга Wi-Fi мы рекомендуем использовать PAU05 для 2,4 ГГц или PAU07 для 2,5 и 5 ГГц. Если вы хотите подключить направленную или усиленную антенну к адаптеру, то PAU06 отлично подойдет для хакинга 2,4 ГГц сетей, в то время как PAU09 — это мощный двухдиапазонный адаптер с двумя съемными антеннами.

Наконец, мы рекомендуем начинающим брать Hak5 USB Rubber Ducky с прошивкой Twin Duck. Прошивка Twin Duck позволяет нам монтировать Rubber Ducky как обычную USB-флешку, что означает, что мы можем записывать и кодировать Ducky Script на нашей Pi с подключенной Rubber Ducky. Хоть Rubber Ducky и не поставляется с прошивкой Twin Duck, ее легко можно записать.


Шаг 1. Скачайте и запишите образ Kali Linux на SD-карту


Если вы используете Windows, то для записи образа на карту вы можете использовать Win32 Disk Imager. На Mac для записи вы можете использовать ApplePiBaker или Etcher. В нашей видео-инструкции выше мы использовали Etcher, так как это самый простой способ. Если в вашем случае происходят какие-то ошибки, то вы можете записать образ Kali на SD-карту через терминал следующим образом.

На Mac перед подключением SD-карты выполните в терминале следующую команду:

Она отобразит список всех дисков, подключенных в вашей системе. Затем вставьте SD-карту и снова выполните эту команду. Обратите внимание на имя вашей карты в файловой системе. Оно должно выглядеть как «/dev/disk2s1». Вы должны быть очень внимательны — не ошибитесь в написании этого имени на последующих шагах.

Теперь мы будем использовать команду dd для загрузки образа Kali на карту. Для начала, размонтируем этот раздел, чтобы вы могли записывать на него. X — это правильный номер диска:

Затем выполните следующую команду, чтобы записать образ на SD-карту. Если после номера диска есть «s» (например, rdisk2s1), не включайте «s» и последующий номер. То есть «rdisk2s1» должен выглядеть как «rdisk2». Вот что получится в итоге:

Для начала процесса записи нажмите Enter и обратите внимание, что dd не выводит на экран никакую информацию о ходе процесса, до тех пор, пока не случится какая-нибудь ошибка или он не завершит работу. Чтобы просмотреть ход процесса, нажмите Ctrl-T. Дождитесь завершения процесса. Вы узнаете, что процесс завершен, когда увидите вывод dd о количестве переданных байт.

Шаг 2. Загрузите Linux и обновление Kali

Как только Kali Linux загрузится, вы увидите экран входа в систему. Учетные данные по умолчанию — это root для логина и toor для пароля. Когда Kali загрузится, откройте терминал. Первым делом нужно изменить дефолтный пароль, чтобы у нас все-таки был хоть какой-то уровень контроля над тем, кто обращается к нашему устройству. Для этого введите в консоли passwd root и дважды введите новый пароль.


Обновим систему. Подключите вашу Pi к Интернету через Ethernet-кабель или щелкните по значку Wi-Fi в правом верхнем углу и выберите сеть с доступом в Интернет. В окне терминала последовательно введите следующие команды apt-get. Это может занять некоторое время.

Вы должны увидеть некоторый вывод этих команд на экран, как показано на скриншоте ниже. После того, как обновление системы будет завершено, мы будем готовы начать настройку Raspberry Pi.


Шаг 3. Включите Bluetooth

Чтобы начать сканирование Bluetooth-устройств, введите scan on и если поблизости есть какие-нибудь Bluetooth-устройства, то вы увидите, что список устройств начинает заполняться. Наконец, для соединения с любыми устройствами, которые вы видите, введите pair, а затем MAC-адрес устройства, которое есть в списке.


Шаг 4. Изменение ключей SSH

Использование стандартных SSH-ключей — это плохая идея и может привести к тому, что вы станете жертвой атаки «человек-по-середине» (MitM). Чтобы защититься от этого, вам нужно изменить дефолтные SSH-ключи и включить запуск SSH при загрузке системы.

В окне терминала с помощью команды cd перейдите в папку с SSH-ключами и перенастройте сервер.

Это должно создать новые SSH-ключи. Затем мы запустим несколько команд, чтобы включить уровни запуска для SSH, что позволит нам запускать эту службу при загрузке системы, что в свою очередь обеспечит нам удаленный вход в систему.

Когда откроется окно nano, убедитесь, что строка «PermitRootLogin» не закомментирована, как показано на скриншоте ниже.


После внесения изменений нажмите Ctrl-X, чтобы выйти из nano. Затем введите sudo service ssh restart для того, чтобы эти изменения вступили в силу. И, наконец, введите update-rc.d -f ssh enable 2 3 4 5, чтобы запускать SSH при загрузке системы с теми настройками, которые мы только что применили.


Шаг 5. Включите автоматический вход в систему

В нашей последней статье по Pi включение автологина было самым раздражающим шагом. Теперь, к счастью, этот процесс стал проще некуда. Этот шаг имеет решающее значение для использования Pi без клавиатуры или монитора, поскольку SSH или VNC не запустятся, если Pi застрянет на этапе входа в систему.

Чтобы включить автологин, введите в окно терминала следующее:

Вы увидите вывод, как показано на скриншоте ниже. Чтобы применить изменения и перезагрузиться, введите Y.


Заключение

Если у вас есть работающая и настроенная Pi, то с ее помощью вы можете уже делать многие интересные вещи! Ознакомьтесь с некоторыми из наших статей по использованию Raspberry Pi для хакинга.

Об авторе

Александр

Специалист по информационной безопасности с 10-ти летним опытом. Отец троих детей. Независимый консультант по вопросам кибер безопасности. 6 лет опыта интеграции решений кибербезопасности с другими продуктами в существующих инфраструктурах на корпоративном уровне.

BadUSB Rubber Ducky своими руками

Не для кого не секрет, что хакеры используют для атак небольшие устройства, внешне очень похожие на внешний USB-накопитель (флешку) называемые BadUSB. Чтобы заполучить удаленный контроль нужно всего навсего подключить такое устройство к серверу (компьютеру). Для начала все очень похоже на Rubber Ducky, за одним большим исключением, Rubber Ducky — это разовая акция, последствия которой весьма предсказуемы. Мы же хотим рассказать о гораздо более универсальной модификации BadUSB.

Хочу подчеркнуть, что ни автор, ни редакция не несут ответственности за любой возможный вред, причиненный материалами данной статьи, т.к. она предназначена только для профессиональных пентестеров, руководителей службы CISO (информационной безопасности), а так же для «белых хакеров».

Лучше, чем Rubber Ducky

В этих устройствах есть простой микроконтроллер и память, в которую записывается скетч (код для Arduino и подобных отладочных плат). Он содержит функцию эмуляции нужного устройства и набор выполняемых им действий. Как показывает практика, обычно это клавиатура и последовательность «нажимаемых» на ней клавиш.

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

Создание WiFi Ducky

Практически это будет тот же самый Rubber Ducky, только с модулем WiFi. Суть в том, что при его подключении к компьютеру скетч не выполняется сразу при подаче питания на плату (хотя такая функция тоже есть). В этот момент создается точка доступа, которая ждет подключения. Соединиться с ней можно как со смартфона, так и с ноутбука и уже оттуда в любой удобный момент совершать необходимые действия.

За основу можно взять Arduino MKR1000 с WiFi-модулем Atmel ATSAMW25 на борту, добавить библиотеку WiFi101 и готовый код отсюда. Однако обойдется это в 35 долларов. Также есть готовый проект Cactus WHID. Он стоит уже 14 долларов и выглядит как флешка, но доработать его будет сложнее.

Я предлагаю собрать более дешевый (меньше десяти долларов) и функциональный девайс под называнием WiFi Ducky. Его автор — Stefan Kremser с ником «Космокурица», а железо для его крутых самоделок продается в отдельном магазине на AliExpress. Там можно купить готовые DIY-модули, скачать код с гитхаба и повторить все шаг за шагом, однако мы пойдем немного другим путем.

Возьмем два устройства:

BadUSB Arduino Pro Micro

Arduino Pro Micro

WeMos D1 mini с микроконтроллером ESP-8266EX и WiFi-модулем стандарта 802.11b/g/n на борту.

BadUSB WeMos D1 mini

WeMos D1 mini

Нам необходимо будет соединить их, но вначале — прошить.

Все описанные действия выполнялись на операционной системе Windows 7 x64.

Прошивка Arduino Micro Pro

Начнем с платы Arduino. Скачиваем и устанавливаем Arduino IDE. При установке этого программного обеспечения заодно установятся все драйверы для этого устройства, так что дополнительно ничего не надо будет устанавливать. Чтобы подключить ее к компьютеру, необходимо запастить OTG-адаптером или кабелем с надлежащими выходами, так как на плате расположен разъем mini-USB.

После установки программного обеспечения запускаем его и подключаем Arduino к компьютеру. В меню «Инструменты» в разделе «Плата» выбираем Arduino/Genuino Micro. Далее в том же меню выбираем COM-порт, на котором определено устройство. На этом настройка программного обеспечения завершена.

Прошивка WeMos D1 mini

Добрались до следующего компонента нашего BadUSB на стероидах. В этот раз нам потребуется перейти с micro-USB на USB Type-А. При первом подключении к компьютеру Windows ругнется на неопределенное устройство, поэтому необходимо скачать драйвер CH341 c официального сайта.

Тут ничего сложного: извлекаем из архива EXE-файл, запускаем его с правами администратора и нажимаем INSTALL. После этих нехитрых манипуляций в диспетчере устройств эта плата должна определиться как USB-SERIAL СР340. Поделюсь горьким опытом: если установить неверный драйвер, то устройство определится, но название будет другое, и ничего не заработает. Будьте предельно внимательны!

Правильное определение WeMos D1 mini

Правильное определение WeMos D1 mini

Теперь устройство готово к прошивке, и нам нужен прошивальщик. Я воспользуюсь NodeMCU firmware programmer. Заходим на GitHub и скачиваем его в соответствии с версией вашей ОС. У меня это Win64. Еще необходимо скачать саму прошивку. Их будет несколько вариаций, я скачивал esp8266_wifi_duck_4mb.bin, как наиболее увесистый и функциональный вариант.

После этого запускаем и настраиваем прошивальщик. В поле COM Port выбираем тот порт, на котором определилась плата. Обычно программа сама его «видит» и подставляет необходимое значение. Далее переходим во вкладку Config, где в первой строке нажимаем на шестеренку и указываем путь до прошивки, которую скачали. Значение остается 0x00000. Во вкладке Advanced советую выставить параметр Baudrate на 115200. У меня прошивка записалась на такой скорости, а если у вас возникнет ошибка, то просто уменьшите ее. Остальное оставляем без изменения. В итоге должно получиться как на скриншоте.

Значения программы NODEMCU FIRMWARE PROGRAMMER на вкладке Advanced

Значения программы NODEMCU FIRMWARE PROGRAMMER на вкладке Advanced

Когда все нехитрые манипуляции будут выполнены, возвращаемся на вкладку Operation и нажимаем Flash. Ниже кнопки расположен индикатор, который покажет приблизительное время загрузки прошивки в память, а зеленая галочка с надписью NODEMCU TEAM даст знать, что прошивка закончилась.

Работа паяльником

После того как обе платы подготовлены и прошиты, необходимо соединить их в одного «Франкенштейна». Для этого подключаем проводами контакты в соответствии с таблицей:

Для начала лучше соединить их без пайки (на монтажной плате очень удобно) и проверить работоспособность. Подключаем к компьютеру Arduino Micro Pro и тестируем. Если устройство завелось и работает как надо, то можно собирать его уже с припоем. Мелких деталей там нет, перегреть особо нечего, так что получится даже у того, кто недавно поссорился с паяльником.

Вот как получилось у меня.

badusb из флешки

Как примерно должно получиться

Проверка BadUSB WiFi Ducky

Самое время проверить, не сломалась ли какая-то из плат во время пайки. Подключаем Arduino Micro Pro к компьютеру и ждем, пока установится универсальный драйвер для HID-устройства. «Ардуина» должна сигнализировать двумя красными и одним зеленым светодиодами.

С телефона, планшета или ноутбука смотрим список точек доступа WiFi. Должна появиться новая AP под названием WiFi Duck. Если ее видим, значит, все работает.

badusb из флешки

Точка доступа WiFi Duck

Подключаемся к ней. Пароль — quackquack (это пароль по умолчанию, его можно будет изменить в настройках). Теперь открываем браузер, идем по адресу 192.168.4.1 (это дефолтный адрес ESP-8266EX в режиме AP) и видим панель управления нашим устройством.

Функционал BadUSB WiFi Ducky

На web-интерфейсе все по-спартански, ничего лишнего. Четыре страницы, или вкладки, — две рабочие и две информационные:

Scripts. Эта вкладка предназначена для работы с уже готовыми скриптами. Изначально она пуста, но кнопкой UPLOAD NEW SCRIPT можно загрузить написанный скетч в форматах .ino и .txt из памяти устройства (с которого зашли), после чего выполнить его в любое удобное время. Можно скрипты писать самому или найти в интернете готовые решения, например тут. Не все из них рабочие, необходимо будет заранее протестировать (оболочка позволяет редактировать их). Памяти на все это дело предостаточно — почти 3 Мбайт.

Live Execute. На этой странице расположено поле, в которое мы пишем скетч. Его можно сразу выполнить или сохранить. При сохранении он отобразится на странице Scripts. Язык написания скетча отличается от привычного в Arduino, поэтому ниже поля для ввода дана инструкция с командами и описанием каждой из них.

Settings. Это страница настроек точки доступа. Тут можно поменять название точки доступа, пароль, сделать ее скрытой. Также можно указать скрипт, который будет выполняться сразу при подключении устройства к компьютеру.

Info. Эта страница больше носит информационный характер. Тут находится ссылка на автора проекта, SDK, веб-сервер, скрипты и их интерпретатор. Можно также обновить версию прошивки ESP8266 «по воздуху»

Написание скриптов для атак

Наше кибероружие подготовлено и начищено, осталось зарядить его скриптами. Обратите внимание на расстановку пауз в них (DELAY). Они нужны для того, чтобы код не начал выполняться слишком рано — прежде, чем целевой компьютер успеет на него отреагировать. Советую делать паузы побольше, исходя из того, что система жертвы будет медленней вашей тестовой. Это может быть из-за отсутствия на ней SSD, меньшего объема оперативки, медленного процессора и так далее.

Смоделируем такую ситуацию: WiFi Ducky уже подключен к цели, а мы находимся где-то неподалеку. В системе есть учетная запись пользователя с правами локального администратора, и она сейчас активна. Нам необходимо выполнить какое-то действие. Для начала создадим скрипт, который создаст еще одного пользователя и добавит его в группу «Администраторы».

Для русифицированных версий Windows придется указать имя группы «Администраторы» по-русски: net localgroup Администраторы hacker /add. Однако для этого потребуются дополнительные действия.

Отлично, теперь необходимо дождаться, пока пользователь заблокирует компьютер и уйдет, к примеру, на обед. Запускаем скрипт, который разблокирует компьютер под нашим пользователем:

Вуаля! Мы работаем за компьютером жертвы без его ведома с новой учетной записью. Конечно, если в системе всего две учетные записи — исходная и наша.

Далее, к примеру, можно загрузить с заранее подготовленного FTP-сервера pwdump:

После чего мы можем сдампить хеши паролей:

…и загрузить файл обратно на сервер:

Останется воспользоваться радужными таблицами для расшифровки, и мы уже владеем учетными записями для продолжения атаки. Устройство все еще в компьютере, и делать мы можем что угодно в радиусе приема «злого WiFi».

Дорабатки и усовершенствования Bad USB WiFi Ducky

Получился довольно неплохое хакерское устройство, но нет предела совершенству. Приведу несколько примеров того, как можно доработать наш BadUSB.

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

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

Если устройство будет внутри системного блока, то можно воспользоваться D1 mini Pro V1.1.0, так как у нее есть разъем под внешнюю антенну — она увеличит радиус действия.

Защита от BadUSB WiFi Ducky

Защититься от такого девайса можно точно так же, как и от Rubber Ducky: необходимо заблокировать добавление нового HID-устройства средствами операционной системы либо комплексными системами защиты (Kaspersky, HEAT Software и прочие Endpoint Security).

Заключение

Мы сделали усовершенствованную модель Bad USB Rubber Ducky — WiFi Ducky. Это довольно опасное хакерское устройство размером со спичечный коробок, причем его создание не требует больших вложений. Возможность изготовить его самостоятельно сильно облегчается наличием готовых плат Arduino и скетчей для них.

По-хорошему отладочные платы используют именно для прототипирования, а в дальнейшем разводят уже свою плату с тем же микроконтроллером и модулем WiFi, но без лишних элементов. Ее изготовление можно заказать на заводе. Например, здесь доступно мелкосерийное производство от пяти долларов, и подобных сервисов много.

Можно записать в память WiFi Ducky скрипты, а затем выполнять их в любое время и на любой операционной системе — встроенной памяти хватит на тысячи строк кода. Дистанционное управление добавляет устройству универсальности по сравнению с локальными девайсами класса BadUSB. С ним можно делать на удаленном компьютере что угодно, словно вы сами сидите за его клавиатурой.

Это будет уже не спайка двух отладочных плат, торчащая из USB-порта, а серьезный WiFi Ducky — более миниатюрный и надежный, не привлекающий внимания.


Вооружаем эксплоит уточкой

Чтобы использовать этот эксплоит на более крутом уровне, мы должны упаковать его в эксплоит для USB-уточки (USB Rubber Ducky), чтобы можно было быстро сбросить всю переписку Signal на любое MacOS-устройство, к которому у нас есть физический доступ. USB-уточка — это универсальная платформа для атаки, которая может выполнить эту задачу разными способами. Но вместо использования стандартного wget для скачивания и запуска приложения мы можем воспользоваться прошивкой «Twin Duck», которая позволит нам разместить и само приложение и украденную переписку Signal на самой Rubber Ducky. Это избавит нас от необходимости скачивать и запускать приложение самостоятельно или передавать данные по электронной почте.


Читать также: Как настроить и оптимизировать беспроводной маршрутизатор для получения лучшего сигнала Wi-Fi

Что вам понадобится

Для начала вам понадобится USB-уточка (USB Rubber Ducky) от Hak5. Стандартная прошивка не будет работать для этой атаки, поэтому нам нужно перепрошить «уточку» нашей кастомной прошивкой. Для этого можно обратиться к нашей статье о прошивке USB Rubber Ducky.

Вы можете записать новую прошивку Twin Duck, скачав Ducky Flasher, который имеется в репозиториях Hak5 на GitHub. Ducky Flasher может записывать разнообразные прошивки, каждая из которых изменяет поведение USB-уточки.


Чтобы написать Ducky Script и закодировать полезную нагрузку, вы можете использовать Duck Encoder, который можно найти по ссылке на GitHub выше, или просто использовать веб-интерфейс типа Duck Toolkit.

Приложение AuRevoir


Разработка эксплоита с помощью анализа процесса


Самая важная часть разработки полезной нагрузки Ducky Script — это как можно больше и тщательнее тестировать ее на разных компьютерах. Только так вы сможете точно настроить результаты для вашей целевой системы и учесть все нюансы и переменные, которые могли бы отключить ваш скрипт. Помните, что USB-уточка не может видеть, что происходит, поэтому она не сможет восстановить свою работу, если появится всплывающее окно или что-то другое завершит ее работу.

Читать также: Как взламывать пароли. Часть 1. Принципы и технологии

Язык Ducky Script написан очень просто, и вы сможете быстро научиться на нем писать, обращаясь к документации по Ducky Script, но в целом все, что вы можете сделать с помощью клавиатуры — вы сможете сделать и в Ducky Script. Все, что вы можете напечатать, должно следовать после тега STRING, а любые комбинации клавиш могут быть смоделированы с помощью таких тегов, как ENTER или COMMAND.

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

Давайте разберем то, что он делает.

После короткой 2-секундной задержки, которая нужна чтобы раздел USB-уточки примонтировался, нам нужно получить доступ к окну терминала, чтобы использовать возможности USB-уточки быстро вводить команды. Для этого мы будем использовать комбинацию клавиш, которая по умолчанию включена на компьютерах macOS — одновременное нажатие клавиш Command and Space. Это откроет окно поиска, которое позволит нам найти «Терминал» и запустить его, нажав Enter.

Теперь нужно открыть файл AuRevoir.app, который размещен на нашей USB-уточке. Если вы еще не скопировали приложение AuRevoir, просто перетащите его на SD-карту «уточки» вместе с добавлением полезной нагрузки.

Открыть приложение достаточно просто. Для этого мы можем использовать команду open, за которой следует указание местоположения файла на USB-уточке. Как только мы нажмем Enter, приложение откроется, и тут мы ставим задержку примерно в 9 секунд, чтобы пользователь нажал кнопку для продолжения работы скрипта.

Нам нужно будет вернуться в окно терминала и собрать данные, которые мы скопировали. Мы можем сделать это, одновременно нажав клавиши Command + Tab. Это вернет нас в окно терминала, где мы можем создать новый текстовый файл на нашей «уточке» с помощью команды nano. Мы решили назвать файл stealer.txt, но вы можете назвать его как-нибудь менее подозрительно.

Читать также: Как решить проблему с неработающей камерой на MacBook

Когда история BASH будет вычищена, а «уточка» извлечена, заключительные строки скрипта выйдут из bash-сессии и закроют окно.

Это вернет машину в состояние, в котором мы ее нашли.

Как только эта полезная нагрузка будет написана, вы можете использовать веб-сайт Duck Toolkit для того, чтобы закодировать ее в файл inject.bin, который вы сможете потом скачать и перенести в USB-уточку. Это все, что вам потребуется для подготовки к атаке с помощью USB Rubber Ducky.

Защита против атаки

USB Rubber Ducky — «одностороннее» устройство, что означает, что оно не может реагировать на изменения или неожиданные события на экране. Если появляются какие-либо всплывающие окна или пользователь использует собственные настройки и комбинации клавиш, то работа скрипта будет нарушена. Ноутбук нашего продюсера был неуязвим для этого скрипта, потому что он отключил комбинацию клавиш Command + Space для открытия Spotlight-окна, что не позволило «уточке» открыть окно терминала.

Читайте также: