Взлом компьютера за 3 секунды. Делаем USB-уточку с нуля на Arduino

Usb радиоудлинитель своими руками

Конечно можно! Абсолютно никаких сложностей в этом нет. Вам потребуются всего лишь:

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

Сложного ничего нет. Однако, перед первым подключением какого-нибудь дорогого устройства, неплохо бы прозвонить контакты тестером, опять-таки попрошенным у добрых Айтишников. У них вообще всегда много всего, что можно попросить. Золотые люди!

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

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

Какая файловая система используется на флешках?

Большинство флешек поставляются уже отформатированными в FAT32 для совместимости с Windows, Mac и Linux. Но файловая система FAT32 имеет существенный недостаток – размер одного файла не может быть больше 4GB, поэтому вы не сможете записать на такую флешку HD-видео или какой-нибудь большой файловый контейнер TrueCrypt.

Вы можете отформатировать вашу флешку в NTFS, тогда вы сможете записывать файлы значительно большего размера и значительно увеличиться надежность. Файловая система NTFS по умолчанию поддерживается всеми версиями Windows, начиная с NT/2000, так же частично поддерживается в Mac и в Linux. В тоже время большинство домашних медиа-центров и телевизоров не поддерживают систему NTFS.

Еще есть файловая система exFAT, созданная компанией Microsoft специально для flash накопителей. В exFAT уменьшено количество перезаписей одного и того же сектора, что продлит жизнь флешкам, и нет проблемы с 4GB файлами. Поддержка файловой системы exFAT есть в Windows XP с Service Pack 2 и 3 после установки обновления KB955704, и во всех версиях Windows старше Vista SP1, а также в Mac OS X Snow Leopard начиная с версии 10.6.5.

Самодельный удлинитель USB из витой пары для WEB камеры или 3G модема.

Как сделать удлинитель USB я понял, когда экспериментируя, сам удлинил USB шнур обычной web камеры на 18 метров для простого видеонаблюдения, (подробнее). То есть, я удлинил обычную web камеру на расстояние 18 метров от ноутбука! Это отличный результат, так как вначале мне вообще не удавалось удлинить юсб вебку и на метр. Через этот же самодельный USB удлинитель я впоследствии удлинял 3G модем и другие юсб устройства– все отлично работает.

Самодельный шнур удлинитель USB на 18 метров, который бесперебойно работал, был изготовлен мной за пятнадцать минут и обошелся в копейки. В то же время, в продаже, двухметровый качественный высокоскоростной USB 2.0 шнур с ферритовыми фильтрами стоит около 15 долларов. При этом, еще не известно, будет ли он нормально работать со всеми юсб устройствами. Мне неоднократно доводилось видеть метровые USB шнуры – удлинители, через которые нормально работали только мышки и клавиатуры. Даже флешки ни в какую не хотели через них определятся. По этому, я и начал думать, как самому сделать рабочий юсб удлинитель для web камеры, 3G модема и других, удаленных USB устройств.

Изменение программы для компьютера

1) Открываем файл C:\OpenRobo\set-led.c
2) Надо научиться отправлять микроконтроллеру более сложные сообщения, при приеме которых он будет выполнять нужные функции. Сейчас отправляется только 2 сообщения в переменной isOn — 0 = выключить светодиод, 1 = включить светодиод. Научимся отправлять также код 2 = выставить светодиоды через один на порте B (в предыдущем примере мы подготовили микроконтроллер для обработки этого кода, теперь просто пошлём его программой с компьютера).

3) Редактируем файл set-led.c

вставляем сверху от строчки

