Rubber ducky что это
BadUSB Rubber Ducky своими руками
Не для кого не секрет, что хакеры используют для атак небольшие устройства, внешне очень похожие на внешний USB-накопитель (флешку) называемые BadUSB. Чтобы заполучить удаленный контроль нужно всего навсего подключить такое устройство к серверу (компьютеру). Для начала все очень похоже на Rubber Ducky, за одним большим исключением, Rubber Ducky — это разовая акция, последствия которой весьма предсказуемы. Мы же хотим рассказать о гораздо более универсальной модификации BadUSB.
Лучше, чем Rubber Ducky
Наверняка вы уже слышали про Rubber Ducky. Это устройство из разряда BadUSB для HID-атаки. Подобного рода девайсы умеют эмулировать клавиатуру и позволяют отправить любые команды, словно их набрал текущий пользователь.
В этих устройствах есть простой микроконтроллер и память, в которую записывается скетч (код для Arduino и подобных отладочных плат). Он содержит функцию эмуляции нужного устройства и набор выполняемых им действий. Как показывает практика, обычно это клавиатура и последовательность «нажимаемых» на ней клавиш.
Конечно, у этих девайсов есть и свои недостатки. Во-первых, нужно тщательно разведать полную конфигурацию компьютера-жертвы. Во-вторых, перед реальной атакой нужно проверить, как она будет выполняться на максимально подобной тестовой системе, и внести необходимые правки — в частности, подобрать оптимальные задержки. В реальных условиях, скорее всего, будет проблематично второй раз приблизиться к атакуемому компьютеру, а если хоть один скан-код клавиши будет отправлен не вовремя, то все окажется напрасным. В-третьих, можно использовать только один скетч. Нельзя дописать какую-то функцию на лету или прервать и перезапустить набор действий. В этой статье я покажу как создать устройство, лишенное этих недостатков.
Создание WiFi Ducky
Практически это будет тот же самый Rubber Ducky, только с модулем WiFi. Суть в том, что при его подключении к компьютеру скетч не выполняется сразу при подаче питания на плату (хотя такая функция тоже есть). В этот момент создается точка доступа, которая ждет подключения. Соединиться с ней можно как со смартфона, так и с ноутбука и уже оттуда в любой удобный момент совершать необходимые действия.
За основу можно взять Arduino MKR1000 с WiFi-модулем Atmel ATSAMW25 на борту, добавить библиотеку WiFi101 и готовый код отсюда. Однако обойдется это в 35 долларов. Также есть готовый проект Cactus WHID. Он стоит уже 14 долларов и выглядит как флешка, но доработать его будет сложнее.
Я предлагаю собрать более дешевый (меньше десяти долларов) и функциональный девайс под называнием WiFi Ducky. Его автор — Stefan Kremser с ником «Космокурица», а железо для его крутых самоделок продается в отдельном магазине на AliExpress. Там можно купить готовые DIY-модули, скачать код с гитхаба и повторить все шаг за шагом, однако мы пойдем немного другим путем.
Возьмем два устройства:
WeMos D1 mini с микроконтроллером ESP-8266EX и WiFi-модулем стандарта 802.11b/g/n на борту.
Нам необходимо будет соединить их, но вначале — прошить.
Прошивка Arduino Micro Pro
Начнем с платы Arduino. Скачиваем и устанавливаем Arduino IDE. При установке этого программного обеспечения заодно установятся все драйверы для этого устройства, так что дополнительно ничего не надо будет устанавливать. Чтобы подключить ее к компьютеру, необходимо запастить OTG-адаптером или кабелем с надлежащими выходами, так как на плате расположен разъем mini-USB.
После установки программного обеспечения запускаем его и подключаем Arduino к компьютеру. В меню «Инструменты» в разделе «Плата» выбираем Arduino/Genuino Micro. Далее в том же меню выбираем COM-порт, на котором определено устройство. На этом настройка программного обеспечения завершена.
Следующим шагом идем по ссылке, где расположен скетч. На него достаточно взглянуть, чтобы понять, что он делает: преобразует команды типа STRING в поддерживаемый Arduino синтаксис типа Keyboard.print(“”), и активирует нужные контакты. Копируем его и вставляем в Arduino IDE. Нажимаем кнопку «Загрузка» и через две-три минуты получаем сообщение о том, что скетч успешно загружен. Теперь при подаче питания на плату контроллер активирует контакты TX, RX, GND и RAM, после чего переходит в режим ожидания команд.
Прошивка WeMos D1 mini
Добрались до следующего компонента нашего BadUSB на стероидах. В этот раз нам потребуется перейти с micro-USB на USB Type-А. При первом подключении к компьютеру Windows ругнется на неопределенное устройство, поэтому необходимо скачать драйвер CH341 c официального сайта.
Тут ничего сложного: извлекаем из архива EXE-файл, запускаем его с правами администратора и нажимаем INSTALL. После этих нехитрых манипуляций в диспетчере устройств эта плата должна определиться как USB-SERIAL СР340. Поделюсь горьким опытом: если установить неверный драйвер, то устройство определится, но название будет другое, и ничего не заработает. Будьте предельно внимательны!
Правильное определение WeMos D1 mini
Теперь устройство готово к прошивке, и нам нужен прошивальщик. Я воспользуюсь NodeMCU firmware programmer. Заходим на GitHub и скачиваем его в соответствии с версией вашей ОС. У меня это Win64. Еще необходимо скачать саму прошивку. Их будет несколько вариаций, я скачивал esp8266_wifi_duck_4mb.bin, как наиболее увесистый и функциональный вариант.
После этого запускаем и настраиваем прошивальщик. В поле COM Port выбираем тот порт, на котором определилась плата. Обычно программа сама его «видит» и подставляет необходимое значение. Далее переходим во вкладку Config, где в первой строке нажимаем на шестеренку и указываем путь до прошивки, которую скачали. Значение остается 0x00000. Во вкладке Advanced советую выставить параметр Baudrate на 115200. У меня прошивка записалась на такой скорости, а если у вас возникнет ошибка, то просто уменьшите ее. Остальное оставляем без изменения. В итоге должно получиться как на скриншоте.
Значения программы NODEMCU FIRMWARE PROGRAMMER на вкладке Advanced
Когда все нехитрые манипуляции будут выполнены, возвращаемся на вкладку Operation и нажимаем Flash. Ниже кнопки расположен индикатор, который покажет приблизительное время загрузки прошивки в память, а зеленая галочка с надписью NODEMCU TEAM даст знать, что прошивка закончилась.
Работа паяльником
После того как обе платы подготовлены и прошиты, необходимо соединить их в одного «Франкенштейна». Для этого подключаем проводами контакты в соответствии с таблицей:
Как сделать USB Rubber Ducky на базе Ardnuino
В этой статье рассмотрим интересный кейс, как можно сделать USB ducky своими руками на базе Ardnuino Micro Pro. Стоимость такого устройства примерно 6 долларов. Это довольно интересная штука, которая имеет большой вектор атак, а также просто интересных вариаций. Давайте уже приступим к активным действиям.
Ardnuino Micro Pro
Установка Arduino IDE
Для работы с устройствами Arduino необходимо установить приложение. Занимает не так много времени и места. Скачать можно по этой ссылке. Данный софт использовался на виртуальной машине с ОС Windows. После установки у вас будет примерно такой вид.
Рабочий интерфейс Arduino IDE
После этого настройка окончена и можно приступать к поиску пейлоадов, которые мы будем запускать на нашей плате.
Поиск и загрузка пейлоадов
По этой ссылке есть очень много доступных пейлоадов. Можно выбрать в зависимости от ваших целей. Некоторые подходят только для Windows 7 или 10. Нужно внимательно читать описание.
Например, мы хотим протестировать работоспособность первого и самого простого “Hello World”. Переходим в раздел, ищем наш код и копируем.
Далее переходим на сайт и конвертируем наш код на сайте. После этого можно нажимать “Compile”. Заходим в Arduino IDE и вставляем наш код.
Потом копируем наш код и компилируем. После подключения на компьютере открывается блокнот нотепад с надписью “Hello world”.
Давайте протестируем Payload — Windows 7/10: Logoff Prank. Аналогично копируем наш код, конвертируем и прошиваем плату. Далее запускаем и получаем учетную запись с необходимостью пройти авторизацию.
Дело в том, что есть очень много других пейлоадов, которые намного интересней и опасней. Также, есть очень большая проблема — языка раскладки. Если команда написана на английском, то скрипт не сработает у пользователя с российской раскладкой. Поэтому в следующей статье я покажу как усовершенствовать нашу схему и сделать так, чтоб ней можно было управлять в режиме реального времени. Таким образом, у нас будет возможность удаленного управления, что существенно повышает эффективность работы.
Заключение
В итоге USB ducky можно использовать для того чтобы пошутить с коллегами по работе или для получения доступа. Пейлоады предоставляют возможность работать как стиллер, грабить пароли от всех Wi-Fi сетей, а также создавать FTP сервер, загружать шелл через Netcat и другие возможности. Очень важный момент заключается в том, что устройство определяется как клавиатура и большинство команд происходят без какого либо внимания от антивирусов. Также данное устройство можно спрятать под флешку.
USB Rubber Ducky своими руками
Ты, разумеется, знаешь истории о том, как хакеры используют для атак устройства, похожие на флешку. Достаточно подобраться к серверу и подключить такой девайс, чтобы заполучить удаленный контроль. Согласись, очень похоже на прототип Rubber Ducky. Однако «злая утка» — это всегда разовая акция: один скетч и заранее известные действия. Сегодня мы приготовим гораздо более универсальную модификацию.
Чуть больше, чем Rubber Ducky
Наверняка ты уже слышал про Rubber Ducky. Это устройство из разряда BadUSB для HID-атаки. Подобного рода девайсы умеют эмулировать клавиатуру и позволяют отправить любые команды, словно их набрал текущий пользователь.
В этих устройствах есть простой микроконтроллер и память, в которую записывается скетч (код для Arduino и подобных отладочных плат). Он содержит функцию эмуляции нужного устройства и набор выполняемых им действий. Как показывает практика, обычно это клавиатура и последовательность «нажимаемых» на ней клавиш.
В статье «Злой HID» уже было детально описано, как выбрать и подготовить такой девайс, так что на этом останавливаться не буду. Стоит лишь сказать, что опасность этого метода атаки заключается в скрытности и скорости исполнения.
Конечно, у этих девайсов есть и свои недостатки. Во-первых, нужно тщательно разведать полную конфигурацию компьютера-жертвы. Во-вторых, перед реальной атакой нужно проверить, как она будет выполняться на максимально подобной тестовой системе, и внести необходимые правки — в частности, подобрать оптимальные задержки. В реальных условиях, скорее всего, будет проблематично второй раз приблизиться к атакуемому компьютеру, а если хоть один скан-код клавиши будет отправлен не вовремя, то все окажется напрасным. В-третьих, можно использовать только один скетч. Нельзя дописать какую-то функцию на лету или прервать и перезапустить набор действий. Мы изготовим устройство, лишенное этих недостатков.
Готовим Wi-Fi Ducky
Практически это будет тот же самый Rubber Ducky, только с модулем Wi-Fi. Суть в том, что при его подключении к компьютеру скетч не выполняется сразу при подаче питания на плату (хотя такая функция тоже есть). В этот момент создается точка доступа, которая ждет подключения. Соединиться с ней можно как со смартфона, так и с ноутбука и уже оттуда в любой удобный момент совершать необходимые действия.
За основу можно взять Arduino MKR1000 с Wi-Fi-модулем Atmel ATSAMW25 на борту, добавить библиотеку WiFi101 и готовый код отсюда. Однако обойдется это в 35 долларов. Также есть готовый проект Cactus WHID. Он стоит уже 14 долларов и выглядит как флешка, но доработать его будет сложнее.
Я предлагаю собрать более дешевый (меньше десяти долларов) и функциональный девайс под названием Wi-Fi Ducky. Его автор — Stefan Kremser с ником «Космокурица», а железо для его крутых самоделок продается в отдельном магазине на AliExpress. Там можно купить готовые DIY-модули, скачать код с гитхаба и повторить все шаг за шагом, однако мы пойдем немного другим путем.
Возьмем два устройства:
WeMos D1 mini с микроконтроллером ESP-8266EX и Wi-Fi-модулем стандарта 802.11b/g/n на борту.
Нам необходимо будет соединить их, но вначале — прошить.
Все описанные действия выполнялись на операционной системе Windows 7 x64.
Прошивка Arduino Micro Pro
Начнем с платы Arduino. Скачиваем и устанавливаем Arduino IDE. При установке этого программного обеспечения заодно установятся все драйверы для этого устройства, так что дополнительно ничего не надо будет устанавливать. Чтобы подключить ее к компьютеру, необходимо запастись OTG-адаптером или кабелем с надлежащими выходами, так как на плате расположен разъем mini-USB.
После установки программного обеспечения запускаем его и подключаем Arduino к компьютеру. В меню «Инструменты» в разделе «Плата» выбираем Arduino/Genuino Micro. Далее в том же меню выбираем COM-порт, на котором определено устройство. На этом настройка программного обеспечения завершена.
Следующим шагом идем по ссылке, где расположен скетч. На него достаточно взглянуть, чтобы понять, что он делает: преобразует команды типа STRING в поддерживаемый Arduino синтаксис типа Keyboard.print(“”) и активирует нужные контакты. Копируем его и вставляем в Arduino IDE. Нажимаем кнопку «Загрузка» и через две-три минуты получаем сообщение о том, что скетч успешно загружен. Теперь при подаче питания на плату контроллер активирует контакты TX, RX, GND и RAM, после чего переходит в режим ожидания команд.
Прошивка WeMos D1 mini
Добрались до следующего компонента нашей злой утки на стероидах. В этот раз нам потребуется перейти с micro-USB на USB Type-А. При первом подключении к компьютеру Windows ругнется на неопределенное устройство, поэтому необходимо скачать драйвер CH341 c официального сайта.
Тут ничего сложного: извлекаем из архива EXE-файл, запускаем его с правами администратора и нажимаем INSTALL. После этих нехитрых манипуляций в диспетчере устройств эта плата должна определиться как USB-SERIAL СР340. Поделюсь горьким опытом: если установить неверный драйвер, то устройство определится, но название будет другое, и ничего не заработает. Будь предельно внимательным!
Теперь устройство готово к прошивке, и нам нужен прошивальщик. Я воспользуюсь NodeMCU firmware programmer. Заходим на GitHub и скачиваем его в соответствии с версией твоей операционки. У меня это Win64. Еще необходимо скачать саму прошивку. Их будет несколько вариаций, я скачивал esp8266_wifi_duck_4mb.bin, как наиболее увесистый и функциональный вариант.
После этого запускаем и настраиваем прошивальщик. В поле COM Port выбираем тот порт, на котором определилась плата. Обычно программа сама его «видит» и подставляет необходимое значение. Далее переходим во вкладку Config, где в первой строке нажимаем на шестеренку и указываем путь до прошивки, кото��ую скачали. Значение остается 0x00000. Во вкладке Advanced советую выставить параметр Baudrate на 115200. У меня прошивка записалась на такой скорости, а если у тебя возникнет ошибка, то просто уменьши ее. Остальное оставляем без изменения. В итоге должно получиться как на скриншоте.
Когда все нехитрые манипуляции будут выполнены, возвращаемся на вкладку Operation и нажимаем Flash. Ниже кнопки расположен индикатор, который покажет приблизительное время загрузки прошивки в память, а зеленая галочка с надписью NODEMCU TEAM даст знать, что прошивка закончилась.
Работаем паяльником
После того как обе платы подготовлены и прошиты, необходимо соединить их в одного «Франкенштейна». Для этого подключаем проводами контакты в соответствии с таблицей:
Для начала лучше соединить их без пайки (на монтажной плате очень удобно) и проверить работоспособность. Подключаем к компьютеру Arduino Micro Pro и тестируем. Если устройство завелось и работает как надо, то можно собирать его уже с припоем. Мелких деталей там нет, перегреть особо нечего, так что получится даже у того, кто недавно поссорился с паяльником.
Вот как получилось у меня.
Проверяем и разбираем функциональность
Самое время проверить, не сломалась ли какая-то из плат во время пайки. Подключаем Arduino Micro Pro к компьютеру и ждем, пока установится универсальный драйвер для HID-устройства. «Ардуина» должна сигнализировать двумя красными и одним зеленым светодиодами.
Подключаемся к ней. Пароль — quackquack (это дефолтный, его можно будет изменить в настройках). Теперь открываем браузер, идем по адресу 192.168.4.1 (это дефолтный адрес ESP-8266EX в режиме AP) и видим панель управления нашим устройством.
На web-интерфейсе все по-спартански, ничего лишнего. Четыре страницы, или вкладки, — две рабочие и две информационные:
Пишем скрипты для атак
Наше кибероружие подготовлено и начищено, осталось зарядить его скриптами. Обрати внимание на расстановку пауз в них (DELAY). Они нужны для того, чтобы код не начал выполняться слишком рано — прежде, чем целевой компьютер успеет на него отреагировать. Советую делать паузы побольше, исходя из того, что система жертвы будет медленней твоей тестовой. Это может быть из-за отсутствия на ней SSD, меньшего объема оперативки, медленного процессора и так далее.
Смоделируем такую ситуацию: Wi-Fi Ducky уже подключен к цели, а мы находимся где-то неподалеку. В системе есть учетная запись пользователя с правами локального администратора, и она сейчас активна. Нам необходимо выполнить какое-то действие. Для начала создадим скрипт, который создаст еще одного пользователя и добавит его в группу «Администраторы».
Если скетч запустится с правами учетной записи обычного пользователя, то появится сообщение: «Системная ошибка 5. Отказано в доступе». Под админом он выполнится менее чем за полсекунды, после чего окно консоли закроется.
Отлично, теперь необходимо дождаться, пока пользователь заблокирует компьютер и уйдет, к примеру, на обед. Запускаем скрипт, который разблокирует компьютер под нашим пользователем:
Вуаля! Мы работаем за компьютером жертвы без ее ведома с новой учетной записью. Конечно, если в системе всего две учетные записи — исходная и наша.
Далее, к примеру, можно загрузить с заранее подготовленного FTP-сервера pwdump:
После чего мы можем сдампить хеши паролей:
…и загрузить файл обратно на сервер:
Останется воспользоваться радужными таблицами для расшифровки, и мы уже владеем учетными записями для продолжения атаки. Устройство все еще в компьютере, и делать мы можем что угодно в радиусе приема «злого Wi-Fi».
Дорабатываем и совершенствуем
Получился довольно неплохой хакерский девайс, но нет предела совершенству. Приведу несколько примеров того, как можно доработать это детище.
Чтобы устройство не светилось, как гирлянда, в чужом компьютере, можно заменить светодиоды перемычками или закрасить их лаком для ногтей (в несколько слоев). Две отладочные платы на торчащих проводах явно вызовут подозрения, поэтому неплохо было бы подобрать или изготовить для них корпус.
Если устройство будет внутри системного блока, то можно воспользоваться D1 mini Pro V1.1.0, так как у нее есть разъем под внешнюю антенну — она увеличит радиус действия.
Заключение
Мы сделали усовершенствованную модель Rubber Ducky — Wi-Fi Ducky. Это довольно опасное устройство размером со спичечный коробок, причем его создание не требует больших вложений. Возможность изготовить его самостоятельно сильно облегчается наличием готовых плат Arduino и скетчей для них.
По-хорошему отладочные платы используют именно для прототипирования, а в дальнейшем разводят уже свою плату с тем же микроконтроллером и модулем Wi-Fi, но без лишних элементов. Ее изготовление можно заказать на заводе. Например, здесь доступно мелкосерийное производство от пяти долларов, и подобных сервисов много.
Можно записать в память Wi-Fi Ducky скрипты, а затем выполнять их в любое время и на любой операционной системе — встроенной памяти хватит на тысячи строк кода. Дистанционное управление добавляет устройству универсальности по сравнению с локальными девайсами класса BadUSB. С ним можно делать на удаленном компьютере что угодно, словно ты сам сидишь за его клавиатурой.
Это будет уже не спайка двух отладочных плат, торчащая из USB-порта, а серьезный Wi-Fi Ducky — более миниатюрный и надежный, не привлекающий внимания.
Защититься от такого девайса можно точно так же, как и от Rubber Ducky: необходимо заблокировать добавление нового HID-устройства средствами операционной системы либо комплексными системами защиты (Kaspersky, HEAT Software и прочие Endpoint Security).
Злая утка с дистанционным управлением. Собираем и программируем BadUSB с Wi-Fi
Содержание статьи
WARNING
Статья предназначена для «белых хакеров», профессиональных пентестеров и руководителей службы информационной безопасности (CISO). Ни автор, ни редакция не несут ответственности за любой возможный вред, причиненный материалами данной статьи.
Чуть больше, чем Rubber Ducky
Наверняка ты уже слышал про Rubber Ducky. Это устройство из разряда BadUSB для HID-атаки. Подобного рода девайсы умеют эмулировать клавиатуру и позволяют отправить любые команды, словно их набрал текущий пользователь.
В этих устройствах есть простой микроконтроллер и память, в которую записывается скетч (код для Arduino и подобных отладочных плат). Он содержит функцию эмуляции нужного устройства и набор выполняемых им действий. Как показывает практика, обычно это клавиатура и последовательность «нажимаемых» на ней клавиш.
В статье «Злой HID» уже было детально описано, как выбрать и подготовить такой девайс, так что на этом останавливаться не буду. Стоит лишь сказать, что опасность этого метода атаки заключается в скрытности и скорости исполнения.
Конечно, у этих девайсов есть и свои недостатки. Во-первых, нужно тщательно разведать полную конфигурацию компьютера-жертвы. Во-вторых, перед реальной атакой нужно проверить, как она будет выполняться на максимально подобной тестовой системе, и внести необходимые правки — в частности, подобрать оптимальные задержки. В реальных условиях, скорее всего, будет проблематично второй раз приблизиться к атакуемому компьютеру, а если хоть один скан-код клавиши будет отправлен не вовремя, то все окажется напрасным. В-третьих, можно использовать только один скетч. Нельзя дописать какую-то функцию на лету или прервать и перезапустить набор действий. Мы изготовим устройство, лишенное этих недостатков.
Готовим Wi-Fi Ducky
Практически это будет тот же самый Rubber Ducky, только с модулем Wi-Fi. Суть в том, что при его подключении к компьютеру скетч не выполняется сразу при подаче питания на плату (хотя такая функция тоже есть). В этот момент создается точка доступа, которая ждет подключения. Соединиться с ней можно как со смартфона, так и с ноутбука и уже оттуда в любой удобный момент совершать необходимые действия.
За основу можно взять Arduino MKR1000 с Wi-Fi-модулем Atmel ATSAMW25 на борту, добавить библиотеку WiFi101 и готовый код отсюда. Однако обойдется это в 35 долларов. Также есть готовый проект Cactus WHID. Он стоит уже 14 долларов и выглядит как флешка, но доработать его будет сложнее.
Я предлагаю собрать более дешевый (меньше десяти долларов) и функциональный девайс под названием Wi-Fi Ducky. Его автор — Stefan Kremser с ником «Космокурица», а железо для его крутых самоделок продается в отдельном магазине на AliExpress. Там можно купить готовые DIY-модули, скачать код с гитхаба и повторить все шаг за шагом, однако мы пойдем немного другим путем.
Возьмем два устройства:
Нам необходимо будет соединить их, но вначале — прошить.
Все описанные действия выполнялись на операционной системе Windows 7 x64.
Прошивка Arduino Micro Pro
Начнем с платы Arduino. Скачиваем и устанавливаем Arduino IDE. При установке этого программного обеспечения заодно установятся все драйверы для этого устройства, так что дополнительно ничего не надо будет устанавливать. Чтобы подключить ее к компьютеру, необходимо запастись OTG-адаптером или кабелем с надлежащими выходами, так как на плате расположен разъем mini-USB.
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее