Handshake Analysis
Handshake Analysis คือการตรวจสอบและจัดการ 4-way handshake ที่จับมาได้ก่อน crack — ยืนยันว่า handshake ครบ (มี EAPOL message ที่จำเป็น), แยกเฉพาะ handshake ที่ดี, และแปลง format บทนี้ลงลึกการอ่าน EAPOL ใน Wireshark, การ verify, และการ clean capture (เนื้อหาเพื่อทดสอบที่ได้รับอนุญาต)
1. ทำไมต้องวิเคราะห์ handshake ก่อน crack
การ crack จะสำเร็จก็ต่อเมื่อ handshake ที่จับมาครบและถูกต้อง — capture ที่ได้บ่อยครั้งมี handshake ไม่ครบ (ขาด message), มี handshake ปนกันหลาย AP, หรือมี noise การวิเคราะห์ก่อนช่วยประหยัดเวลา (ไม่ต้อง crack handshake เสียที่ crack ไม่ได้อยู่แล้ว) และยืนยันว่าจับสำเร็จจริง
2. EAPOL messages — handshake ครบคืออะไร
4-way handshake คือ EAPOL frame 4 ตัว (M1–M4) สำหรับ crack ต้องการอย่างน้อย M2 (มี MIC จาก client) คู่กับ M1 (มี ANonce) — ที่สำคัญที่สุดคือคู่ M1+M2 หรือ M2+M3 ที่มี nonce และ MIC ครบ
| message | มีอะไร | สำคัญต่อ crack |
|---|---|---|
| M1 (AP→Client) | ANonce | ให้ ANonce |
| M2 (Client→AP) | SNonce + MIC | สำคัญสุด (MIC ใช้ verify) |
| M3 (AP→Client) | GTK + MIC | ใช้ได้เช่นกัน |
| M4 (Client→AP) | ACK | ไม่จำเป็น |
3. ตรวจ handshake ใน Wireshark
# เปิด capture ใน Wireshark แล้วใช้ display filter:
eapol
# ดูว่ามี message 1-4 ครบไหม (ดู Info column: "Message 1 of 4" ฯลฯ)
# ต้องมีอย่างน้อย M1+M2 ของ BSSID เดียวกัน (nonce ตรงคู่)
# ผ่าน tshark
tshark -r capture.cap -Y "eapol" -T fields -e wlan.sa -e wlan.da -e eapol.type
# กรองเฉพาะ BSSID
# wlan.bssid == aa:bb:cc:dd:ee:ff && eapol4. Verify และ clean capture
# aircrack-ng บอกว่ามี handshake ไหม
aircrack-ng capture-01.cap
# จะ list AP ที่มี "(handshake)" กำกับ
# wpaclean — แยกเฉพาะ handshake ที่ดี ตัด noise
wpaclean clean_out.cap capture-01.cap
# แปลงเป็น hashcat 22000 (ตรวจความครบในตัว)
hcxpcapngtool -o hash.22000 capture.pcapng
# ถ้า hcxpcapngtool ไม่ output = handshake ไม่ครบ → จับใหม่5. Troubleshooting
- ไม่มี handshake: client ไม่ได้ reconnect — deauth อีก, รอ client active, หรือลอง PMKID แทน
- handshake ไม่ครบ: จับได้แค่บาง message — เข้าใกล้ AP/client มากขึ้น, ลด noise
- crack ไม่ได้ทั้งที่ handshake ครบ: passphrase ไม่อยู่ใน wordlist — ลอง wordlist อื่น/rule/mask
- หลาย AP ปน: ใช้ --bssid กรองตอนจับ, หรือ wpaclean แยก
- nonce ไม่ตรงคู่: M1 กับ M2 มาคนละ session — จับใหม่ให้ได้คู่ต่อเนื่อง
6. Quick Reference
- ตรวจ handshake ก่อน crack = ประหยัดเวลา
- ต้องการ M2 (MIC) + M1 (ANonce) ครบคู่
- Wireshark filter: eapol → ดู Info 'Message N of 4'
- verify: aircrack-ng cap (ขึ้น handshake?) / hcxpcapngtool
- clean: wpaclean out.cap in.cap
- ไม่ครบ → deauth จับใหม่ หรือใช้ PMKID
🧭 จับมือทำทีละขั้น (มีแค่ Kali) + ถ้าติดไปไหนต่อ
สมมติมีไฟล์ capture (.cap/.pcapng) อยู่ในมือแล้ว — จากโจทย์ CTF ที่แจกมา หรือจับเองด้วย airodump-ng/hcxdumptool — แต่ยังไม่รู้ว่า crack ได้จริงไหม ทำตามนี้ ก่อน เสียเวลา crack จะได้ไม่พลาด
- 1เปิดไฟล์ใน Wireshark แล้วพิมพ์ display filter:
eapol— ถ้าไม่มี frame ขึ้นเลย แปลว่าไม่มี handshake ในไฟล์นี้ - 2ดู Info column ของแต่ละ frame — ควรเห็นข้อความ 'Message 1 of 4', 'Message 2 of 4' ฯลฯ
- 3เช็คว่ามี M1 (จาก AP) กับ M2 (จาก client) ของ BSSID เดียวกัน ต่อเนื่องกันไหม
- 4ยืนยันด้วยบรรทัดคำสั่ง:
tshark -r capture.cap -Y eapol -T fields -e wlan.sa -e wlan.da -e eapol.type - 5ให้ aircrack-ng เช็คซ้ำ:
aircrack-ng capture-01.cap— ต้องเห็นคำว่า(handshake)ต่อท้าย BSSID เป้าหมาย - 6แปลงเป็น hashcat format พร้อมเช็คความครบในตัว:
hcxpcapngtool -o hash.22000 capture.pcapng - 7ดูว่า hash.22000 มีข้อมูลจริงไหม:
cat hash.22000— ควรเห็นบรรทัดขึ้นต้นWPA*02*...(handshake) หรือWPA*01*...(PMKID) - 8ถ้ามีหลาย AP ปนกันในไฟล์เดียว ให้แยกก่อนด้วย
wpaclean clean_out.cap capture-01.cap - 9เมื่อ hash.22000 มีข้อมูลแล้ว ค่อยไป crack ต่อด้วย hashcat/aircrack-ng
| ขั้นตอน/งาน | เครื่องมือใน Kali | ติดตั้งเพิ่ม (ถ้าไม่มี) | เครื่องมือออนไลน์ |
|---|---|---|---|
| เปิด/อ่าน EAPOL frame | wireshark, tshark | - | cyberchef.org (แกะ hex ของ frame) |
| ตรวจว่ามี handshake | aircrack-ng | - | - |
| ตัด noise / แยก handshake ที่ดี | wpaclean (มากับ aircrack-ng) | - | - |
| แปลงเป็น hashcat format | - | apt install hcxtools (hcxpcapngtool) | - |
| เช็ค hash กับฐานข้อมูลสาธารณะ | - | - | wpa-sec.stanev.org (upload handshake) |
| crack ต่อเมื่อ hash พร้อม | hashcat, aircrack-ng | - | hashcat.net/wiki |
โน้ตของฉัน
ยังไม่มีโน้ตสำหรับหัวข้อนี้