Программа
1 } else if ((isOn = (strcasecmp(argv[1], «on») == 0)) || strcasecmp(argv[1], «off») == 0) {

следующий код, который добавляет новый код вызова 2 для функции микроконтроллера

Программа
1

2

3

4

} else if (strcasecmp(argv[1], «discoteka») == 0) {

fprintf(stderr, «Every body dance now!\n»);

cnt = usb_control_msg(handle, USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_ENDPOINT_OUT, CUSTOM_RQ_SET_STATUS, 2, 0, buffer, 0, 5000);

if (cnt < 0) {fprintf(stderr, «USB error: %s\n», usb_strerror());}

Код отправляет команду 2 микроконтроллеру, что вызывает там запуск дискотеки. Пересобираем программу для компьютера и нам становится доступна новая команда — discoteka
. Таким образом можно вставить любые другие коды и функции для них. В C++ есть функция
Sleep(1000);
она задаёт задерку выполнения в милисекундах, например 1000 — это 1 секунда. Она полезна, с ней также можете сделать светодиоды мигающими. В будующем эта функция пригодится.

Обратите внимание на функцию usb_control_msg

, в ней можно передать 2 изменяемых параметра (в первом у нас передаётся 2 или переменная isOn, которая равна 1 или 0), следующее число (там стоит 0) может передать еще 1 значение, например, 1 переменная может быть всё также быть изначальной командой на on или off, а второй переменной можно передать, например, номер порта, который следует включить. Получить доступ к этим параметрам в программе для микроконтроллера можно по именам p1 и p2, для этого примера p1=2, p2=0.

Из чего сделать удлинитель USB.

Из чего сделать удлинитель USB — по началу, я пытался делать USB удлинитель из двойного экранированного микрофонного провода различных марок. Пускал D+ и D- сигналы USB по центральным жилам кабеля, а питание 5 вольт «+» и «-» по экранирующим оплеткам. Перебирал и другие варианты удлинителя юсб по экранированным проводам. Но ничего из этого не выходило. На таком удлинителе USB устройства не определялись даже на метровой длине шнура. Казалось бы – хороший экранированный провод, каналы D+ и D- разнесены и имеют отдельные экраны, что еще нужно то? Но на нем USB устройства не работали! Безрезультатные эксперименты с USB и экранированными проводами продолжались до момента, пока я не понял, что по линиям D+ и D- одновременно передается дифференциальный сигнал. А значит, для удлинителя USB нужно использовать симметричную линию — витую пару!

Что делать если я случайно удалил файлы с флешки?

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

Если же вы хотите попробовать восстановить данные самостоятельно, то посмотрите раздел нашего сайта “Программы для восстановления флешек“.

Сигнал USB на физическом уровне.

Сигнал USB на физическом уровне — это дифференциальный сигнал. Два сигнала, идущих по D+ и D- паре проводов одновременно в противофазе (инвертировано). Без участия общего провода. Пример дифференциального сигнала – выход сигнала с обмотки трансформатора. Амплитудой такого сигнала является не амплитуда относительно общего провода, а амплитуда относительно этих дух проводников. Соответственно, приёмник дифф сигнала регистрирует амплитуду между этими двумя инвертированными сигналами, а не амплитуду между сигнальным проводом и минусом источника питания.

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

По этому, надежный USB удлинитель нужно делать именно из витой пары. Самый доступный вариант витой пары для USB удлинителя – витая пара для компьютерных сетей, обычный «сетевой» провод.

Получаем burner image

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

BNxxVyyyz.BIN

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

  • 2KM — для 2K NAND чипов;
  • 4KM — для 4K NAND чипов;
  • M — для 8K NAND чипов.

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

Самодельный USB удлинитель из витой пары.

Самодельный USB удлинитель из витой пары я делал следующим образом: — в наличии у меня был кусок кабеля PRIME CAT5E UTP – 18 метров. Обычная неэкранированная компьютерная витая пара для прокладки в помещении. Самый дешевый сетевой кабель. Для подключения web камеры по USB мне необходим был кусок кабеля длиной 10 метров, но я решил не перерезать имеющийся у меня кусок и подключить его весь – для эксперимента. Как оказалось – весьма удачно.

USB удлинитель из витой пары я оконцевал разборными USB коннекторами «мама» и «папа», купленными в магазине радиотоваров.

Важный момент! Синюю пару проводов кабеля я пустил на D+ и D-. Почему именно синюю? – Все четыре витые пары жил кабеля имеют разный шаг свивки. Это хорошо заметно, если снять с UTP кабеля общую оболочку сантиметров на 10 – 15. Так вот, USB удлинитель отлично работал, если сигналы D+ и D- пустить по синей или же зеленой паре жил. Если же пустить D+ и D- по оранжевой паре, то USB удлинитель вообще не работал. Коричневая пара работала с перебоями. Вероятно, шаг свивки синей и зеленой пары жил идеально подходит для прохождения высокочастотного сигнала USB (резонанс, импеданс и т.п.).

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

Самодельный USB удлинитель из витой пары отлично работает – все USB устройства, подключенные к нему, определяются и работают без проблем. USB флешка, USB картридер, USB Wi-Fi адаптер, 3G модем МТС, EasyCap – устройство видео захвата, USB DVB-T приемник – SDR радио, USB веб камера. Это все, что мной было проверено на этом самодельном USB удлинителе.

После серии неудачных экспериментов с коротким экранированным проводом, работоспособность 18 метрового USB удлинителя казалась чем-то не реальным. Впоследствии я делал много USB удлинителей по данной технологии, и все они работали до длины 20 метров. На бо’льшую длину мне так и не удалось заставит юсб удлинитель нормально работать. Юсб устройства перестают определятся.

Трансформация

Как ты понял, сегодня мы попробуем превратить обычную флешку в секретное оружие пентестера!

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

Максимальная длина USB удлинителя.

По стандарту, максимальная длина кабелей и удлинителей USB 1.0 не должна превышать пять метров для режима Full-Speed (скорость 12 Мбит/с). Но это общий случай – минимальная спецификация для гарантированной работы любого USB устройства.

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

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

Принцип работы USB -флеш-накопителя и его компоненты.

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

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

Устройство USB flash довольно компактны, мобильны и дают возможность подключиться к любому компьютеру, который имеет USB-разъем. На что только не идут производители чтобы угодить потенциальным покупателям совмещая USB накопитель со всевозможными брелками, украшениями, игрушками и авторучками…

Устройство USB Flash накопителя состоит из следующих электронных компонентов:

  1. Разъем USB.
  2. Микроконтроллер.
  3. Контрольные точки.
  4. Чип (микросхема) флэш-памяти.
  5. Кварцевый резонатор.
  6. Светодиод.
  7. Переключатель (защита от записи).
  8. Место для микросхемы памяти (дополнительное место).

Далее я хотел бы более подробно остановиться на основных компонентах usb flash накопителя и описать некоторые характерные симптомы нестабильной работы USB Flash накопителя.

Почему не работает удлинитель USB – причины:

1) Провода USB удлинителя не являются витой парой.

