Usb rubber ducky что это

Как сделать USB Rubber Ducky на базе Ardnuino

В этой статье рассмотрим интересный кейс, как можно сделать USB ducky своими руками на базе Ardnuino Micro Pro. Стоимость такого устройства примерно 6 долларов. Это довольно интересная штука, которая имеет большой вектор атак, а также просто интересных вариаций. Давайте уже приступим к активным действиям.

Usb rubber ducky что это. . Usb rubber ducky что это фото. Usb rubber ducky что это-. картинка Usb rubber ducky что это. картинка

Usb rubber ducky что это. 037MaPPYD8IAgku43. Usb rubber ducky что это фото. Usb rubber ducky что это-037MaPPYD8IAgku43. картинка Usb rubber ducky что это. картинка 037MaPPYD8IAgku43

Ardnuino Micro Pro

Установка Arduino IDE

Для работы с устройствами Arduino необходимо установить приложение. Занимает не так много времени и места. Скачать можно по этой ссылке. Данный софт использовался на виртуальной машине с ОС Windows. После установки у вас будет примерно такой вид.

Usb rubber ducky что это. 0pZRmZtkgZ4HNbkfh. Usb rubber ducky что это фото. Usb rubber ducky что это-0pZRmZtkgZ4HNbkfh. картинка Usb rubber ducky что это. картинка 0pZRmZtkgZ4HNbkfh

Рабочий интерфейс Arduino IDE

Usb rubber ducky что это. 0d9idjZzvdZZtRMNL. Usb rubber ducky что это фото. Usb rubber ducky что это-0d9idjZzvdZZtRMNL. картинка Usb rubber ducky что это. картинка 0d9idjZzvdZZtRMNL

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

Поиск и загрузка пейлоадов

По этой ссылке есть очень много доступных пейлоадов. Можно выбрать в зависимости от ваших целей. Некоторые подходят только для Windows 7 или 10. Нужно внимательно читать описание.

Usb rubber ducky что это. 0lY8qr DOrnrWvnYU. Usb rubber ducky что это фото. Usb rubber ducky что это-0lY8qr DOrnrWvnYU. картинка Usb rubber ducky что это. картинка 0lY8qr DOrnrWvnYU

Например, мы хотим протестировать работоспособность первого и самого простого “Hello World”. Переходим в раздел, ищем наш код и копируем.

Usb rubber ducky что это. 0NQb obhF0vcTAkXT. Usb rubber ducky что это фото. Usb rubber ducky что это-0NQb obhF0vcTAkXT. картинка Usb rubber ducky что это. картинка 0NQb obhF0vcTAkXT

Далее переходим на сайт и конвертируем наш код на сайте. После этого можно нажимать “Compile”. Заходим в Arduino IDE и вставляем наш код.

Usb rubber ducky что это. 02 LIIMVBsDZcZboB. Usb rubber ducky что это фото. Usb rubber ducky что это-02 LIIMVBsDZcZboB. картинка Usb rubber ducky что это. картинка 02 LIIMVBsDZcZboB

Потом копируем наш код и компилируем. После подключения на компьютере открывается блокнот нотепад с надписью “Hello world”.

Usb rubber ducky что это. 064KW4YmxeE C7phY. Usb rubber ducky что это фото. Usb rubber ducky что это-064KW4YmxeE C7phY. картинка Usb rubber ducky что это. картинка 064KW4YmxeE C7phY

Usb rubber ducky что это. 08dn42hbM4Vg4wF3M. Usb rubber ducky что это фото. Usb rubber ducky что это-08dn42hbM4Vg4wF3M. картинка Usb rubber ducky что это. картинка 08dn42hbM4Vg4wF3M

Usb rubber ducky что это. 0 nTX59DaJNWEbkVT. Usb rubber ducky что это фото. Usb rubber ducky что это-0 nTX59DaJNWEbkVT. картинка Usb rubber ducky что это. картинка 0 nTX59DaJNWEbkVT

