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

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

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

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

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

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

Широко известный в узких кругах девайс 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 для создания виртуального образа диска
Ис­поль­зуем ути­литу DriveDroid для соз­дания вир­туаль­ного обра­за дис­ка

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