Хакер - Взлом Wi-Fi со смартфона. Выполняем аудит точек доступа с Kali NetHunter и внешним Wi-Fi адаптером
nopaywall
Содержание статьи
WARNING
Согласно пункту 4.1.1 стандарта PCI DSS v. 2, требуется регулярно проводить аудит безопасности точек доступа Wi-Fi. Корректно это можно сделать только теми же инструментами, какие используются в реальных атаках. Статья носит информационный характер. Она адресована специалистам по ИБ и тем, кто собирается ими стать.
Введение
Поскольку Android базируется на ядре Linux, в нем вполне могут работать утилиты из традиционных дистрибутивов Linux (в том числе специализированные программы для тестов на проникновение). Надо всего лишь параллельно запустить привычный дистрибутив (например, Kali Linux ARM) в изолированной среде.
Решается эта задача с помощью системной утилиты chroot и приложений, использующих ее возможности. Она создает отдельный корневой каталог и позволяет запустить две ОС одновременно — например, Android и Kali Linux, каждую в своем окружении. Однако дальше пентестера ждут неприятные сюрпризы. Все программы, требующие использования внешних устройств и патчей уровня ядра, откажутся работать. К примеру, ты без проблем запустишь на смартфоне Aircrack-ng, Reaver или тот же Wifite через Linux Deploy, но не сможешь ничего сделать с ними «в прямом эфире» — только анализировать ранее перехваченные хендшейки с черепашьей скоростью.
Происходит так потому, что на встроенный в смартфоны модуль Wi-Fi обычно нет открытых спецификаций и написание драйвера с поддержкой режима мониторинга для него максимально затруднено. Любой внешний адаптер (даже из списка заведомо подходящих) тоже вряд ли заведется в дистрибутиве Linux, запущенном на смартфоне с использованием chroot. Мешают этому разные причины — отсутствие драйверов и прошивок на нужный чипсет, отсутствие поддержки USB OTG или невозможность загрузить сторонний драйвер в ядро.
Запуск программы — только полдела!Поэтому, если ты хочешь использовать Kali Linux на первом попавшемся смартфоне, простым монтированием образа в Linux Deploy не обойтись. Необходимо также найти драйверы, выполнить их кросс-компиляцию, пропатчить ядро и совершить прочие увлекательные действия с довольно высоким уровнем красноглазия.
Я же предлагаю пойти более простым путем и воспользоваться готовой сборкой Kali Linux, специально созданной для мобильных устройств. Она называется NetHunter и уже содержит все необходимые компоненты.
NetHunter
Kali NetHunter — это облегченный Kali Linux для смартфонов, который можно установить поверх обычной прошивки устройства. Кроме самих утилит Kali, NetHunter содержит набор драйверов для беспроводных адаптеров, а также модифицированное ядро Linux с поддержкой модулей ядра и патчами для корректной работы Aircrack-ng.
Дополнительные драйверы и прошивки Wi-Fi-модулей в NetHunterОфициально работа NetHunter гарантируется на следующих устройствах:
- смартфонах и планшетах серии Nexus (Nexus 4 (mako), 5 (hammerhead), 5x (bullhead), 6 (shamu), 6P (angler), 7 2013 (flo), 9 (flounder), 10 (manta));
- смартфонах OnePlus (OnePlus One (oneplusl), 2 (oneplus2), 3 и 3T (oneplus3), X (oneplusx));
- смартфонах Samsung серии Galaxy (Note 3 (hlte), S5 (kite), S7 (herolte), S7 edge (hero2lte));
- смартфонах LG (G5 T-Mobile (h830), G5 International (h850), V20T-Mobile(h918), V20 US Unlocked (us996))
- смартфонах HTC One M7GPE (onem7gpe) и HTC 10 (htc.pmewl);
- смартфонах Sony Xperia ZR (dogo) и Sony Xperia Z (yuga);
- планшетах Nvidia SHIELD (shieldtablet) и SHIELD tablet K1;
- смартфоне ZTE Axon 7 (ailsa_ii).
Также на xda-developers.com встречаются любительские порты NetHunter. Искать их удобнее по типовому запросу в Google:
[модель_устройства] kali nethunter site:forum.xda-developers.com
Однако с любительскими портами надо быть осторожнее. Например, сборка для Samsung I9300 оказалась кривой. NetHunter установился, запустился, но внезапно впал в маразм. Теоретически можно было отловить и пофиксить баги или сделать более удачный порт NetHunter самостоятельно, однако это неопределенно большие затраты времени.
Поэтому лучше раздобыть проверенный смартфон с официальной поддержкой Kali NetHunter. Например, Nexus 5 — отличный аппарат стоимостью 5–8 тысяч рублей. Я использовал именно его и дальнейший рассказ буду вести с оглядкой на Nexus 5, однако для других моделей последовательность действий будет аналогичной.
Установка
NetHunter следует устанавливать поверх стандартной прошивки смартфона или CyanogenMod. В данный момент NetHunter поддерживает стоковые прошивки Android 5.1.1 и 6.0.1 и CyanogenMod/LineageOS разных версий. Узнать, изменилась ли ситуация после выхода статьи, можно в wiki.
Сами сборки NetHunter для разных смартфонов и планшетов можно найти на этой странице.
Также тебе понадобится инструмент fastboot
и драйверы для ADB. В Windows и то и другое можно установить с помощью простого инсталлятора. В Linux можно установить пакет android-platform-tools
.
Еще проще использовать утилиту Nexus Rootkit Tool. Она сама скачает все необходимое и выполнит большую часть муторных операций, а если и застрянет на какой-то из них, то выдаст подробный мануал о том, что делать дальше.
Пошаговые инструкции в NRTЕсть еще два необходимых компонента:
- кастомный рекавери TWRP для твоего смартфона, его можно найти на сайте twrp.me;
- SuperSU, он нужен в форме ZIP-архива, то есть Recovery Flashable.zip.
Когда все необходимые файлы будут на руках, можно приступить к установке кастомного рекавери и рутингу. Во время этого процесса ты лишишься всех данных на устройстве, поэтому предварительно сохрани их.
Сначала выключаем смартфон и включаем его с зажатой клавишей увеличения громкости. Он перейдет в режим fastboot. Подключаем смартфон к компу с помощью кабеля и выполняем следующую команду в ADB:
$ fastboot oem unlock
Эта команда разблокирует загрузчик, попутно стирая все данные со смартфона. Теперь устанавливаем TWRP:
$ fastboot flash recovery образ-twrp.img
Если операция прошла успешно, выключаем смартфон и включаем его снова с зажатой клавишей уменьшения громкости. После перезагрузки должен появиться интерфейс TWRP. Записываем на смартфон SuperSU с помощью ADB:
$ adb push путь\к\SuperSU.zip /sdcard/
Нажав кнопку Install
, прошиваем SuperSU. По окончании установки перезагружаем смартфон, делаем первичную настройку и устанавливаем BusyBox в /system/bin
(путь установки важен!).
Далее снова перезагружаемся в TWRP и записываем на смартфон архив с NetHunter:
$ adb push путь\к\nethunter.zip /sdcard/
Прошиваем и перезагружаемся.
Установка NetHunter на Nexus 5Установка может зависать на 90%, но при этом выполняется корректно. Просто убедись, что в отображаемом на экране логе есть строка успешного обнаружения BusyBox, и подожди еще минут десять. После можешь перезагрузить смартфон вручную, если он не сделает этого сам.
Во время установки NetHunter предложит установить несколько дополнительных приложений. Не отказывайся от установки Hacker’s Keyboard. На этой клавиатуре есть клавиши Ctrl, Alt, Shift, Break, F1–F12 и другие, без которых в консоли как без рук. Теоретически можно обойтись и встроенной клавиатурой, имитируя нажатие функциональных клавиш кнопками управления громкости, но это не так удобно, да и порой они просто не срабатывают.
Эмуляция дополнительных клавиш в стандартной клавиатуре (слева) и выбор Hacker’s Keyboard (справа) |
Первичная настройка
При первом запуске NetHunter запросит права суперпользователя и разные разрешения десяток раз. Если ты ошибся и не предоставил какое-то из них, то открой разрешения для программ в SuperSU и добавь их вручную. Иначе NetHunter просто не будет работать.
Затем проверь наличие обновлений. После этого перейди в раздел Kali Chroot Manager и скачай образ диска kalifs-minimal.tar.xz
(можно и full
, на Nexus 5 он влезает, но для вардрайвинга хватит minimal
). NetHunter автоматически распакует и смонтирует его.
Обновление сразу после установки (слева), установка Kali в chroot (справа) |
На заключительном этапе тапни Update Kali metapackages из меню Custom commands либо просто набери apt-get update && apt-get upgrade
в терминале.
Всё! Осталось подключить внешний USB Wi-Fi-адаптер, и можно приступать к аудиту.
Доработка напильником
Сейчас доступны две версии Kali NetHunter:
- Sana (с ядром 3.1) для совсем старых устройств на Android 5.1 (например, Nexus 7 2012);
- Kali Rolling (с ядром 3.2 и выше) для более свежих девайсов.
Они используют разные репозитории. Сайты обновлений для Kali Sana в настоящее время недоступны. Поэтому, если у тебя Kali Sana, добавь в список репозиториев (/etc/apt/sources.list
) следующую строку:
deb http://old.kali.org/kali-security sana/updates main contrib non-free
В новой версии Kali Rolling тоже стоит добавить такую строку:
deb http://http.kali.org/kali kali-rolling main contrib non-free
Чтобы узнать, какое ядро в твоем Kali NetHunter, просто запусти терминал и прочти первые строки.
Версия приложения NetHunter и версия ядра |
Wi-Fi-донглы и другое оборудование
Любая рыбалка начинается с выбора снастей, а вардрайвинг — с подходящей оснастки. Основным инструментом у нас будет смартфон (в этом главное отличие данной статьи) и Wi-Fi-адаптер (донгл) с интерфейсом USB. Такая связка буквально помещается в кармане или небольшой сумке, не привлекая внимания.
О том, как выбрать подходящий донгл, мы уже писали в статье «Выбираем бюджетный адаптер для взлома Wi-Fi». Обрати внимание, что она описывает универсальную методику подбора адаптеров — старых, новых и даже еще не поступивших в продажу. Если же тебе нужен простой ответ на вопрос «что брать?», то вот список проверенных:
- Alfa AWUS036H (Realtek 8187L, 802.11b/g, 2,4 ГГц, дальнобойный);
- Alfa AWUS036NH (Ralink RT3070);
- Alfa AWUS036NEH (RT3070);
- Alfa AWUS036NHA (AR9271 (802.11b/g/n, 2,4 ГГц, рекомендуется для WPS-атак);
- Alfa AWUS051NH (Rev. 1 и Rev. 2; 2,4/5 ГГц);
- Alfa AWUS052NH (RT3572).
Более доступные варианты:
- TP-LINK TL-WN722N (AR9271);
- Netsys 9000WN (RT3070, с панельной антенной).
Проверенные в NetHunter чипы: Realtek 8187L, Ralink RT2070, RT2571W, RT2671, RT2770, RT2870, RT3070, RT3071, RT3072, RT3370, RT3572, Atheros AR7010, AR9170, AR9271.
Обрати внимание, что в списке рекомендованных донглов одни «Альфы». Это не случайно. У них не только более высокая мощность (о том, как хитро она достигается, читай в следующей статье), но и очень качественное экранирование и хорошие фильтры помех. Поэтому с «Альфой» ты получаешь не просто мощный передатчик, а еще и очень чувствительный приемник, что более важно для вардрайвинга. Подходят далеко не все адаптеры производства Alfa Networks, а только указанные в списке. Работа остальных не гарантируется.
Помимо смартфона и Wi-Fi-адаптера, потребуется кабель USB OTG. Желательно сразу брать Y-образный (вроде такого), чтобы во второй порт подключить внешний аккумулятор. Во время вардрайвинга встроенная батарея смартфона будет разряжаться очень быстро, поэтому для продолжительного аудита необходим Powerbank на 5000 мА ⋅ ч или более емкий.
Приступаем к аудиту
Наконец мы готовы использовать Kali NetHunter и приступить к атакам на точки доступа. В меню приложения NetHunter есть кнопки быстрого вызова популярных команд и даже отдельная секция Wardriving с очень скудным наполнением. Предполагается, что опытный пентестер сам заполнит ее шорткатами на свой вкус.
Пока мы этого делать не будем, поскольку шорткаты — это просто кнопки, передающие заранее записанные команды в терминал. Можно вообще не открывать приложение NetHunter, а сразу запустить эмулятор терминала и выбрать в нем Kali.
Настраиваем донгл
Первым делом необходимо определить и задействовать донгл. Обычно внешний Wi-Fi-адаптер получает имя интерфейса wlan1
, однако имя может быть любым. Стоит проверить (и при необходимости изменить) его перед дальнейшими действиями.
Для начала узнаем список доступных сетевых интерфейсов:
# iw dev
Чтобы посмотреть подробности о сетевых адаптерах и их параметрах, используем другую команду:
# iw list
В ответ она выводит довольно громоздкий перечень, поэтому обычно удобнее использовать более прицельные запросы. Например, следующий запрос позволяет узнать, какие частотные диапазоны поддерживает твой Wi-Fi-адаптер:
# iwlist wlan1 frequency
![Определяем название интерфейса донгла и поддерживаемые донглом частоты](iw_dev.png, iw_freq.png)
Перед началом эфирных изысканий необходимо переключить Wi-Fi-модуль в режим мониторинга. Желательно также изменить его MAC-адрес. Это нужно для того, чтобы меньше светиться в логах. Смена MAC-адреса также понадобится, если ты захочешь выполнить атаку «Злой двойник». Ее мы подробно разберем в одной из следующих статей.
Включить режим мониторинга можно разными способами. Например, так:
# iwconfig wlan1 mode monitor
или с помощью утилиты Airmon-ng:
# airmon-ng start wlan1
Поменять MAC-адрес можно с помощью ifconfig:
# ifconfig wlan1 hw ether XX:XX:XX:XX:XX:XX
(здесь вместо знаков вопроса необходимо задать желаемый MAC-адрес в hex-формате).
Если захочешь посмотреть текущий MAC-адрес своего Wi-Fi-модуля (например, проверить, заменился ли он), то введи команду:
# macchanger -s wlan1
Эта же утилита умеет изменять MAC-адрес на случайный (удобно для автоматизации):
# macchanger -r wlan1
Перед изменениями режима работы донгла и его MAC-адреса требуется отключить сетевой интерфейс, а затем включить его снова. Поэтому полный список команд для смены MAC и включения мониторинга выглядит так:
# ifconfig wlan1 down # ifconfig wlan1 hw ether XX:XX:XX:XX:XX:XX # iwconfig wlan1 mode monitor # ifconfig wlan1 up
Сканируем эфир
Любая атака начинается со сбора информации. Просканировать эфир из консоли проще всего с помощью Airodump-ng:
# airodump-ng wlan1
Но гораздо удобнее для этого использовать скрипт Wifite. Некоторые считают его не труЪ-хакерской утилитой, но на blackMORE Ops его любят и замечают, что ][-инструмент — это тот, который позволяет быстрее добиться результата. Не стоит пренебрегать «нубскими» программами, если они информативны и экономят время.
Для начала сканирования достаточно написать в терминале wifite
— утилита запустится в интерактивном режиме и предложит выбрать, какой сетевой интерфейс переключить в режим мониторинга.
Список AP и их параметров |
Дальше нужно выбрать точку доступа, записать ее параметры (ESSID и/или MAC-адрес, номер канала, тип шифрования, наличие/отсутствие WPS) и выбрать наиболее рациональный вариант атаки.
Обрати внимание, что в NetHunter предустановлен Wifite r87. На GitHub доступна вторая версия, в которой есть поддержка режима 5 ГГц, гораздо эффективнее выполняется деавторизация и постоянно отображается текущий уровень сигнала выбранной точки доступа. Установить Wifite 2.00 в Kali NetHunter можно следующей командой:
# git clone https://github.com/derv82/wifite2.git
Дальше переходим в каталог wifite2
и запускаем скрипт Wifite.py
. Обрати внимание на регистр.
# cd wifite2 # ./Wifite.py
Универсальная атака
Простейшие атаки по дефолтным WPS PIN мы уже разбирали в прошлой статье. Они дают практически мгновенный результат, но срабатывают только на уязвимых точках доступа. Сейчас же мы разберем максимально универсальный метод, работающий с любым типом авторизации (WEP/WPA/WPA2) и никак не связанный с WPS.
Атака называется «захват рукопожатий», то есть сессий авторизации клиентских устройств на точке доступа Wi-Fi. Выполнять его можно как в пассивном режиме, так и в активном.
При выборе первого варианта твои действия совершенно незаметны. Ты ничего не отправляешь в эфир, а только слушаешь выбранный канал в ожидании авторизации любого устройства на нужной AP. Дождавшись handshake, ты перехватываешь его и записываешь в файл:
# airodump-ng wlan1 --channel 5 -w captured.cap
Это пример для пятого номера канала и имени файла с хендшейком captured.cap
. Для надежности лучше захватить несколько рукопожатий и спокойно анализировать их на стационарном компьютере (или вовсе загрузить на специализированные онлайн-сервисы подбора паролей по хендшейкам, об этом позже).
К точке доступа могут подолгу не подключаться новые «клиенты». Если ждать надоело, то можно ускорить процесс, перейдя в активный режим. Так ты получишь существенную прибавку к скорости ценой утраты маскировки.
Для этого понадобится утилита aireplay-ng, которая (помимо прочего) умеет выполнять принудительное отсоединение беспроводных клиентов от выбранной точки доступа.
# aireplay-ng -0 1 -a XX:XX:XX:XX:XX:XX -c XX:XX:XX:XX:XX:XX wlan1
Параметр -0
задает режим деаутентификации, а единица — число отправляемых подряд команд отключения. Обычно используют от одного до пяти пакетов в зависимости от уровня сигнала и скорости отклика (подсказка: не спеши сразу ставить пять; пока ты DDoS’ишь AP лавиной deauth’ов, прослушаешь хендшейк, и все будет зря). Параметр -a
служит для указания MAC-адреса точки доступа, а параметр -c
— подключенного к ней клиента. Если MAC-адрес клиента не указан, то будет отправлен широковещательный запрос и команду деавторизации получат все клиенты выбранной AP.
Вместо MAC-адреса AP можно указать ее имя с ключом -e
(ESSID). Пример:
# aireplay-ng -0 1 -e MarsHotel wlan1
Aireplay отправит через твой Wi-Fi-донгл команды деавторизации всем устройствам, подключенным к точке доступа с именем MarsHotel
. Они разорвут соединение и вскоре начнут соединяться повторно. Так эфир быстро наполнится свежими хендшейками.
Примечание: устройство не удастся принудительно рассоединить с AP, если твой сигнал слишком слабый или если админ включил опцию шифрования фреймов (IEEE 802.11w-2009). Последнее часто встречается в корпоративных сетях, особенно с маршрутизаторами Cisco уровня Enterprise.
Более грубое отключение иногда удается выполнить утилитой MDK3:
# mdk3 wlan1 d -c 1,2,3,4,5,6,7,8,9,10,11
Здесь wlan1
— имя беспроводного интерфейса, d
— команда деаутентификации, -c 1, ..., 11
— команда отсылки пакетов deauth
по всем основным каналам диапазона 2,4 ГГц.
Скрипт Wifite также выполняет деавторизацию обнаруженных клиентов (если ты не отменил ее отдельной командой). Вторая версия проделывает такую атаку полностью автоматически и очень быстро.
Скоростной захват хендшейка в Wifite 2.00 |
Среднее время ожидания перехвата «рукопожатия» в активном режиме составляет пару минут, а в засаде можно просидеть несколько часов. Минус — ты полностью лишаешься маскировки и светишься в логах. Если это точка доступа в какой-то компании, то наверняка админ получит тревожные сообщения от систем обнаружения вторжений.
Если на точке доступа включен режим фильтрации по MAC-адресу, а ни одного легитимного клиента не подключено, то брутфорс MAC-адреса из «белого списка» можно выполнить утилитой MDK3:
# mdk3 wlan1 f -t XX:XX:XX:XX:XX:XX
Вместо знаков вопроса подставь MAC-адрес атакуемой точки доступа.
Вычисление пароля по хендшейку
Файл с перехваченными пакетами авторизации клиентов записывался с определенного канала, поэтому он может содержать данные радиообмена с разными точками доступа. Программы анализа .cap-файлов обычно самостоятельно определяют сохраненные ESSID и предлагают выбрать нужный идентификатор. Одна из первых утилит для подбора пароля из перехваченных хендшейков — программа Aircrack-ng. Команда перебора паролей по словарю выглядит так:
# aircrack-ng -w [путь_до_словаря].lst [путь_до_файла_с_хендшейком].cap
Оптимизированные словари для Kali NetHunter лежат здесь. Вместо них можно взять любые другие. Главное, чтобы каждое слово в файле словаря начиналось с новой строки.
Перебор по словарю и радужным таблицам
Стандарт WPA2 требует использовать пароли длиной от восьми символов. Поэтому многие рекомендуют обработать файл словаря, исключив из него более короткие слова. Казалось бы, верное решение, ведь они только отнимают время. Однако среди паролей встречаются повторы и всякие премутации, которые невозможно проверить без короткой основы. Например, test
паролем быть не может, а вот testtest
или test1234
— запросто.
Если пароль не удалось подобрать атакой по словарю или он изначально предполагается несловарный, то можно использовать радужные таблицы (БД с парами хеш — пароль). Их можно сгенерировать с помощью утилиты airolib-ng
(или найти готовые) и скормить Aircrack-ng той же командой, только с ключом -r
вместо -w
.
# aircrack-ng -r rainbow_table.db captured_hs.pcap
Здесь rainbow_table.db
— файл радужных таблиц, а captured_hs.pcap
— сохраненный хендшейк.
Есть множество других утилит для вычисления пароля из данных файла рукопожатия. Наиболее популярны Pyrit (она уже есть в составе NetHunter) и Hashcat, а точнее — oclHashcat. Это программа с поддержкой ускорения перебора паролей на нескольких процессорах и видеокартах. Поддерживаются как ГП AMD, так и Nvidia. Hashcat использует файлы собственного формата .hccap
. Преобразовать в него исходный файл .cap поможет утилита cap2hccapx
, входящая в набор hashcat-utils.
Также есть онлайн-сервисы для конвертации и анализа .cap/.pcap-файлов. Например, Hash.co.uk.
Лайфхак
Есть сумки небольшого объема с прозрачным окошком для смартфона. Такую можно повесить на руку (косплеить Fallout) или на руль велосипеда и выполнять разведку эфира, просто гуляя вокруг. Смартфон лежит в сумке, на экране отображаются обычные программы Android, а лог со всеми обнаруженными точками доступа и их параметрами записывается в файл командой
# wifite -i wlan1 -mac > ListOfAPs.txt
Так мы включаем режим мониторинга на сетевом интерфейсе wlan1, меняем его MAC на случайный и перенаправляем стандартный вывод в текстовый файл с произвольным названием.
Активный аудит тоже возможен без извлечения смартфона из сумки. Сенсорный экран легко воспринимает команды через пленку.
Превращаем велосипед в мобильную станцию РЭБПочему именно велосипед? У него нет номеров государственной регистрации, и он не привлекает внимания. В ходе эксперимента я спокойно проезжал за шлагбаумы и катался мимо охраны. Она вообще не воспринимает велосипедиста как потенциального нарушителя. Охранники старой закалки воспитывались на столь же старых фильмах, герои которых вели слежку непременно из большого фургона с огромным количеством антенн и маскирующей надписью «Доставка пиццы».
Что дальше?
NetHunter предлагает множество инструментов, и описать их в рамках одной статьи невозможно. В следующих статьях мы рассмотрим ускоренные техники взлома точек доступа, узнаем секрет «Альфы», добавим мощности нашему донглу, научимся атаковать скрытые сети, обходить фильтрацию по MAC-адресам и найдем управу на корпоративные AP, шифрующие фреймы.
WWW
Читайте ещё больше платных статей бесплатно: https://t.me/nopaywall