Давайте протестируем Payload — Windows 7/10: Logoff Prank. Аналогично копируем наш код, конвертируем и прошиваем плату. Далее запускаем и получаем учетную запись с необходимостью пройти авторизацию.

Usb rubber ducky что это. . Usb rubber ducky что это фото. Usb rubber ducky что это-. картинка Usb rubber ducky что это. картинка

Usb rubber ducky что это. . Usb rubber ducky что это фото. Usb rubber ducky что это-. картинка Usb rubber ducky что это. картинка

Usb rubber ducky что это. 019nPNiWdOM89cCOz. Usb rubber ducky что это фото. Usb rubber ducky что это-019nPNiWdOM89cCOz. картинка Usb rubber ducky что это. картинка 019nPNiWdOM89cCOz

Usb rubber ducky что это. 0n ppY3G14k corCE. Usb rubber ducky что это фото. Usb rubber ducky что это-0n ppY3G14k corCE. картинка Usb rubber ducky что это. картинка 0n ppY3G14k corCE

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

Заключение

В итоге USB ducky можно использовать для того чтобы пошутить с коллегами по работе или для получения доступа. Пейлоады предоставляют возможность работать как стиллер, грабить пароли от всех Wi-Fi сетей, а также создавать FTP сервер, загружать шелл через Netcat и другие возможности. Очень важный момент заключается в том, что устройство определяется как клавиатура и большинство команд происходят без какого либо внимания от антивирусов. Также данное устройство можно спрятать под флешку.

Источник

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

Ты, разумеется, знаешь истории о том, как хакеры используют для атак устройства, похожие на флешку. Достаточно подобраться к серверу и подключить такой девайс, чтобы заполучить удаленный контроль. Согласись, очень похоже на прототип Rubber Ducky. Однако «злая утка» — это всегда разовая акция: один скетч и заранее известные действия. Сегодня мы приготовим гораздо более универсальную модификацию.

Usb rubber ducky что это. modify usb rubber ducky with custom. Usb rubber ducky что это фото. Usb rubber ducky что это-modify usb rubber ducky with custom. картинка Usb rubber ducky что это. картинка modify usb rubber ducky with custom

Чуть больше, чем 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-модули, скачать код с гитхаба и повторить все шаг за шагом, однако мы пойдем немного другим путем.

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

Usb rubber ducky что это. 1. Usb rubber ducky что это фото. Usb rubber ducky что это-1. картинка Usb rubber ducky что это. картинка 1

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

Usb rubber ducky что это. 2. Usb rubber ducky что это фото. Usb rubber ducky что это-2. картинка Usb rubber ducky что это. картинка 2

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

Все описанные действия выполнялись на операционной системе 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. Поделюсь горьким опытом: если установить неверный драйвер, то устройство определится, но название будет другое, и ничего не заработает. Будь предельно внимательным!

Usb rubber ducky что это. 3. Usb rubber ducky что это фото. Usb rubber ducky что это-3. картинка Usb rubber ducky что это. картинка 3

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

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

Usb rubber ducky что это. 4. Usb rubber ducky что это фото. Usb rubber ducky что это-4. картинка Usb rubber ducky что это. картинка 4

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

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

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

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

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

Usb rubber ducky что это. 5. Usb rubber ducky что это фото. Usb rubber ducky что это-5. картинка Usb rubber ducky что это. картинка 5

Проверяем и разбираем функциональность

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

Usb rubber ducky что это. 6. Usb rubber ducky что это фото. Usb rubber ducky что это-6. картинка Usb rubber ducky что это. картинка 6

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

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

Usb rubber ducky что это. 7. Usb rubber ducky что это фото. Usb rubber ducky что это-7. картинка Usb rubber ducky что это. картинка 7

Usb rubber ducky что это. 8. Usb rubber ducky что это фото. Usb rubber ducky что это-8. картинка Usb rubber ducky что это. картинка 8

Usb rubber ducky что это. 9. Usb rubber ducky что это фото. Usb rubber ducky что это-9. картинка Usb rubber ducky что это. картинка 9

