Автоматический захват рукопожатий и PMKID от всех точек доступа
Эта инструкция посвящена программе, которая умеет собирать хэндшейки и PMKID от всех точек доступа. Программа может работать в полностью автономном режиме:
- сканировать в поисках ТД
- инициировать подключения для сбора PMKID
- деаутентифицировать клиентов найденных ТД
- прослушивать и сохранять рукопожатия
- повторять все эти действия по циклу без участия пользователя
Если вы пропустили и не знаете, что такое PMKID, то смотрите статью «Взлом Wi-Fi без пользователей» - там есть объяснение.
Про похожую программу, которая умеет собирать рукопожатия, но не умеет захватывать PMKID — про Hashcatch, смотрите статью «Автоматический сбор хешей точек доступа для взлома Wi-Fi» - там же вы найдёте ссылки на другие программы для автоматизации этих процессов.
В этой же инструкции мы рассмотрим bettercap. Вторая версия программы получила очень много изменений и новых функций. Программа находится в активной разработке и постоянно получает новые возможности. Обзор основ работы с bettercap смотрите в статье «Новая версия bettercap 2.x: как установить и использовать в Kali Linux» и я настоятельно рекомендую начать знакомство с той статьи.
В статье, на которую дана ссылка, уже упоминается работа с Wi-Fi сетями, но, во-первых, с тех пор много было добавлено именно по wifi модулю, а, во-вторых, эта инструкция сфокусирована на Wi-Fi возможностях bettercap и в ней будет показано, как сделать автономную систему, которая сама будет собирать хеши для взлома Wi-Fi.
Начнём с обзора нововведений. Добавлен новая команда wifi.assoc для выполнения атаки без клиентов RSN PMKID.
Ещё добавлены параметры wifi.region и wifi.txpower. Они отвечают за регион, в котором как бы работает Wi-Fi адаптер и за его мощность. Больше подробностей вы найдёте в статье «Как увеличить мощность (TX Power) Wi-Fi карты в Kali Linux и BlackArch». Эти параметры являются важными даже не потому, что они могут что-то улучшить, а из-за того, что они могут ухудшить! Дело в том, что у меня УЖЕ настроен нужный регион и мощность увеличена до максимальной. Но программа bettercap также имеет значения по умолчанию, она сразу устанавливает регион на BO и пытается повысить мощность до 30. Для моего адаптера это не работает! То есть ДО запуска bettercap у меня Wi-Fi адаптеры работают на 30 dBm, а ПОСЛЕ запуска bettercap у меня адаптеры переключаются на 20 dBm… Вполне возможно, что у вас аналогичная ситуация, поэтому мы рассмотрим, как избежать проблем с этим.
Добавлены новые возможности парсинга WPS и команда wifi.show.wps. Кстати, в целом собираемая информация выглядит так:
Теперь модуль wifi.recon перехрватывает, парсит и сохраняет в файл полное 4 ступенчатое WPA рукопожатие автоматически.
Другие изменения менее значительны:
- добавлена новая команда wifi.clear для очистки точек доступа, собранных с помощью wifi.recon
- wifi.deauth и wifi.assoc теперь поддерживают автодополнение BSSID (начните печатать MAC точки доступа и нажмите кнопку TAB)
- новый параметр wifi.rssi.min
- wifi.recon теперь сообщают о событиях wifi.client.new и wifi.client.lost
- wifi.show.wps теперь поддерживает '*' и 'all' в качестве сокращений для 'ff:ff:ff:ff:ff:ff'.
- wifi.deauth теперь поддерживает '*' and 'all' в качестве сокращений для 'ff:ff:ff:ff:ff:ff'.
- если беспроводной интерфейс в состоянии down, то теперь вместо ошибки, wifi.recon будет активировать интерфейс (переводить в up)
- столбцы wifi.show и net.show теперь украшены в соответствии с сортировкой
- новые параметры wifi.show.filter, wifi.show.limit и wifi.show.sort для контроля wifi.show
Атака на Wi-Fi из bettercap
Программа bettercap умеет переводить беспроводной интерфейс в режим монитора и умеет переводить его из состояния down в состояние up, но мне НЕ нравится как она это делает )))) Поэтому я буду делать это вручную.
Это необязательно, но я предпочитаю останавливать службу NetworkManager:
sudo systemctl stop NetworkManager
Смотрим имя беспроводного интерфейса:
iw dev
У меня интерфейс называется wlp0s20f0u2, поэтому я перевожу его в режим монитора командами (замените в них wlp0s20f0u2 на имя вашего интерфейса):
sudo ip link set wlp0s20f0u2 down sudo iw wlp0s20f0u2 set monitor control sudo ip link set wlp0s20f0u2 up
Запускаю bettercap, указав имя своего Wi-Fi интерфейса:
sudo bettercap -iface wlp0s20f0u2
Запускаю сбор данных о Wi-Fi в округе:
wifi.recon on
Данные выводятся в виде списка по мере обнаружения новых устройств:
Для вывода таблицы выполните команду:
wifi.show
Чтобы анализировать только определённые каналы, можно установить значение переменной wifi.recon.channel следующим образом:
set wifi.recon.channel 1,2,3,4,5,6,7,8,9,11,12
Но изменения не вступят в силу сразу — нужно было их устанавливать или до запуска Wi-Fi разведки, или перезапустить модуль сбора информации:
wifi.recon off wifi.recon on
Хотя лично у меня, установка wifi.recon.channel ни на что не влияет — карта продолжает сканировать все частоты, которые поддерживает.
Как происходил захват рукопожатий раньше? Нужно было настроить и запустить модуль сниффинга следующим образом:
set net.sniff.verbose true set net.sniff.filter ether proto 0x888e set net.sniff.output wpa.pcap net.sniff on
Теперь этого делать НЕ нужно!
Модуль wifi сам умеет сохранять рукопожатия. По умолчанию они записываются в файл ~/bettercap-wifi-handshakes.pcap. Это значение можно поменять, установив переменную wifi.handshakes.file:
set wifi.handshakes.file ~/hs-test.pcap
Обратите внимание, что ~ указывает не на домашний каталог текущего пользователя, а на каталог рута, поскольку программа запускается с sudo.
Для захвата PMKID какой-то определённой точки доступа, выполните команду
wifi.assoc BSSID
где вместо BSSID укажите MAC-адрес целевой ТД.
Если нужно попытаться захватить PMKID всех ТД в пределах досягаемости, то выполните:
wifi.assoc all
Аналогично с захватам полноценного четырёхэтапного рукопожатия — для атаки на целевую ТД:
wifi.deauth BSSID
Для атаки на все ТД:
wifi.deauth all
Общее количество захваченных рукопожатий покажет команда:
wifi.show
Для более тщательного анализа рекомендуется использовать aircrack-ng:
sudo aircrack-ng /root/bettercap-wifi-handshakes.pcap
pwnagotchi
Автор bettercap, его зовут Simone Margaritelli (evilsocket), завёл твиттер аккаунт для pwnagotchi. Устройство pwnagotchi — это ARM компьютер с батарейкой и с экранчиком на электронных чернилах, на котором установлен bettercap и кастомное ПО. Pwnagotchi умеет самостоятельно собирать PMKID и полноценные рукопожатия от Wi-Fi сетей. Если я правильно понимаю, Simone собрал пока всего два таких устройства. В реплаях к твитам народ пишет, «да, да, уже заждались». В принципе, ждать необязательно — весь функционал уже есть в самом bettercap, нужно лишь написать небольшой каплет с командами, всё это можно запустить на ноутбуке и получится pwnagotchi-годзила. Ну или тоже можете купить себе ARM плату, батарейку, экранчик и синюю изоленту.
Здорова, щеглы, сегодня своими руками мы будем делать pwnagotchi. Для этого нам понадобится создать файл pwnagotchi.cap:
gedit pwnagotchi.cap
Скопируйте в него:
# set wifi.recon.channel 1,2,3,4,5,6,7,8,9,11,12 # set wifi.region 00 set ticker.period 20 set ticker.commands clear; wifi.show; wifi.assoc all; sleep 7; wifi.deauth all wifi.recon on sleep 5 ticker on events.ignore wifi.client.probe events.clear clear
Запускать надо так (вместо wlp0s20f0u2 впишите имя вашего беспроводного интерфейса):
sudo bettercap -iface wlp0s20f0u2 -caplet pwnagotchi.cap
Таким образом я погулял по округе с ноутбуком и, как меня уверяет bettercap, набрал несколько десятков рукопожатий. Но строгий aircrack-ng далеко не все из них признаёт пригодными для работы:
В этом каплете всё довольно понятно. Закомментированные строки:
# set wifi.recon.channel 1,2,3,4,5,6,7,8,9,11,12 # set wifi.region 00
не работают, вы можете их расскомментировать и, в случае необходимости, подправить под свои значения. У меня у интерфейса wlp0s20f0u2 уже настроена txpower на 30.00 dBm. Если вы тоже настроили себе повышенную мощность и после запуска bettercap мощность падает, то посмотрите исходное значение, при котором мощность нормальная:
sudo iw reg get
И впишите в качестве wifi.region. Больше по теме мощности смотрите в статье «Как увеличить мощность (TX Power) Wi-Fi карты в Kali Linux и BlackArch».
Строка
set ticker.period 20
устанавливает повторение цикла команд каждые 20 секунд.
А сам набор команд для цикла описан этой строкой:
set ticker.commands clear; wifi.show; wifi.assoc all; sleep 7; wifi.deauth all
То есть wifi.show — показывает обобщённую таблицу с собранной информацией. Затем запускается команда wifi.assoc all для инициации подключения ко всем ТД и сбора PMKID от всех точек доступа. Затем sleep 7 включает паузу на 7 секунд — я НЕ знаю, действительно ли необходима пауза и сколько времени для неё требуется, попробуйте потестировать разные варианты. Затем идёт команда wifi.deauth all, которая деаутентифицирует всех клиентов — на эту команду отводятся оставшиеся 13 секунд из 20 секундного цикла.
При этом сбор информации о ТД и прослушивание рукопожатий выполняются непрерывно.
Вы можете попробовать разные тайминги и выбрать то, что покажет лучшие результаты, особенно при перемещении — делитесь своими наблюдениями в комментариях! Хотя, как мне кажется, здесь всё индивидуально — зависит от плотности Wi-Fi точек доступа и скорости передвижения.
Кстати, поскольку все собранные данные дампятся в один единственный файл, вам придётся, во-первых, внимательно изучить статью «Как извлечь рукопожатия из файла захвата с несколькими рукопожатиями» и, во-вторых, извлекать нужные вам рукопожатия практически вручную, как описано в той статье.
Про взлом PMKID хеша смотрите все статьи по тегу pmkid.
На картинке AWUS1900 самого Simone Margaritelli (возможно подключена к pwnagotchi):
Связанные статьи:
- WiFi-autopwner 2: инструкция по использованию и обзор новых функций (75.4%)
- Быстрый, простой и рабочий способ обхода Captive Portal (hotspot с авторизацией на web-интерфейсе) (69.4%)
- Взлом Wi-Fi без пользователей (69.1%)
- Взлом Wi-Fi без пользователей в Aircrack-ng (69.1%)
- Аудит безопасности Wi-Fi с Hashcat и hcxdumptool (69.1%)
- Малоизвестные возможности Aircrack-ng (RANDOM - 54.5%)