ยินดีต้อนรับสู่โลกของการแฮก Wi-Fi ทุกคน 💻
ในบทความก่อนหน้า เราพูดถึงทักษะและทริก Linux พื้นฐาน บทความนี้คุณจะเรียนรู้กระบวนการแฮก Wi-Fi พื้นฐานด้วยทักษะเหล่านั้น
คุณจะได้เรียนรู้อย่างเช่น:
- Monitor เครือข่าย Wi-Fi รอบๆ คุณ
- ทำ DOS attack
- ปกป้องตัวเองจากการโจมตี Wi-Fi
ข้อจำกัดความรับผิดชอบ: นี้เป็นเพื่อการศึกษาเท่านั้น (และเพื่อสนุกนิดหน่อย) อย่าใช้แฮกที่เรียนรู้ที่นี่กับองค์กร บุคคล หรือเพื่อนบ้านที่น่ารำคาญใดๆ ภายใต้สภาพแวดล้อม เหตุการณ์ หรืออิทธิพลของเพื่อนที่ไม่ฉลาดเด็ดขาด คุณจะทำผิดกฎหมาย และจะถูกปรับ จำ หรือทำให้พ่อแม่อับอาย
ตอนนี้เราได้ introduction ที่น่ารักนี้แล้ว มาเริ่มต่อไป 🙃
สิ่งที่เราจะครอบคลุม:
นี่คือรันดาวน์พื้นฐานของสิ่งที่ tutorial นี้มี:
- Introduction
- Packet คืออะไร?
- วิธีแฮก WPA2
- Prerequisites
- วิธีตั้ง network card ให้เป็น monitor mode
- วิธีหา target
- วิธี capture handshake packets
- วิธีทำ DOS attack
- วิธีได้ password (หวังว่าได้)
- การลดทอน/ป้องกันการโจมตี WiFi
- สรุป
Introduction
Router ¦ Credit: Unsplash.com
Wireless Fidelity (Wi-Fi) เป็นเทคโนโลยีทั่วไปที่หลายคนใช้ในชีวิตประจำวัน ไม่ว่าจะที่โรงเรียน บ้าน หรือแค่ดู Netflix ติดต่อกัน มันหายากมากที่จะเห็นใครทำกิจกรรมเกี่ยวกับอินเทอร์เน็ตโดยไม่มีมัน
แตคุณเคยลองแฮก Wi-Fi ไหม? 🤔 (แน่ใจว่าคุณเคยลured 😏)
เพื่อแฮกสิ่งใดสิ่งหนึ่ง คุณต้องรู้มันทำงานยังไง หมายความว่าคุณต้องเข้าใจ tech ทำงานยังไงก่อน มาเริ่มจากพื้นฐาน: The Packet
Packet คืออะไร?
A Basic Packet. Credit: ResearchGate.com
Packet คือหน่วยพื้นฐาน/บล็อกสร้างข้อมูลในเครือข่ายคอมพิวเตอร์ เมื่อข้อมูลถ่ายโอนจากคอมพิวเตอร์หนึ่งไปอีกเครื่อง มันจะถูกแยกและส่งใน packets
คิดว่า packets เหมือนบล็อกเลโก้ คุณ (คอมพิวเตอร์) ได้ชุดครบ (ข้อมูลสมบูรณ์) เป็นชิ้นๆ (packets) จากผู้ขาย (คอมพิวเตอร์อีกเครื่อง) คุณจะประกอบบล็อกเข้าด้วยกันเพื่อสร้างรูปตามคำแนะนำ เพื่อเพลิดเพลิน (หรือในกรณีนี้ ให้ข้อมูลทั้งหมดมีความหมาย)
Packet หรือที่รู้จักว่า datagram ประกอบด้วย 2 ส่วนหลัก:
- Header
- Payload/Data
Header มีข้อมูลเกี่ยวกับ packet ช่วยให้เครือข่ายและคอมพิวเตอร์ปลายทางรู้ว่าทำอะไรกับมัน เช่น source และ destination IP addresses
Payload คือเนื้อหาหลักที่ packet บรรจุ ยังคุ้มค่าที่จะกล่าวว่า packets สามารถเข้ารหัสได้ เพื่อไม่ให้ข้อมูลอ่านได้ถ้าถูกแฮกเกอร์ขโมย
ในเครือข่าย packets จำเป็นสำหรับ packet switching Packet switching คือการแยกข้อมูลเป็น packets และส่งไปคอมพิวเตอร์ต่างๆ ด้วย route ต่างๆ เมื่อรับแล้ว คอมพิวเตอร์สามารถประกอบ packets นี้ให้มีความหมาย อินเทอร์เน็ตคือ packet switching network ใหญ่ที่สุดบนโลก
ตอนนี้มาดูว่าเราสามารถนำความรู้นี้ไปใช้กับ wireless networks ได้อย่างไร
วิธีแฮก WPA2
A bunch of random code. Credit: Unsplash.com
Wi-Fi ใช้ protocol หลายอย่างเพื่อให้การเชื่อมต่ออินเทอร์เน็ตที่ปลอดภัย จากน้อยที่สุดไปมากที่สุด คือ:
- Open
- WEP (Wired Equivalent Privacy)
- WPA2 (Wi-Fi Protected Access 2)
- WPA3 (Wi-Fi Protected Access 3)
Open network คือเหมือนชื่อ — เปิด ไม่มี password และใครก็เชื่อมต่อได้
WEP เป็น protocol เก่า นานาน่าจะใช้ และต้องการ password เหมือนผู้繼承
WPA2 เป็น protocol ที่ใช้กันทั่วไปที่สุดทั่วโลก WPA3 เป็น protocol ใหม่ล่าสุดและปลอดภัยที่สุดจนถึงตอนนี้ แต่นานาน่าจะใช้ และมีแค่บนอุปกรณ์ใหม่ๆ
Prerequisites
Wi-Fi ทำงานโดยการส่ง packets ข้อมูลไปยังอุปกรณ์ที่ยืนยันตัวตนแล้วตลอดเวลา เพื่อแฮกมัน คุณจะต้องมี:
- Linux machine (ชอบ Kali Linux)
- Wireless adapter
ติดตั้ง Kali จากศูนย์ ได้ที่ tutorial นี้
ถ้ายังไม่ได้ ติดตั้ง tool ชื่อ Aircrack-ng บนเครื่องของคุณ ติดตั้งได้โดยพิมพ์คำสั่งด้านล่าง
sudo apt install aircrack-ng
วิธีตั้ง Network Card ให้เป็น Monitor Mode
คุณอยากได้ข้อมูล target ก่อน นี่คือสิ่งที่แฮกเกอร์เรียกว่า reconnaissance
เพื่อทำได้ คุณต้องเปลี่ยน wireless card จาก 'managed' mode เป็น 'monitor' mode นี่จะเปลี่ยนมันจาก network card ธรรมดาเป็น wireless network reader
ก่อนอื่น หาชื่อ wireless card ของคุณ เสียบ adapter และรันคำสั่ง iwconfig เพื่อหา มักจะเป็นตัวสุดท้ายในรายการ
iwconfig. Credit: Daniel Iwugo
เห็นได้ว่าของผมคือ wlan1 ตอนนี้รันคำสั่งต่อไปนี้:
sudo airmon-ng check rfkill
sudo airmon-ng start <network interface>
sudo แสดงว่าต้องการ root privileges check rfkill หยุด process ที่อาจขัดขวาง card จากการเข้า monitor mode และ start บอก airmon-ng ว่า network card ไหนจะ execute แทนที่ <network interface> ด้วยชื่อ wireless card ของคุณ
airmon-ng คือ script ที่เปลี่ยน card ให้เป็น monitor mode ทันที คุณทำได้ manual หรือเขียน script เอง แตผมชอบอย่างง่ายๆ
วิธีหา Target
เพื่อดู network รอบๆ คุณ รันคำสั่ง:
sudo airodump-ng <network interface>
Airodump. Credit: Daniel Iwugo
airodump-ng เป็นส่วนของ aircrack-ng suite ที่ให้ network card มองเห็น wireless traffic รอบๆ
เห็นได้ว่าเราได้ข้อมูลเยอะ แตมาดู column ESSID (Extended Service Set Identifier) ซะหน่อย หรือรู้จักว่า AP (Access Point) name column นี้แสดงชื่อ target network ซึ่งในกรณีผมคือ 'Asteroid'
คุณอยากโฟกัสที่ target AP และละเว้นที่เหลือ กด Ctrl+C เพื่อยกเลิก scan ปัจจุบัน และครั้งนี้ append bssid ของ network ด้วย flag bssid เช่นด้านล่าง
sudo airodump-ng <network interface> --bssid <AP>
Airodump in action. Credit: Daniel Iwugo
BSSID ย่อมาจาก Basic Service Set Identifier ชื่อหรูสำหรับ MAC address ของอุปกรณ์ ใช้ระบุอุปกรณ์บนเครือข่าย พร้อมกับ ESSID (ชื่อ AP) อย่างเป็นทางการ คุณอาจใช้ ESSID flag แทนได้ แต AP ต่างๆ อาจมีชื่อเดียวกัน แตไม่มี AP ไหนมี BSSID เหมือนกัน
ด้านล่างคือ code snippet สำหรับดูข้อมูล AP ด้วย ESSID อย่างเดียว
sudo airodump-ng <network interface> --bssid <AP ESSID>
หมายเหตุ: ถ้าชื่อมี space ให้ปิดด้วย quotes เช่น --bssid "Asteroid 1"
คุณจะสังเกตว่า ผม highlight MAC address ของ client ที่เชื่อมต่อกับ AP ใต้ column 'Station' ด้านซ้ายคือ MAC address ของ AP ที่มันเชื่อมต่อ
วิธี Capture Handshake Packets
ขั้นตอนต่อไปคือ capture handshake packets (จำ packets ได้ไหม? 👀) Handshake packets คือ 4 packets แรกที่ส่งจาก AP เมื่ออุปกรณ์ที่ยืนยันตัวตนเชื่อมต่อกับ AP
นี่หมายความว่ามี 2 ตัวเลือก:
- รออุปกรณ์เชื่อมต่อกับ AP
- De-authenticate อุปกรณ์ แล้วให้มันเชื่อมต่อกับ AP ใหม่
ตัวเลือกที่ 2 ดูสนุกกว่า มาทำตัวนี้
An LED keyboard. Credit: Unsplash.com
วิธีทำ DOS Attack
คุณสามารถใช้ aireplay-ng หรือ mdk4 ตัดการเชื่อมต่ออุปกรณ์จาก APs เป็นเวลานี้ เรียกว่า de-authentication attack หรือ wireless DOS (Denial-Of-Service) attack
นี่คือแผน:
- Setup airodump-ng ให้ capture packets และบันทึก
- De-authenticate อุปกรณ์เป็นระยะเวลา ขณะ airodump-ng ทำงาน
- Capture handshake
เข้าใจหมดแล้วไหม? ดี มาเริ่ม 👨💻👩💻
ก่อนอื่น รันคำสั่ง capture และ save packets:
sudo airodump-ng -c <channel number> --bssid <AP BSSID> <network interface> -w <path for saved packets file>
Airodump capturing packets. Credit: Daniel Iwugo
ที่นี่ เราใช้ flag -c ระบุ channel ที่จะค้นหา flag --bssid สำหรับ MAC address ของ AP และ flag -w ให้ path ที่คุณอยากบันทึก captured packets
บทเรียนเร็ว: Channels ลดโอกาส AP ทับซ้อนกัน ตอนรัน airodump-ng คุณระบุ channel number ได้ใต้ column CH
ขณะที่มันรัน คุณจะรัน de-authentication attack ต่ออุปกรณ์ที่เชื่อมต่ออยู่ด้วยคำสั่ง:
sudo aireplay-ng -a <BSSID of the AP> --deauth <time> <network interface>
Flag -a ระบุ MAC address ของ AP --deauth ระบุเวลาที่อยากให้ attack รันเป็นวินาที ตามด้วย network card
De-authentication attack ใช้ network card ของคุณเองส่ง packets ขัดจังหวะการสื่อสารระหว่าง AP และ client มันไม่สมบูรณ์ และบางครั้ง client อาจเชื่อมต่อกลับ แตเพียงช่วงสั้น
ถ้า Wi-Fi ของคุณทำงานแปลกๆ และคุณดูเหมือนจะ disconnect และ connect กลับมาแบบสุ่ม คุณอาจกำลังโดน de-authentication attack
ในคำสั่งข้างต้น คุณ target AP และรัน attack สังเกตว่าคุณสามารถ attack อุปกรณ์ใดๆ ที่เชื่อมต่อกับ AP แทนได้ และควรได้ผลลัพธ์เดียวกัน แค่เปลี่ยน flag -a เป็น MAC address ของอุปกรณ์ที่เชื่อมต่อ
ขณะ DOS attack กำลังดำเนินไป เช็ค airodump scan ของคุณ คุณควรเห็นขวามุมบน: WPA handshake: <mac address> เมื่อ verify แล้ว คุณสามารถหยุด replay attack และ airodump-ng scan
Carrying out the replay attack to get the handshake. Credit: Daniel Iwugo
วิธีได้ Password (หวังว่าได้)
ในขั้นตอนสุดท้าย คุณจะรัน Pairwise Master Keys (PMKs) ที่สร้างขึ้นมาหลายตัว ต่อ captured packets เพื่อหา password มาแยกกัน
PMK คือ basic algorithmic combination ของคำและชื่อ AP จุดประสงค์คือ generate PMKs ต่อเนื่องด้วย wordlist ต่อ handshake ถ้า PMK valid คำที่ใช้ generate มันคือ password ถ้า PMK ไม่ valid มันข้ามไปคำถัดไปใน list
ผมจะใช้ rockyou wordlist ที่อยู่ใน /usr/share/wordlists คิดว่ามีแค่ Kali ถ้า OS ต่างกัน อาจสร้างเอง manually หรือ generate ด้วย crunch
ถ้ายังไม่ได้ extract รันคำสั่ง:
sudo gunzip /usr/share/wordlists/rockyou.txt.gz
บทเรียนประวัติศาสตร์เร็ว: rockyou wordlist คือชุด password จากการรั่วไหลข้อมูลความปลอดภัยไซเบอร์ที่โด่งดังที่สุด ที่ส่งผลต่อบริษัทชื่อเดียวกัน มี password unique ประมาณ 14 ล้าน ที่ใช้ในบัญชี 32 ล้าน+ และเป็น wordlist ที่น่าเชื่อถือที่สุดบนโลก
ตอนนี้รันคำสั่ง:
sudo aircrack-ng <captured file with .cap> -w <path to wordlist>
Password cracking. Credit: Mercury
โอเค ทุกคน — ภารกิจสำเร็จ 😎
Password คือ 'password' ค่อนข้างน่าผิดหวังจากมุมมองความปลอดภัย แตผมตั้ง network นี้เพื่อสนุกสำหรับ tutorial นี้ ในความเป็นจริง อาจใช้นาทีถึงชั่วโมง ขึ้นอยู่กับความยาวและความแข็งแกร่งของ password
เพื่อทำความสะอาด ลบไฟล์ captures ปิด terminals และรันคำสั่ง service NetworkManager restart เพื่อเปลี่ยน network card กลับเป็น managed mode เพื่อให้เชื่อมต่อ Wi-Fi ได้
การลดทอน/ป้องกันการโจมตี WiFi
A basic personal workspace setup ¦ Credit: Wallpaperflare.com
ความปลอดภัย Wi-Fi พื้นฐานควรป้องกันการโจมตีนี้ได้จากมุมป้องกัน ใช้ WPA3 ซึ่งเป็น protocol ใหม่กว่า เป็นตัวเลือกดีที่สุด ต่อการโจมตีแบบนี้ เพื่อลดทอน de-authentication attacks ใช้ ethernet connection ถ้าเป็นไปได้
สมมติว่าตัวเลือกนั้นไม่อยู่บนโต๊ะ คุณสามารถใช้ passphrase ที่แข็งแกร่ง (ไม่ใช่ password) เพื่อลดโอกาสของแฮกเกอร์ในการได้มัน passphrase คือ string ของคำที่ใช้เป็น password passphrase มักยาวกว่า password ง่ายต่อการจดจำ และเป็น practice ที่หายาก ดังนั้น จะยากที่จะหาใน wordlists
เช่น 'mercury' น่าจะอยู่ใน wordlist มากกว่า 'mercurylovespluto' ตัวหลังคือ passphrase 15 ตัวอักษร และง่ายมาก แต่จะยากสำหรับแฮกเกอร์ที่จะหา เดา หรือ generate
การลดทอนอีกอย่าง คือปิด WPS (Wi-Fi Protected Setup) และหลีกเลี่ยงการใช้ router ที่ใช้ protocol WEP ภายใต้สภาพแวดล้อมใดๆ คุณแค่ขอความสนใจที่ไม่พึงประสงค์ เพราะมันแฮกง่ายกว่า WPA2 มาก
สรุป
มาสรุปสิ่งที่คุณเรียนรู้:
- เปลี่ยน wireless adaptor เป็น monitor mode ด้วย airmon-ng
- Scan target AP ด้วย airodump-ng และ capture packets
- ทำ DOS attack บน AP เพื่อได้ handshake packets
- หยุด DOS เมื่อ verify แล้วว่า capture packets ที่จำเป็นได้
- ใช้ aircrack-ng generate PMKs รันต่อ handshake packets
บางครั้ง password อาจไม่อยู่ใน wordlist ในกรณีนั้น มีหลายวิธีได้ password อย่าง Evil Twin Attack หรือ variations ของสิ่งที่คุณเรียนที่นี่ ผมสนับสนุนให้คุณฝึกสิ่งนี้และการโจมตีอื่นๆ ที่คุณค้นพบ เพราะมันช่วยทำให้คุณกลายเป็น master hacker
จำไว้ นี้ เพื่อการศึกษาเท่านั้น ทำกับผู้อื่นได้ก็ต่อเมื่อได้รับความยินยอม หรือบนอุปกรณ์ของตัวเอง
และด้วยนั้น เรามาถึงจุดจบของบทความนี้ หวังว่าเพลิดเพลิน และเหมือนที่ผมพูดตลอด Happy hacking! 🙃
Resources
- คำอธิบายเพิ่มเติมเกี่ยวกับ handshake theory
- รายละเอียดเพิ่มเติมเกี่ยวกับ packets
- WPA2 vs WPA3
Acknowledgements
ขอบคุณ Anuoluwapo Victor, Chinaza Nwukwa, Holumidey Mercy, Favour Ojo, Georgina Awani, และครอบครัวของผม สำหรับแรงบันดาลใจ การสนับสนุน และความรู้ที่ใช้ทำโพสต์นี้ พวกเขาคือ heroes ที่ไม่มีชื่อของผม
Cover photo credit: Lego Gentlemen working on a router from Wallpaperflare.com
เรียนรู้การเขียนโค้ดฟรี หลักสูตรโอเพนซอร์สของ freeCodeCamp ช่วยให้ผู้คน 40,000+ คนได้งานเป็นนักพัฒนา เริ่มต้นเลย