─ Ein IoT-integriertes, vollautomatisches drahtloses PHI-System von Şefik Efe Altınoluk ─
Probieren Sie diese Software nicht auf Benutzern/Systemen aus, für die Sie keine gesetzliche Erlaubnis haben. Die Nutzung von Wi-Phi
zum Angriff auf Ziele ohne vorherige gegenseitige Zustimmung ist illegal. Es liegt in der Verantwortung des Endbenutzers, alle geltenden lokalen, staatlichen und bundesstaatlichen Gesetze einzuhalten. Ich übernehme keine Haftung und bin nicht verantwortlich für jeglichen Missbrauch oder Schaden, der durch diese Software, Dokumentation und irgendetwas in diesem Repository verursacht wird.
(SIEHE Nr. 4) Da Wi-Phi
böswillig verwendet werden kann, teile ich die meisten Teile des Quellcodes nicht. Kontaktieren Sie mich über LinkedIn für alle geschäftlichen/akademischen/pädagogischen Fälle, in denen Sie den gesamten Arbeitscode benötigen.
Dieses Projekt ist unter der Gnu General Public License Version 3.0 lizenziert
Weitere Einzelheiten finden Sie unter LIZENZ.
Wi-Phi
ist ein automatisches phishing
system
das vollständig in drahtlose IoT
-Boards (Internet der Dinge) integriert ist.
Man kann es sich wie ein fortschrittliches, funktionsreiches Wifi Pineapple
vorstellen.
Wi-Phi
ist in der Lage, Benutzer zu phishing, die mindestens eine der folgenden Softwareprogramme ausführen:
Hauptkomponenten von Wi-Phi
sind:
MicroPython
-Firmware unterstützt. Ich verwende Deneyap Kart
basierend auf ESP32
.esp32-20220117-v1.18.bin
Besorgen Sie sich ein ESP32-IoT-Gerät.
Verbinden Sie den ESP32 mit Ihrem Computer und ermitteln Sie den seriellen Port, an den der ESP32 angeschlossen ist.
COMx
/dev/ttyUSBx
oder /dev/tty/USBx
Führen Sie dann die folgenden Befehle für GNU/Linux aus.
[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 >
Jetzt sollte die Software funktionieren. Überprüfen Sie, ob Sie ein Wi-Fi-Netzwerk namens Google Free Wi-Fi
sehen.
Immer wenn Sie ESP32 an eine Stromversorgung anschließen, wird das Projekt nach der Boot-Phase automatisch ausgeführt.
Nichts anderes zählt.
Die gesamte Software ist auf MicroPython implementiert und läuft auf ESP32.
ESP32 wird zu einem Wireless AP (Access Point); und betreibt drei (3) unabhängige Sockets (auf OSI Layer 4):
53/UDP
für DNS
Server80/TCP
für HTTP
Server2121/TCP
für Credential Store
Server Die gesamte Bindung erfolgt über die IP-Adresse des Gateways (AP), die 210.210.210.1
lautet
Der Grund, warum ich mich für eine solche IP-Klasse entschieden habe, liegt darin, dass Samsung-Geräte aus irgendeinem Grund kurze IP-Adressen nicht als Captive-Portale betrachten. Was für mich ein Problem war.
Die Hauptidee besteht darin, eine statische Phishing-Website auf einem HTTP-Server bereitzustellen und daraus ein captive portal
für Geräte (Stationen) aller Anbieter zu machen, die über WLAN verbunden sind.
Static site
die vom HTTP-Server bereitgestellt wirdDNS
, HTTP
und CS
-ServerTCP
und UDP
Sockets für High-Level-ProtokolleGateway
LAN
Wireless AP
, Wi-Fi
Unten sehen Sie das gut durchdachte Szenario, unter dem Wi-Phi
funktioniert.
Dies ist auch eine Fallstudie, die ich mir selbst zugewiesen habe. Tauchen wir also in den Fall ein ...
Die meisten Gerätehersteller senden HTTP-Anfragen an bestimmte Endpunkte ihrer herstellerspezifischen Captive-Portal-Erkennungsserver und erwarten bestimmte HTTP-Antworten, um zu verstehen, ob das Wi-Fi-Netzwerk über ein Captive-Portal verfügt oder nicht.
Die folgende Tabelle zeigt, wie verschiedene Gerätehersteller reagieren müssen, damit das Gerät davon ausgeht, dass im Wi-Fi-Netzwerk ein Captive-Portal vorhanden ist.
Hinweis : Mozilla ist eine Ausnahme von „Geräteanbietern“. Firefox (als Browser) ist gemäß seinem eigenen Captive-Portal-Erkennungsserver in der Lage, diese Entscheidung selbst zu treffen.
Antworten mit dem Statuscode 302 Found
müssen außerdem einen Location:
“-Header haben, um den Browser (Client) ordnungsgemäß umzuleiten.
Geräteanbieter | Endpunkte | Statuscode | Antwortgremium |
---|---|---|---|
Microsoft (Windows) | www.msftconnecttest.com/ncsi.txt | 200 OK | Microsoft NCSI |
Microsoft (Windows) | www.msftconnecttest.com/connecttest.txt | 200 OK | Microsoft Connect Test |
Microsoft (Windows) | www.msftconnecttest.com/redirect | 302 Found | |
Google (Android) | connectivitycheck.gstatic.com/gen_204 | 302 Found | |
Google (Android) | connectivitycheck.gstatic.com/generate_204 | 302 Found | |
Google (Android) | clients3.google.com/generate_204 | 302 Found | |
Xiaomi | connect.rom.miui.com/gen_204 | 302 Found | |
Xiaomi | connect.rom.miui.com/generate_204 | 302 Found | |
Apple (IOS/MacOS) | captive.apple.com/hotspot-detect.html | 302 Found | |
Mozilla (Firefox) | detectportal.firefox.com/canonical.html | 302 Found | |
Mozilla (Firefox) | detectportal.firefox.com/success.txt | 302 Found |
Um auf die HTTP-Anfragen an die oben genannten Endpunkte antworten zu können, sollten diese Anfragen an den HTTP-Server von ESP32 gesendet werden. Um dies zu erreichen, sollte ESP32 bestimmte Domänensuchen mit seiner eigenen IP-Adresse beantworten.
google.com
sollte beispielsweise 210.210.210.1
lautenEs muss also ein Domain Name System Server vorhanden sein, der auf ESP32 läuft. Unter diesem Gesichtspunkt sieht das Szenario ähnlich aus wie bei DNS-Hijacking-Angriffen.
Ich denke, Google ist das beliebteste und vertrauenswürdigste Technologieunternehmen weltweit. Deshalb habe ich eine statische Phishing-Seite vorbereitet, die fast genauso aussieht wie die alte Anmeldeseite von Gmail. Und das Wi-Fi-Netzwerk wird auch als Google Free Wi-Fi
bezeichnet.
Während das Szenario weitergeht, soll der Benutzer nach der Umleitung des Browsers (Clients) zur statischen Anmeldeseite seine Anmeldeinformationen eingeben und auf die Schaltfläche „Weiter“ klicken. Und die Anmeldeinformationen werden in einer lokalen Datei gespeichert. Dann wird dem Benutzer die IP-Adresse bis zum nächsten Neustart von ESP32 gesperrt. Andernfalls kann die lokale Datenbank durch falsche/falsche Anmeldeinformationen durcheinander gebracht werden. Nach alledem wird der Client zum /
-Verzeichnis der statischen Site umgeleitet.
Immer wenn ein IP-gesperrter Client versucht, auf eine Ressource auf dem HTTP-Server zuzugreifen, wird dieselbe HTML-Datei hacklendin.html
bereitgestellt, unabhängig von Methode, Kopf, Text usw. der HTTP-Anfrage.
Auf der anderen Seite kann der lokale Anmeldeinformationsspeicher aus der Ferne angezeigt werden, indem eine Verbindung zu 2121/tcp
hergestellt und die Authentifizierung mit dem fest codierten Kennwort durchgeführt wird, während eine WLAN-Verbindung besteht.
Wi-Phi
ist ein funktionsreiches System. Ausführliche Protokolle, die von Wi-Fi
, HTTP
und DNS
Diensten erstellt wurden, können in Echtzeit angezeigt werden. Diese Protokolle werden nicht lokal gespeichert, um Speicherplatz zu sparen.
Um ausführliche Protokolle sehen zu können,
boot.py
in eine lokale Datei mit dem Namen main.py
boot.py
vom ESP32-Gerät.main.py
auf ESP32 aus. Sie können ampy
-Tool für Dateioperationen und das Ausführen von Software auf ESP32 verwenden.
Schauen wir uns einen Fall an, in dem mehrere unabhängige Geräte verschiedener Anbieter gleichzeitig mit unserem Google Free Wi-Fi
verbunden sind.
Wenn iOS-Geräte auf ein Captive-Portal stoßen, starten sie automatisch die Captive-Portal-Seite, ohne den Benutzer zu fragen: „Schön!“
Samsung-Geräte zeigen nur eine Benachrichtigung an. Hier muss der Benutzer also entweder Sign in to the network
oder auf die Benachrichtigung oben auf dem Bildschirm klicken.
Xiaomi-Geräte zeigen ebenfalls eine Benachrichtigung an. Manchmal öffnen sie auch automatisch die Captive-Portal-Seite, ohne dass der Benutzer erneut dazu aufgefordert wird!
In Firefox erscheint oben im Anwendungsfenster eine Eingabeaufforderung. Nachdem Sie auf Open network login page
geklickt haben, wird die Captive-Portal-Seite in einem neuen Tab geöffnet.
Und der andere Typ, der den Benutzern nicht einmal die Entscheidung überlässt (wie IOS). Öffnet die Captive-Portalseite immer automatisch.
Wie ich bereits erklärt habe,
Die ganze Zeit des Lernens, der Umsetzung des Gelernten in die Praxis, der Behebung von Fehlern und dem Schreiben dieser Dokumentation hat mir viel Spaß gemacht! Ich hoffe, dass Sie dieses Wissen für die Ethik nutzen! Kontaktieren Sie mich für weitere Fragen und geschäftliche/akademische/pädagogische Fälle.
Twitter
LinkedIn
HackerOne
Hack die Box
─ Geschrieben von Şefik Efe Altınoluk ─