Usb rubber ducky что это. 10. Usb rubber ducky что это фото. Usb rubber ducky что это-10. картинка Usb rubber ducky что это. картинка 10

Пишем скрипты для атак

Наше кибероружие подготовлено и начищено, осталось зарядить его скриптами. Обрати внимание на расстановку пауз в них (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).

Источник

Гадкий утёнок

Превращаем обычную флешку в USB Rubber Ducky.

USB Rubber Ducky — устройство, внешне напоминающее обычную флешку, которое притворяется клавиатурой и при подключении к компьютеру быстренько набирает все заданные в нем команды. Штука крутая и очень полезная при проведении пентестов, но зачем выкладывать за нее 40 баксов (да еще и при текущем курсе), если аналогичным трюкам можно научить обычную флешку?

ПРЕДИСЛОВИЕ

Прошлогодний Black Hat принес много интересных докладов. В числе наиболее обсуждаемых был доклад, посвященный неисправимой уязвимости USB-устройств, позволяющей превращать обычные флешки в инструмент распространения вредоносных программ. Атаку назвали BadUSB, но позже в Сети появились шуточки на тему «USBola», сравнивающие эту атаку с известным вирусом.

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

ПРЕДПОСЫЛКИ

Вообще, USB — очень универсальный интерфейс. Только подумай, сколько устройств мы к нему подключаем и в состав каких девайсов он входит! Мышки, клавиатуры, принтеры, сканеры, геймпады, модемы, точки доступа, веб-камеры, телефоны и т.д. и т.п. Мы не задумываясь вставляем коннектор в нужный разъем, ОС автоматически определяет тип устройства и подгружает необходимые драйвера.

Но как она это делает?

УСТРОЙСТВО FLASH НАКОПИТЕЛЕЙ

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

Usb rubber ducky что это. 1441993726 1441966322 5469 2. Usb rubber ducky что это фото. Usb rubber ducky что это-1441993726 1441966322 5469 2. картинка Usb rubber ducky что это. картинка 1441993726 1441966322 5469 2

АЛГОРИТМ ИНИЦИАЛИЗАЦИИ USB УСТРОЙСТВ

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

Обычная флешка будет иметь код класса 08h (Mass Storage Device — MSD), в то время как веб-камера, снабженная микрофоном, будет характеризоваться уже двумя: 01h (Audio) и 0Eh (Video Device Class).

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

Usb rubber ducky что это. 1441993812 1441966336 ba83 4. Usb rubber ducky что это фото. Usb rubber ducky что это-1441993812 1441966336 ba83 4. картинка Usb rubber ducky что это. картинка 1441993812 1441966336 ba83 4

Единственная видимая часть:

Usb rubber ducky что это. 1441993878 1441966357 a560 3. Usb rubber ducky что это фото. Usb rubber ducky что это-1441993878 1441966357 a560 3. картинка Usb rubber ducky что это. картинка 1441993878 1441966357 a560 3

BAD USB ИЛИ НЕМНОГО ИСТОРИИ

Итак, на конференции Black Hat в прошлом году двое исследователей (Karsten Nohl и Jakob Lell) поделились с общественностью опытом, как перепрошить контроллер флешки своей прошивкой. По истечении некоторого времени такая флешка регистрировалась в качестве клавиатуры и набирала заданные команды. Из-за серьезности проблемы ребята не стали выкладывать код эксплойта. Однако, спустя некоторое время, двое других исследователей (Adam Caudill и Brandon Wilson) уже на конференции Derbycon представили миру работоспособный РоС, заточенный под микроконтроллер Phison 2251-03. Код доступен на github.

ТРАНСФОРМАЦИЯ

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

НАЧИНАЕМ КОЛДОВАТЬ

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

ПОДГОТАВЛИВАЕМ СИСТЕМУ

Скачав с гитхаба архив с сорцами, ты обнаружишь, что большинство из них написано на С# и нуждается в компиляции, поэтому без студии не обойтись. Еще один инструмент, который понадобится — Small Device C Compiler, или SDCC. Его надо будет установить в C:\Program Files\SDCC, он понадобится для компиляции прошивки и патчей.