Никаких экранированных микрофонных и т.п. проводов для USB удлинителя применять не стоит! Только витая пара! Лучший кабель для USB удлинителя – стандартный кабель «компьютерная витая пара UTP» из одножильных медных проводов (но не из мягких многожильных проводов для пачкорда). Линии D+ и D- ОБЯЗАТЕЛЬНО должны быть витой парой проводов. Именно свитой парой проводов.

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

2) Для сигналов D+ и D- USB удлинителя задействована не та витая пара проводов.

Кабель «компьютерная витая пара UTP», под своей оболочкой, имеет четыре свитые пары проводов с разным шагом свивки. Это сделано для уменьшения паразитных влияний пар друг на друга в кабеле. Однако, шаг свивки пары так же влияет и на параметры прохождения высокочастотного сигнала по ней. По этому, для линии D+ и D- желательно перепробовать все четыре пары и определить, на какой из них USB устройства работают наиболее стабильно. Мне при изготовлении USB удлинителей, чаще всего везло с синей или зеленой витой парой. Линия D+ и D- на этих витых парах кабеля работала почти всегда отлично. Вероятно, эти проводники пары имеют «нужный» шаг свивки. А вот оранжевая пара проводов чаще всего почему-то отказывала на длинных USB удлинителях (15-20 метров).

3) Большое падение питающего напряжения на удлинителе USB.

Для цепей питания необходимо запараллелить провода USB удлинителя! Питание на USB устройство через USB удлинитель нужно подавать по запараллелиным оставшимся трем витым парам – для увеличения сечения проводов и уменьшения их сопротивления. Если падение питающего напряжения 5 вольт на удлинителе будет существенным, то, USB устройство не сможет нормально работать. Оно не определится компьютером. Это прописная истина Закона Ома!

4) USB удлинитель подключен не к основным USB гнездам ПК.

USB удлинитель нужно подключать в USB гнезда, расположенные сзади корпуса ПК! Есть разница, куда подключать USB удлинитель! Дополнительные USB разъемы ПК, расположенные на корпусе, чаще всего соединены с материнской платой обычными проводами, а не витой парой. По этому, естественно, симметричный сигнал D+ и D- сильно искажается на таких проводах, вносятся помехи. А вот USB гнезда, расположенные сзади ПК, (смонтированные непосредственно на материнской плате) не внесут искажения в линию D+ и D-.

Начинаем колдовать

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

  • DriveCom — приложение для взаимодействия с флешками, основанными на контроллере Phison;
  • EmbedPayload — приложение, предназначенное для встраивания RubberDucky-скриптов inject.bin в кастомную прошивку с целью их последующего выполнения при подключении флешки;
  • Injector — приложение, извлекающее адреса из прошивки и встраивающее код патча в прошивку;
  • firmware — кастомная 8051 прошивка, написанная на С;
  • patch — коллекция 8051 патчей, написанных на С.

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

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

