Автоматический захват рукопожатий и 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):

Рекомендуется Вам:

Добавить комментарий

Ваш e-mail не будет опубликован.