Скомпилировав все инструменты, входящие в архив, можно будет еще раз проверить, подходит ли данная флешка для перепрошивки:

где F — соответственно, буква накопителя.

ПОЛУЧАЕМ BURNER IMAGE

Следующим важным шагом является выбор подходящего burner image-а (8051 бинарник, ответственный за действия по дампу и заливке прошивки на устройство). Обычно их имена выглядят примерно так:

Где xx — номер версии контроллера (например, в случае PS2251-03 это будет 03), yyy — номер версии (не важно), а z отражает размер страницы памяти и может быть следующим:

Где искать подходящий burner image для своей флешки, можно посмотреть по этой ссылке.

ДАМПИМ ОРИГИНАЛЬНУЮ ПРОШИВКУ

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

Если ты все сделал правильно, то исходная прошивка сохранится в файл fw.bin.

ПОДГОТАВЛИВАЕМ PAYLOAD

Теперь настало время подумать о том, какой функционал мы хотим получить от нашей флешки. Если вспомнить Teensy, для него есть отдельный тулкит Kautilya, который позволяет автоматизировать создание пейлоадов. Для USB Rubber Ducky тут есть целый сайт, позволяющий посредством удобного веб-интерфейса прямо в онлайне создавать скрипты для девайса по своему вкусу. И это помимо списка уже готовых скриптов, которые лежат на гитхабе проекта. На наше счастье, Ducky-скрипты можно сконвертировать в бинарный вид, чтобы затем встроить их в прошивку. Для этого нам пригодится утилита Duck Encoder.

Что же по поводу самих скриптов, то тут есть сразу несколько вариантов:

• можно набросать нужный скрипт самостоятельно, благо используемый синтаксис не сложен в освоении (см. официальный сайт проекта);

• воспользоваться уже готовыми вариантами, выложенными на гитхаб, благо там есть и reverse shell, и прочие плюшки — остается только подправить и сконвертировать в бинарный вид;

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

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

где keys.txt — Ducky-скрипт, а inject.bin — выходной бинарник.

ЗАЛИВАЕМ ПРОШИВКУ

Как только у нас на рукам появится готовый пейлоад, настанет время внедрять его в прошивку. Выполняется это следующими двумя командами:

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

После такой манипуляции у нас на руках будет файл кастомной прошивки hid.bin с внедренной в него полезной нагрузкой. Остается только залить полученную прошивку на флешку:

где F — опять же, буква накопителя.

АЛЬТЕРНАТИВНЫЕ ВАРИАНТЫ

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

Затем в папке patch нужно найти файл base.c, раскомментировать строку #define FEATURE_EXPOSE_HIDDEN_PARTITION и добавить еще одну директиву define, задающую новое число LBA: #define NUM_LBAS 0xE6C980UL (это число должно быть четным, так что если на предыдущем шаге ты получил, скажем, 0xE6C981, то можно уменьшить число до 0xE6C940, например).

После правки исходников, надо поместить прошивку, которую ты хочешь пропатчить, в папку patch под именем fw.bin и запустить build.bat, который создаст в patch\bin\ файл модифицированной прошивки fw.bin. Останется только залить его на флешку.

Аналогичным образом делается Password Path и No Boot Mode Patch, про которые ты можешь подробней посмотреть на гитхабе проекта. Моей же основной целью было научить флешку выполнять заданные действия, чего мы с тобой и добились.

Поставленной цели мы добились. Более того: думаю, ты теперь понял, что флешки (да и прочие USB-девайсы) нельзя больше рассматривать как просто абстрактный накопитель, хранящий твою информацию. На самом деле — это уже практически компьютер, который можно научить выполнять определенные действия. Хотя на данный момент РоС выложен только для одного конкретного контроллера, будь уверен, что в момент чтения статьи кто-то наверняка ковыряет другие.

Так что будь осторожен при подключении USB-устройств и держи ухо востро.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *