บันทึกการเข้าชม WLAN

การจับแพ็กเก็ต Wi-Fi จะช่วยให้คุณเห็นรายละเอียดและการโต้ตอบที่ระบบซ่อนไว้ก่อนที่จะส่งถึงซอฟต์แวร์ที่ทำงานบนอุปกรณ์ ซึ่งทำให้การจับแพ็กเก็ตเหล่านี้เป็นเครื่องมือสำคัญสำหรับการแก้ไขข้อบกพร่องบางประเภท

ขั้นตอนหลักๆ ที่เกี่ยวข้องมีดังนี้

  1. ค้นหาช่องที่เหมาะสมเพื่อดักจับแพ็กเก็ต
  2. จับแพ็กเก็ต
  3. แชร์แพ็กเก็ตที่จับได้และแฮชของรหัสผ่าน WLAN

1. กำหนดช่องและความกว้างที่เหมาะสม

เครือข่าย WLAN ทำงานในสิ่งต่อไปนี้

  • ช่อง ซึ่งโดยปกติจะระบุด้วยตัวเลข 1-13 สำหรับ ช่อง 2.4GHz และ 36-200 สำหรับ ช่อง 5GHz
  • ความกว้างที่เฉพาะเจาะจง (20Mhz, 40Mhz, 80Mhz หรือ 160MHz)

จุดเข้าใช้งาน (เช่น เราเตอร์, โหนด Mesh) แต่ละจุดในเครือข่ายมักจะมีช่อง 2.4GHz และช่อง 5GHz ที่ไม่ซ้ำกัน และคุณต้องค้นหาว่าอุปกรณ์เชื่อมต่อกับช่องใด โดยมีหลายตัวเลือกดังนี้

ใช้แผงควบคุมของเราเตอร์

หากใช้ Nest WiFi ให้ข้ามตัวเลือกนี้ เนื่องจากระบบจะไม่แสดงข้อมูล

เราเตอร์ส่วนใหญ่จะมีรายการอุปกรณ์ที่เชื่อมต่อ รวมถึงช่องและความกว้างที่อุปกรณ์ใช้

  1. ค้นหาที่อยู่ IP ของเราเตอร์โดยใช้คู่มือนี้
  2. ไปที่ที่อยู่ของเราเตอร์ในเว็บเบราว์เซอร์ เช่น http://192.168.1.1
  3. ลงชื่อเข้าใช้ ไม่ทราบรหัสผ่านใช่ไหม มองหาแท็กในเราเตอร์หรือใช้ รหัสผ่านเราเตอร์
  4. มองหาหน้าที่มีชื่ออย่างเช่น "ไคลเอ็นต์" หรือ "อุปกรณ์ที่แนบ" ตัวอย่างเช่น หน้าเราเตอร์ Netgear อาจมีลักษณะดังต่อไปนี้ หรือสำหรับ อุปกรณ์ Eero

    มุมมองไคลเอ็นต์ Netgear

  5. คุณอาจต้องดูที่อื่นในการตั้งค่าเพื่อจับคู่ข้อมูลจากขั้นตอนที่ 4 กับช่องและแบนด์วิดท์ที่เฉพาะเจาะจง ตัวอย่างเช่น เราเตอร์ Netgear

    มุมมองช่อง Netgear

ใช้ Mac หากเชื่อมต่อกับช่องเดียวกันอยู่แล้ว

กดปุ่ม Option บนแป้นพิมพ์ค้างไว้ แล้วคลิกไอคอน WLAN ที่มุมขวาบนในแถบสถานะของ Mac คุณควรเห็นเมนู WLAN ปกติพร้อมตัวเลือกและข้อมูลเพิ่มเติม ดูรายการเมนูที่ไม่พร้อมใช้งานและมองหารายการที่ระบุช่อง

`Channel 60 (DFS, 5GHz, 40MHz)`

WLAN ของ Mac

ไม่พบช่องและความกว้าง

