─ ระบบฟิชชิ่งไร้สายอัตโนมัติแบบรวม IoT โดย Šefik Efe Altınoluk ─
อย่าลองใช้ซอฟต์แวร์นี้กับผู้ใช้/ระบบที่คุณไม่ได้รับอนุญาตตามกฎหมาย การใช้ Wi-Phi
เพื่อโจมตีเป้าหมายโดยไม่ได้รับความยินยอมจากทั้งสองฝ่ายล่วงหน้าถือเป็นสิ่งผิดกฎหมาย เป็นความรับผิดชอบของผู้ใช้ที่จะต้องปฏิบัติตามกฎหมายท้องถิ่น รัฐ และรัฐบาลกลางที่เกี่ยวข้องทั้งหมด ฉันไม่รับผิดชอบและไม่รับผิดชอบต่อการใช้งานในทางที่ผิดหรือความเสียหายที่เกิดจากซอฟต์แวร์นี้ เอกสารประกอบ และสิ่งอื่นใดในที่เก็บข้อมูลนี้
(ดู #4) เนื่องจาก Wi-Phi
สามารถนำไปใช้ในทางที่ผิดได้ ฉันจึงไม่แชร์ซอร์สโค้ดส่วนใหญ่ ติดต่อฉันจาก LinkedIn สำหรับกรณีธุรกิจ/วิชาการ/การศึกษาที่คุณต้องการรหัสการทำงานทั้งหมด
โครงการนี้ได้รับอนุญาตภายใต้ Gnu General Public License เวอร์ชัน 3.0
ดูใบอนุญาตสำหรับรายละเอียดเพิ่มเติม
Wi-Phi
เป็น system
phishing
อัตโนมัติที่บูรณาการเข้ากับบอร์ด IoT
(Internet of Things) ไร้สายโดยสมบูรณ์
สามารถคิดได้เหมือนกับ Wifi Pineapple
ขั้นสูงที่มีฟีเจอร์มากมาย
Wi-Phi
สามารถฟิชชิงผู้ใช้ที่ใช้ซอฟต์แวร์ต่อไปนี้อย่างน้อยหนึ่งตัว:
ส่วนประกอบหลักของ Wi-Phi
คือ:
MicroPython
ฉันใช้ Deneyap Kart
โดยใช้ ESP32
esp32-20220117-v1.18.bin
รับอุปกรณ์ ESP32 IoT
เชื่อมต่อ ESP32 เข้ากับคอมพิวเตอร์ของคุณและรับพอร์ตอนุกรมที่เชื่อมต่อ ESP32 ไว้
COMx
/dev/ttyUSBx
หรือ /dev/tty/USBx
จากนั้นรันคำสั่งต่อไปนี้สำหรับ GNU/Linux
[efe@lhost ~] $ git clone https://github.com/f4T1H21/Wi-Phi.git && cd Wi-Phi
[efe@lhost Wi-Phi] $ pip3 install -r requirements.txt
[efe@lhost Wi-Phi] $ sudo ./setup.sh < serial_port >
ตอนนี้ซอฟต์แวร์ควรจะใช้งานได้ ตรวจสอบว่าคุณเห็นเครือข่าย Wi-Fi ชื่อ Google Free Wi-Fi
เมื่อใดก็ตามที่คุณเสียบปลั๊ก ESP32 เข้ากับแหล่งจ่ายไฟ โปรเจ็กต์จะทำงานโดยอัตโนมัติหลังจากขั้นตอนการบูต
ไม่มีอะไรสำคัญอีก
ซอฟต์แวร์ทั้งหมดใช้งานบน MicroPython และทำงานบน ESP32
ESP32 กลายเป็น AP ไร้สาย (จุดเข้าใช้งาน); และรันซ็อกเก็ตอิสระสาม (3) ช่อง (บน OSI Layer 4):
53/UDP
สำหรับเซิร์ฟเวอร์ DNS
80/TCP
สำหรับเซิร์ฟเวอร์ HTTP
2121/TCP
สำหรับเซิร์ฟเวอร์ Credential Store
การเชื่อมโยงทั้งหมดเสร็จสิ้นบนที่อยู่ IP ของเกตเวย์ (AP) ซึ่งก็คือ 210.210.210.1
เหตุผลที่ฉันเลือกคลาส IP ดังกล่าวก็เนื่องมาจากเหตุผลบางประการ อุปกรณ์ Samsung ไม่ถือว่าที่อยู่ IP แบบสั้นเป็นพอร์ทัลแบบ Captive ซึ่งเป็นปัญหาสำหรับฉัน
แนวคิดหลักคือการให้บริการเว็บไซต์ฟิชชิ่งแบบคงที่บนเซิร์ฟเวอร์ HTTP และทำให้เป็น captive portal
สำหรับอุปกรณ์ (สถานี) จากผู้ขายใดๆ ที่เชื่อมต่อผ่าน Wi-Fi
Static site
ที่ให้บริการโดยเซิร์ฟเวอร์ HTTPDNS
, HTTP
และ CS
TCP
& UDP
สำหรับโปรโตคอลระดับสูงGateway
LAN
Wireless AP
, Wi-Fi
ด้านล่างนี้แสดงสถานการณ์ที่ออกแบบมาอย่างดีซึ่ง Wi-Phi
ทำงานอยู่
นี่เป็นกรณีศึกษาที่ฉันมอบหมายให้ตัวเองด้วย เรามาดำดิ่งลงลึกถึงคดี...
ผู้จำหน่ายอุปกรณ์ส่วนใหญ่ส่งคำขอ HTTP ไปยังตำแหน่งข้อมูลเฉพาะของเซิร์ฟเวอร์การตรวจจับพอร์ทัลแบบ Captive ของผู้จำหน่าย และคาดหวังการตอบสนอง HTTP เฉพาะเพื่อทำความเข้าใจว่าเครือข่าย Wi-Fi มีพอร์ทัลแบบ Captive หรือไม่
ตารางด้านล่างแสดงสิ่งที่ต้องตอบสนองสำหรับผู้จำหน่ายอุปกรณ์ต่างๆ เพื่อให้อุปกรณ์สมมติว่ามีพอร์ทัลแบบ Captive อยู่ในเครือข่าย Wi-Fi
หมายเหตุ : Mozilla เป็นข้อยกเว้นสำหรับ 'ผู้จำหน่ายอุปกรณ์' Firefox (ในฐานะเบราว์เซอร์) สามารถตัดสินใจได้เองตามเซิร์ฟเวอร์การตรวจจับพอร์ทัลแบบ Captive ของตัวเอง
การตอบกลับด้วยรหัสสถานะ 302 Found
จำเป็นต้องมีส่วนหัว Location:
เพื่อเปลี่ยนเส้นทางเบราว์เซอร์ (ไคลเอนต์) ได้อย่างถูกต้อง
ผู้จำหน่ายอุปกรณ์ | จุดสิ้นสุด | รหัสสถานะ | ร่างกายตอบสนอง |
---|---|---|---|
ไมโครซอฟต์ (วินโดวส์) | www.msftconnecttest.com/ncsi.txt | 200 OK | Microsoft NCSI |
ไมโครซอฟต์ (วินโดวส์) | www.msftconnecttest.com/connecttest.txt | 200 OK | Microsoft Connect Test |
ไมโครซอฟต์ (วินโดวส์) | www.msftconnecttest.com/redirect | 302 Found | |
กูเกิล (แอนดรอยด์) | connectivitycheck.gstatic.com/gen_204 | 302 Found | |
กูเกิล (แอนดรอยด์) | connectivitycheck.gstatic.com/generate_204 | 302 Found | |
กูเกิล (แอนดรอยด์) | clients3.google.com/generate_204 | 302 Found | |
เสี่ยวมี่ | connect.rom.miui.com/gen_204 | 302 Found | |
เสี่ยวมี่ | connect.rom.miui.com/generate_204 | 302 Found | |
แอปเปิ้ล (IOS/MacOS) | captive.apple.com/hotspot-detect.html | 302 Found | |
โมซิลลา (Firefox) | detectportal.firefox.com/canonical.html | 302 Found | |
โมซิลลา (Firefox) | detectportal.firefox.com/success.txt | 302 Found |
เพื่อให้สามารถตอบสนองคำขอ http ที่ทำกับปลายทางข้างต้นได้ คำขอเหล่านี้ควรถูกส่งไปยังเซิร์ฟเวอร์ HTTP ของ ESP32 เพื่อให้บรรลุเป้าหมายนี้ ESP32 ควรตอบการค้นหาโดเมนเฉพาะไปยังที่อยู่ IP ของตัวเอง
google.com
ควรเป็น 210.210.210.1
ดังนั้นจึงจำเป็นต้องมี Domain Name System Server ที่ทำงานบน ESP32 จากมุมมองนี้ Scenerio ดูคล้ายกับการโจมตี DNS Hijacking
ฉันคิดว่า Google เป็นบริษัทเทคโนโลยีที่ได้รับความนิยมและเชื่อถือได้มากที่สุดในโลก ดังนั้นฉันจึงเตรียมหน้าฟิชชิ่งแบบคงที่ ซึ่งเกือบจะเหมือนกับหน้าเข้าสู่ระบบเก่าของ Gmail และยังตั้งชื่อเครือข่าย Wi-Fi เป็น Google Free Wi-Fi
ในขณะที่ฉากดำเนินไป หลังจากเปลี่ยนเส้นทางเบราว์เซอร์ (ไคลเอนต์) ไปยังหน้าเข้าสู่ระบบแบบคงที่ ผู้ใช้จะต้องป้อนข้อมูลประจำตัวของตนและกดปุ่มถัดไป และข้อมูลรับรองจะถูกจัดเก็บไว้ในไฟล์ในเครื่อง จากนั้นผู้ใช้จะถูกแบน IP จนกว่าจะรีบูต ESP32 ครั้งถัดไป มิฉะนั้นฐานข้อมูลในเครื่องอาจเกิดความสับสนโดยข้อมูลประจำตัวจำลอง/ข้อมูลประจำตัวที่ไม่ถูกต้อง หลังจากทั้งหมดนี้ ลูกค้าจะถูกเปลี่ยนเส้นทางไปยังไดเร็กทอรี /
ของไซต์แบบคงที่
เมื่อใดก็ตามที่ไคลเอนต์ที่ถูกแบน IP พยายามเข้าถึงทรัพยากรใด ๆ บนเซิร์ฟเวอร์ HTTP ไฟล์ html เดียวกัน hacklendin.html
จะถูกให้บริการโดยไม่คำนึงถึงวิธีการของคำขอ HTTP, ส่วนหัว, เนื้อหา ฯลฯ
ในอีกด้านหนึ่ง คุณสามารถดูที่เก็บข้อมูลรับรองในพื้นที่ได้จากระยะไกลโดยเชื่อมต่อกับ 2121/tcp
และรับรองความถูกต้องด้วยรหัสผ่านแบบฮาร์ดโค้ดขณะเชื่อมต่อกับ Wi-Fi
Wi-Phi
เป็นระบบที่มีคุณสมบัติหลากหลาย บันทึกรายละเอียดที่สร้างโดยบริการ Wi-Fi
, HTTP
และ DNS
สามารถดูได้แบบเรียลไทม์ บันทึกเหล่านี้ไม่ได้จัดเก็บไว้ในเครื่องเพื่อประหยัดพื้นที่เก็บข้อมูล
เพื่อให้สามารถดูบันทึกแบบละเอียดได้
boot.py
ไปยังไฟล์ในเครื่องชื่อ main.py
boot.py
ออกจากอุปกรณ์ ESP32main.py
บน ESP32 คุณสามารถใช้เครื่องมือ ampy
สำหรับการทำงานของไฟล์และใช้งานซอฟต์แวร์บน ESP32
มาดูกรณีที่เรามีอุปกรณ์อิสระหลายเครื่องจากผู้จำหน่ายหลายรายที่เชื่อมต่อกับ Google Free Wi-Fi
ของเราพร้อมกัน
เมื่ออุปกรณ์ IOS พบกับพอร์ทัลแบบเชลย อุปกรณ์จะเปิดหน้าพอร์ทัลแบบเชลยโดยอัตโนมัติ โดยไม่ต้องแจ้งผู้ใช้ Nice!
อุปกรณ์ Samsung จะแสดงเฉพาะการแจ้งเตือนเท่านั้น ดังนั้นที่นี่ผู้ใช้จะต้องคลิก Sign in to the network
หรือการแจ้งเตือนที่ด้านบนของหน้าจอ
อุปกรณ์ Xiaomi แสดงการแจ้งเตือนด้วย บางครั้งพวกเขายังเปิดหน้าพอร์ทัลแบบ Captive โดยอัตโนมัติ โดยไม่ต้องแจ้งผู้ใช้อีกครั้ง!
ใน Firefox ข้อความแจ้งจะปรากฏที่ด้านบนของหน้าต่างแอปพลิเคชัน หลังจากคลิก Open network login page
จะเปิดหน้าพอร์ทัลแบบ Captive ในแท็บใหม่
และอีกคนที่ไม่ยอมให้ผู้ใช้ตัดสินใจด้วยซ้ำ (เช่น IOS) เปิดหน้าพอร์ทัลแบบ Captive โดยอัตโนมัติเสมอ
อย่างที่ผมอธิบายไปก่อนหน้านี้
ตลอดระยะเวลาของการเรียนรู้ การปรับใช้สิ่งที่ฉันเรียนรู้กับชีวิตจริง แก้ไขข้อบกพร่อง และการเขียนเอกสารนี้สนุกมากสำหรับฉัน! ฉันหวังว่าคุณจะใช้ความรู้เหล่านี้เพื่อจริยธรรม! ติดต่อฉันหากมีคำถามเพิ่มเติมและกรณีธุรกิจ/วิชาการ/การศึกษา
ทวิตเตอร์
ลิงค์อิน
แฮกเกอร์วัน
แฮ็คกล่อง
─ เขียนโดย Šefik Efe Altınoluk ─