การจับแพ็กเก็ต Wi-Fi จะช่วยให้คุณเห็นรายละเอียดและการโต้ตอบที่ระบบซ่อนไว้ก่อนที่จะส่งถึงซอฟต์แวร์ที่ทำงานบนอุปกรณ์ ซึ่งทำให้การจับแพ็กเก็ตเหล่านี้เป็นเครื่องมือสำคัญสำหรับการแก้ไขข้อบกพร่องบางประเภท
ขั้นตอนหลักๆ ที่เกี่ยวข้องมีดังนี้
- ค้นหาช่องที่เหมาะสมเพื่อดักจับแพ็กเก็ต
- จับแพ็กเก็ต
- แชร์แพ็กเก็ตที่จับได้และแฮชของรหัสผ่าน WLAN
1. กำหนดช่องและความกว้างที่เหมาะสม
เครือข่าย WLAN ทำงานในสิ่งต่อไปนี้
- ช่อง ซึ่งโดยปกติจะระบุด้วยตัวเลข 1-13 สำหรับ ช่อง 2.4GHz และ 36-200 สำหรับ ช่อง 5GHz
- ความกว้างที่เฉพาะเจาะจง (20Mhz, 40Mhz, 80Mhz หรือ 160MHz)
จุดเข้าใช้งาน (เช่น เราเตอร์, โหนด Mesh) แต่ละจุดในเครือข่ายมักจะมีช่อง 2.4GHz และช่อง 5GHz ที่ไม่ซ้ำกัน และคุณต้องค้นหาว่าอุปกรณ์เชื่อมต่อกับช่องใด โดยมีหลายตัวเลือกดังนี้
ใช้แผงควบคุมของเราเตอร์
หากใช้ Nest WiFi ให้ข้ามตัวเลือกนี้ เนื่องจากระบบจะไม่แสดงข้อมูล
เราเตอร์ส่วนใหญ่จะมีรายการอุปกรณ์ที่เชื่อมต่อ รวมถึงช่องและความกว้างที่อุปกรณ์ใช้
- ค้นหาที่อยู่ IP ของเราเตอร์โดยใช้คู่มือนี้
- ไปที่ที่อยู่ของเราเตอร์ในเว็บเบราว์เซอร์ เช่น http://192.168.1.1
- ลงชื่อเข้าใช้ ไม่ทราบรหัสผ่านใช่ไหม มองหาแท็กในเราเตอร์หรือใช้ รหัสผ่านเราเตอร์
มองหาหน้าที่มีชื่ออย่างเช่น "ไคลเอ็นต์" หรือ "อุปกรณ์ที่แนบ" ตัวอย่างเช่น หน้าเราเตอร์ Netgear อาจมีลักษณะดังต่อไปนี้ หรือสำหรับ อุปกรณ์ Eero
คุณอาจต้องดูที่อื่นในการตั้งค่าเพื่อจับคู่ข้อมูลจากขั้นตอนที่ 4 กับช่องและแบนด์วิดท์ที่เฉพาะเจาะจง ตัวอย่างเช่น เราเตอร์ Netgear
ใช้ Mac หากเชื่อมต่อกับช่องเดียวกันอยู่แล้ว
กดปุ่ม Option บนแป้นพิมพ์ค้างไว้ แล้วคลิกไอคอน WLAN ที่มุมขวาบนในแถบสถานะของ Mac คุณควรเห็นเมนู WLAN ปกติพร้อมตัวเลือกและข้อมูลเพิ่มเติม ดูรายการเมนูที่ไม่พร้อมใช้งานและมองหารายการที่ระบุช่อง
`Channel 60 (DFS, 5GHz, 40MHz)`
ไม่พบช่องและความกว้าง
หากวิธีอื่นๆ ไม่ได้ผล ให้ลองทำดังนี้
แสดงช่องทั้งหมดที่ AP ใช้ (โดยปกติ AP หรือจุด Mesh แต่ละจุดจะใช้ 2 ช่อง)
ก. แนะนำ ใช้โทรศัพท์ Android และแอปอย่างเช่น Wifiman หรือ Aruba Utilities
ก. ใน Mac คุณสามารถใช้
/System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport-sเพื่อแสดงตัวเลือกจับแพ็กเก็ตสั้นๆ (แม้แต่ 15 วินาทีก็เพียงพอ) ในแต่ละช่องเหล่านั้นโดยใช้คำแนะนำด้านล่าง
ติดตั้ง Wireshark (ดูความช่วยเหลือได้ที่ ติดตั้ง Wireshark)
เปิดแพ็กเก็ตที่จับได้แต่ละรายการโดยใช้ Wireshark, ใช้ตัวกรองการแสดงผล
wlan.addr == YOUR_DEVICE'S_MACและดูว่ามีแพ็กเก็ตปรากฏขึ้นหรือไม่
2. เริ่มจับแพ็กเก็ต
สำคัญ: การจับแพ็กเก็ต 4-Way Handshake
หากเปิดการรักษาความปลอดภัยสำหรับ Wi-Fi คุณจำเป็นต้องทราบคีย์การเข้ารหัสเพื่อถอดรหัสแพ็กเก็ตที่จับได้ คีย์การเข้ารหัสได้มาจากการติดต่อแบบ 4 ทาง ที่เกิดขึ้นเมื่ออุปกรณ์เชื่อมต่อกับเครือข่าย และคีย์นี้จะเฉพาะเจาะจงสำหรับการเชื่อมต่อแต่ละครั้งระหว่างอุปกรณ์กับ AP
ด้วยเหตุนี้ คุณจึงต้อง จับแพ็กเก็ต 4-Way Handshake เพื่อถอดรหัสเพย์โหลด Wi-Fi หากอุปกรณ์เชื่อมต่อกับเครือข่ายอยู่แล้วเมื่อคุณเริ่มจับแพ็กเก็ต ให้ยกเลิกการเชื่อมต่อแล้วเชื่อมต่ออุปกรณ์อีกครั้ง (หรือรีบูตอุปกรณ์) เมื่อเริ่มดักจับแพ็กเก็ต
จับแพ็กเก็ตใน Mac
ขณะกดปุ่ม Option บนแป้นพิมพ์ค้างไว้ ให้คลิกไอคอน WLAN แล้วเลือก "Open Wireless Diagnostics…"
จากแถบเมนู Wireless Diagnostics ให้เลือก Window > Sniffer
ตั้งค่าช่องและความกว้างเป็นค่าที่คุณดึงข้อมูลมาได้ก่อนหน้านี้ (ตัวอย่างภาพหน้าจอสำหรับช่อง 60 และความกว้าง 40 MHz)
กด Start แล้วป้อนรหัสผ่าน จากนั้นลองทำซ้ำปัญหา
ตรวจสอบว่าคุณได้จับการติดต่อแบบ 4 ทางจากการเชื่อมต่อตามที่ระบุไว้ใน
การจับการติดต่อแบบ 4 ทาง
เมื่อเสร็จแล้ว ให้กด Stop คุณจะเห็นไฟล์ *.pcap ใหม่ใน /var/tmp ซึ่งมีแพ็กเก็ตทั้งหมด ตัวอย่างชื่อไฟล์คือ (null)_ch100_2018-11-06_10.52.01.pcap
จับแพ็กเก็ตใน Linux
ปิด Wi-Fi คุณทำได้โดยวิธีต่อไปนี้
- ใช้ GUI (แนะนำ)
- ใช้ Network Manager CLI เพื่อบอกให้หยุดจัดการอินเทอร์เฟซ WLAN:
sudo nmcli dev set <wlan-ifname> managed on - หากใช้ตัวจัดการเครือข่ายอื่น ให้ปรับตามความเหมาะสม
บันทึกสคริปต์นี้ แทนที่
<wlan-ifname>ด้วยชื่ออินเทอร์เฟซ Wi-Fi เอกสารนี้ถือว่าชื่อสคริปต์คือsetup-wifi-capture#!/usr/bin/env bash sudo ifconfig <wlan-ifname> down sudo rfkill unblock wifi sudo iwconfig <wlan-ifname> mode monitor sudo ifconfig <wlan-ifname> up sudo iw dev <wlan-ifname> set channel $@เรียกใช้สคริปต์ก่อนหน้าและส่งช่องกับแบนด์วิดท์สูงสุดที่จะดักจับแพ็กเก็ต เช่น ช่อง 153 ที่มีแบนด์วิดท์ 80MHz
./setup-wifi-capture chan 153 80 MHzเปิด Wireshark แล้วคุณควรจะจับแพ็กเก็ตในอินเทอร์เฟซ WLAN ได้แล้ว
3. แชร์แพ็กเก็ตที่จับได้
ใช้ WPA PSK (Raw Key) Generator เพื่อสร้างแฮชของรหัสผ่าน ซึ่งจะช่วยให้คุณถอดรหัสแพ็กเก็ตที่จับได้โดยไม่ต้องทราบรหัสผ่านที่เป็นข้อความธรรมดา
คุณต้องแชร์ PSK ที่สร้างขึ้นด้วยเพื่อให้ผู้อื่นถอดรหัสแพ็กเก็ตที่จับได้
ภาคผนวก
ติดตั้ง Wireshark
คุณสามารถติดตั้ง Wireshark โดยใช้ `apt install wireshark` ใน Linux หรือดาวน์โหลด ออนไลน์จากเว็บไซต์ Wireshark
ตั้งค่า Wireshark เพื่อถอดรหัสแพ็กเก็ต
คุณไม่จำเป็นต้องทำเช่นนี้เพื่อแชร์ไฟล์แพ็กเก็ตที่จับได้ ให้ทำเฉพาะในกรณีที่ต้องการตรวจสอบแพ็กเก็ตที่ถอดรหัสแล้วใน Wireshark ด้วยตนเอง
เมื่อเปิดการรักษาความปลอดภัย WPA2 ใน Wi-Fi ระบบจะไม่ใช้ WPA2-PSK โดยตรงสำหรับการเข้ารหัสและถอดรหัสแพ็กเก็ต แต่จะใช้ในการจับแพ็กเก็ต 4-Way Handshake, ซึ่งคุณต้องจับแพ็กเก็ตนี้เพื่อถอดรหัสแพ็กเก็ต อย่างไรก็ตาม หากสิ่งที่คุณพยายามจับแพ็กเก็ตคือปัญหาเกี่ยวกับการเชื่อมต่อ Wi-Fi หรือการเชื่อมต่อขาดหาย ซึ่งสามารถรวบรวมได้จากเฟรมการจัดการ Wi-Fi คุณไม่จำเป็นต้องจับแพ็กเก็ต 4-Way Handshake ไม่ว่ากรณีใด การจับแพ็กเก็ตนี้ไว้ก็ไม่เสียหาย
เปิด Wireshark แล้วเปิดหน้า Preferences (Wireshark menu > Preferences หรือ **Cmd + , **)
ค้นหาส่วน "IEEE 802.11" ในหมวดหมู่ "Protocols" และตรวจสอบว่าได้เลือก "Enable decryption" แล้ว
คลิกปุ่ม Edit ข้างป้ายกำกับ Decryption Keys
คลิกปุ่ม "+" ที่มุมซ้ายล่าง แล้วเลือกตัวเลือก "wpa-pwd"
คลิกคอลัมน์คีย์ของแถวที่สร้างขึ้นใหม่ (ข้างสตริง wpa-pwd) พิมพ์ WPA2 PSK และ SSID ในรูปแบบ
<password>:<ssid>ตัวอย่างเช่น หากชื่อเครือข่ายคือMyHomeNetworkและ WPA2 PSK คือmyp4sswordให้พิมพ์myp4ssword:MyHomeNetwork
คลิก OK เพื่อยืนยัน
ดูข้อมูลเพิ่มเติมได้ในคู่มืออย่างเป็นทางการของ Wireshark (พร้อมภาพหน้าจอ) ที่ หัวข้อ How to Decrypt 802.11
หากใช้ tshark ให้ส่งอาร์กิวเมนต์ต่อไปนี้
tshark -o wlan.enable_decryption:TRUE -o 'uat:80211_keys:"wpa-pwd","<psk>:<ssid>"'
เติมสีข้อมูล Wireshark 802.11
มีโปรไฟล์สี 802.11 ที่มีประโยชน์อยู่ใน metageek.com: Wireshark Configuration Profile