หากวิธีอื่นๆ ไม่ได้ผล ให้ลองทำดังนี้

  1. แสดงช่องทั้งหมดที่ AP ใช้ (โดยปกติ AP หรือจุด Mesh แต่ละจุดจะใช้ 2 ช่อง)

    ก. แนะนำ ใช้โทรศัพท์ Android และแอปอย่างเช่น Wifiman หรือ Aruba Utilities

    ก. ใน Mac คุณสามารถใช้ /System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport-s เพื่อแสดงตัวเลือก

  2. จับแพ็กเก็ตสั้นๆ (แม้แต่ 15 วินาทีก็เพียงพอ) ในแต่ละช่องเหล่านั้นโดยใช้คำแนะนำด้านล่าง

  3. ติดตั้ง Wireshark (ดูความช่วยเหลือได้ที่ ติดตั้ง Wireshark)

  4. เปิดแพ็กเก็ตที่จับได้แต่ละรายการโดยใช้ 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…"

การจับภาพ WLAN ของ Mac

จากแถบเมนู Wireless Diagnostics ให้เลือก Window > Sniffer

Mac WLAN Sniffer

ตั้งค่าช่องและความกว้างเป็นค่าที่คุณดึงข้อมูลมาได้ก่อนหน้านี้ (ตัวอย่างภาพหน้าจอสำหรับช่อง 60 และความกว้าง 40 MHz)

ช่องและความกว้างของ WLAN ใน Mac

กด Start แล้วป้อนรหัสผ่าน จากนั้นลองทำซ้ำปัญหา ตรวจสอบว่าคุณได้จับการติดต่อแบบ 4 ทางจากการเชื่อมต่อตามที่ระบุไว้ใน การจับการติดต่อแบบ 4 ทาง

เมื่อเสร็จแล้ว ให้กด Stop คุณจะเห็นไฟล์ *.pcap ใหม่ใน /var/tmp ซึ่งมีแพ็กเก็ตทั้งหมด ตัวอย่างชื่อไฟล์คือ (null)_ch100_2018-11-06_10.52.01.pcap

จับแพ็กเก็ตใน Linux

  1. ปิด Wi-Fi คุณทำได้โดยวิธีต่อไปนี้

    • ใช้ GUI (แนะนำ)
    • ใช้ Network Manager CLI เพื่อบอกให้หยุดจัดการอินเทอร์เฟซ WLAN: sudo nmcli dev set <wlan-ifname> managed on
    • หากใช้ตัวจัดการเครือข่ายอื่น ให้ปรับตามความเหมาะสม
  2. บันทึกสคริปต์นี้ แทนที่ <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 $@
  3. เรียกใช้สคริปต์ก่อนหน้าและส่งช่องกับแบนด์วิดท์สูงสุดที่จะดักจับแพ็กเก็ต เช่น ช่อง 153 ที่มีแบนด์วิดท์ 80MHz

    ./setup-wifi-capture chan 153 80 MHz
  4. เปิด Wireshark แล้วคุณควรจะจับแพ็กเก็ตในอินเทอร์เฟซ WLAN ได้แล้ว

3. แชร์แพ็กเก็ตที่จับได้

  1. ใช้ WPA PSK (Raw Key) Generator เพื่อสร้างแฮชของรหัสผ่าน ซึ่งจะช่วยให้คุณถอดรหัสแพ็กเก็ตที่จับได้โดยไม่ต้องทราบรหัสผ่านที่เป็นข้อความธรรมดา

  2. คุณต้องแชร์ 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 + , **)

  1. ค้นหาส่วน "IEEE 802.11" ในหมวดหมู่ "Protocols" และตรวจสอบว่าได้เลือก "Enable decryption" แล้ว

    Mac Wireshark Prefs

  2. คลิกปุ่ม Edit ข้างป้ายกำกับ Decryption Keys

  3. คลิกปุ่ม "+" ที่มุมซ้ายล่าง แล้วเลือกตัวเลือก "wpa-pwd"

    WPA และรหัสผ่านของ Wireshark ใน Mac

  4. คลิกคอลัมน์คีย์ของแถวที่สร้างขึ้นใหม่ (ข้างสตริง wpa-pwd) พิมพ์ WPA2 PSK และ SSID ในรูปแบบ <password>:<ssid> ตัวอย่างเช่น หากชื่อเครือข่ายคือ MyHomeNetwork และ WPA2 PSK คือ myp4ssword ให้พิมพ์ myp4ssword:MyHomeNetwork

    SSID ของ Wireshark ใน Mac

  5. คลิก 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