С телефона, планшета или ноутбука смотрим список точек доступа Wi-Fi. Должна появиться новая AP под названием WiFi Duck. Если ее видим, значит, все работает. Можно вскинуть руки, закричать «It’s Alive!» и дьявольски захохотать во вспышках молний.

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

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

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

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

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

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

Список деталей

Вот как в итоге выглядит список деталей.

Основные детали

  • Здравый смысл — 1 шт. Старайся оберегать себя и других от разнообразных опасностей;
  • ATtiny85 — 1 шт. (с клона Digispark);
  • сопротивление на 68 Ом — 2 шт. (с клона Digispark);
  • сопротивление на 1,5 кОм — 1 шт. (с клона Digispark);
  • стабилитрон на 3,6 В — 2 шт. (с клона Digispark);
  • МОП-транзистор (MOSFET) IRLML2502 — 1 шт. (тут есть разные варианты. Например, ZXMN2F34FHTA тоже будет неплохо работать);
  • сопротивление примерно на 680 Ом (см. важное примечание о безопасности в инструкции по сборке).

Опциональные детали и инструменты

  • Старая флешка в выдвижном исполнении. Нам пригодится ее корпус и штекер USB;
  • печатная плата для прототипирования SMTpad 50×50 (это то, что использовал я, наверняка более опытные товарищи найдут более удачный способ собрать схему);
  • медная лента (я использовал ее для замыкания соединений на плате);
  • припой, паяльная паста, канифоль;
  • паяльник или паяльная станция.

Детали для пейлоада

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

Высоковольтный программатор

Если вы выберите путь с высоковольтным программатором, то тут большой выбор устройств — например, долларов за 60. Однако вполне можно обойтись Arduino Nano v3 за 4 доллара и макетной платой. Кто-то сделал скетч для Arduino, который автоматически очищает предохранительные биты, что для нас очень удобно. Шаги 1–3 из руководства по этой операции привели меня к желаемому результату.

Вместо того чтобы подключать ATtiny напрямую к макетке, я использовал зажим SOIC-8, чтобы программировать чип напрямую. Также я заменил двенадцативольтовую батарейку на пятивольтовый бустер за 5 баксов. Все это я так часто использовал, что перенес с макетной платы на более постоянную ProtoBoard.

Заливаем прошивку

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

copy CFW.bin hid.bin tools\EmbedPayload.exe inject.bin hid.bin

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

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

tools\DriveCom.exe /drive=F /action=SendFirmware /burner=BN03V104M.BIN /firmware=hid.bin

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

Убираем пятисекундную задержку при старте

Одно из раздражающих свойств Digispark — это пятисекундная задержка при загрузке. Именно эта задержка позволяет загружать новые скетчи при подключении. Если ее убрать, то для загрузки программы нужно будет замыкать два пина ATtiny. Для борьбы с задержкой понадобится новый загрузчик. Загрузить его можно при помощи программатора, но куда веселее использовать уязвимость типа «скольжение по цепочке NOP» (NOPslide), чтобы загрузить его из памяти, которая обычно используется для скетчей. Однако для записи прошивки все равно понадобится убрать некоторые предохранители внутри чипа. А это, к сожалению, все же требует использовать высоковольтный (12 В) программатор. Говорят, в некоторых версиях Digispark биты-предохранители не выставлены, но в моей они были.

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

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

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

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

Источник: Сomputerra.ru — https://www.computerra.ru/108106/bad-usb-on-some-devices/

Опубликовано: 7.11.2014

Вернуться на главную страницу …

Альтернативные варианты

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

tools\DriveCom.exe /drive=E /action=GetNumLBAs

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

Проверка BadUSB WiFi Ducky

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

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


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

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

Лучше, чем Rubber Ducky

Наверняка вы уже слышали про Rubber Ducky. Это устройство из разряда BadUSB для HID-атаки. Подобного рода девайсы умеют эмулировать клавиатуру и позволяют отправить любые команды, словно их набрал текущий пользователь.

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

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

Подготавливаем payload

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

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

  • можно набросать нужный скрипт самостоятельно, благо используемый синтаксис не сложен в освоении (см. официальный сайт проекта);
  • воспользоваться уже готовыми вариантами, выложенными на гитхаб, благо там есть и reverse shell, и прочие плюшки — остается только подправить и сконвертировать в бинарный вид;
  • либо же воспользоваться вышеупомянутым сайтом, который в пошаговом режиме проведет через все настройки и позволит скачать готовый скрипт в виде Ducky-скрипта (либо уже в сконвертированном бинарном виде).
Рейтинг
( 1 оценка, среднее 4 из 5 )
Понравилась статья? Поделиться с друзьями:
Для любых предложений по сайту: [email protected]