SSL-Stripping-Option 'Without a Spoofer' verwenden

Beginner
Jetzt üben

Einleitung

SSL-Stripping ist eine Art von Man-in-the-Middle (MITM)-Angriff, der einen Webbrowser dazu zwingt, eine Verbindung zu einer Website über eine unverschlüsselte HTTP-Verbindung herzustellen, selbst wenn der Benutzer beabsichtigt hat, sich sicher über HTTPS zu verbinden. Dies ermöglicht es einem Angreifer, den gesamten Datenverkehr zwischen dem Benutzer und der Website abzufangen und zu lesen.

In diesem Lab werden Sie das Tool Wifiphisher verwenden, um einen SSL-Stripping-Angriff durchzuführen. Insbesondere werden Sie die Option 'Without a spoofer' (Ohne Spoofing) untersuchen, die auf dem Abfangen und Modifizieren von Datenverkehr basiert, ohne ein gefälschtes SSL-Zertifikat zu verwenden. Diese praktische Übung hilft Ihnen, die Mechanismen dieses Angriffs in einer kontrollierten und sicheren Umgebung zu verstehen.

Starten des Captive-Portal-Angriffs

In diesem Schritt starten Sie das Wifiphisher-Tool, um einen Rogue Access Point (AP) zu erstellen und einen Captive-Portal-Angriff zu initiieren. Da die LabEx-virtuelle Umgebung keine physische WLAN-Karte besitzt, werden wir spezifische Optionen verwenden, um den Angriff zu simulieren.

Öffnen Sie zuerst ein Terminal. Wir werden wifiphisher mit sudo ausführen, da es erhöhte Berechtigungen benötigt, um Netzwerkschnittstellen und Dienste zu verwalten. Wir verwenden die Option --nojamming, um zu verhindern, dass versucht wird, echte WLAN-Netzwerke zu stören, und --essid "Free WiFi", um unser gefälschtes Netzwerk zu benennen. Wir müssen auch ein Captive-Portal-Szenario angeben; wir verwenden firmware-upgrade.

Führen Sie den folgenden Befehl in Ihrem Terminal aus:

sudo wifiphisher --nojamming --essid "Free WiFi" -p firmware-upgrade

Nachdem Sie den Befehl ausgeführt haben, wird Wifiphisher gestartet. Es erkennt automatisch Ihre Netzwerkschnittstellen. Möglicherweise werden Sie aufgefordert, die Schnittstelle für den AP und die Schnittstelle für NAT auszuwählen. Für beide Aufforderungen können Sie normalerweise Enter drücken, um die Standardauswahl zu akzeptieren, die normalerweise eth0 ist.

Sie sehen eine Ausgabe ähnlich der folgenden, während das Tool initialisiert wird:

[*] Starting Wifiphisher 1.4GIT ( https://wifiphisher.org ) at 2023-10-27 10:00
[+] Timezone detected. Setting channel hopping to the appropriate regulatory domain.
[+] Selecting eth0 for the AP interface.
[+] Selecting eth0 for the Internet-connected interface.
...

Bei Aufforderung zu SSL die Option 'Without a spoofer' wählen

In diesem Schritt konfigurieren Sie die SSL-Stripping-Methode für den Angriff. Nach der anfänglichen Einrichtung fragt Wifiphisher Sie, wie Sie mit SSL/TLS-geschütztem Datenverkehr umgehen möchten. Dies ist eine entscheidende Wahl, die die Art des Man-in-the-Middle-Angriffs bestimmt.

Wifiphisher präsentiert eine Eingabeaufforderung mit zwei Hauptoptionen:

  1. With a spoofer (Mit einem Spoofing-Tool): Diese Methode generiert im laufenden Betrieb ein gefälschtes SSL-Zertifikat und präsentiert es dem Client. Dies löst oft eine Sicherheitswarnung im Browser des Clients aus.
  2. Without a spoofer (Ohne Spoofing-Tool): Diese Methode versucht, die Verbindung zu einfachem HTTP herunterzustufen, ohne ein Zertifikat zu verwenden. Sie beruht darauf, dass der Browser des Clients keine sichere Verbindung erzwingt.

Sie sehen eine Eingabeaufforderung wie diese in Ihrem Terminal:

[?] How do you want to handle SSL/TLS-protected traffic?
1. With a spoofer (Generate a fake cert on the fly and spoof the domain)
2. Without a spoofer (Downgrade to HTTP)
[1/2]:

Für dieses Lab untersuchen wir die zweite Option. Geben Sie 2 ein und drücken Sie Enter.

2

Nachdem Sie Ihre Auswahl getroffen haben, wird Wifiphisher die Einrichtung des Rogue AP und des Captive Portals abschließen. Es ist dann bereit, Client-Verbindungen anzunehmen. Das Terminal zeigt Meldungen an, die darauf hinweisen, dass die HTTP- und HTTPS-Proxy-Server laufen.

[*] Starting the HTTP and HTTPS proxy servers...
[*] Starting AP...

Verstehen, dass dies auf Schwachstellen im Client-Browser beruht

In diesem Schritt besprechen wir den Mechanismus hinter der SSL-Stripping-Option 'Without a spoofer'. Hier müssen keine Befehle ausgeführt werden; dieser Abschnitt dient Ihrem konzeptionellen Verständnis.

Die Methode 'Without a spoofer' ist eine subtilere Form des Angriffs. So funktioniert sie:

  1. Erste Anfrage: Ein Opfer verbindet sich mit Ihrem Rogue "Free WiFi"-Netzwerk. Es öffnet seinen Browser und versucht, zu einer sicheren Website zu navigieren, z. B. https://example.com.
  2. Abfangen: Wifiphisher, das als Gateway fungiert, fängt diese Anfrage ab, bevor sie das Internet erreicht.
  3. Downgrade: Anstatt zu versuchen, example.com mit einem gefälschten Zertifikat zu imitieren, tut Wifiphisher etwas anderes. Es leitet die Anfrage des Benutzers an das echte https://example.com selbst weiter, liefert aber den Inhalt über eine einfache http://-Verbindung an das Opfer zurück.
  4. Inhaltsumschreibung: Entscheidend ist, dass Wifiphisher den HTML-Inhalt, den es vom echten Server erhält, scannt und alle Links umschreibt. Jeder Link, der https://... war, wird zu http://... geändert. Dies hält den Benutzer so lange wie möglich in der unverschlüsselten Sitzung.

Der Erfolg dieses Angriffs hängt von zwei Hauptfaktoren ab:

  • Der Benutzer bemerkt nicht, dass das Schloss-Symbol des Browsers fehlt.
  • Die Zielwebsite verwendet kein HTTP Strict Transport Security (HSTS). HSTS ist eine Sicherheitsrichtlinie, die Webserver verwenden können, um Browser anzuweisen, dass sie nur über HTTPS kommunizieren sollten. Wenn ein Browser zuvor einen HSTS-Header von einer Website erhalten hat, wird er sich weigern, über HTTP zu verbinden, wodurch dieser Angriff vereitelt wird.

Einen Client verbinden und versuchen, eine HTTPS-Seite zu durchsuchen

In diesem Schritt simulieren wir die Verbindung eines Clients mit dem Rogue AP und den Versuch, auf eine sichere Website zuzugreifen. In einem realen Szenario würde ein Opfer sein Gerät mit dem "Free WiFi"-Netzwerk verbinden. Hier simulieren wir dies mit dem curl-Befehl in einem neuen Terminal.

Öffnen Sie zuerst einen neuen Terminal-Tab. Sie können dies tun, indem Sie auf das +-Symbol im Terminal-Panel klicken. Dieses neue Terminal fungiert als unser "Opfer-Client".

In diesem neuen Terminal verwenden wir curl, um zu versuchen, auf eine HTTPS-Seite zuzugreifen. Wir verwenden httpforever.com, eine Website, die für Testzwecke entwickelt wurde und kein HSTS erzwingt. Das Flag -v (verbose) zeigt uns detaillierte Informationen über den Verbindungsprozess.

Führen Sie den folgenden Befehl im neuen Terminal aus:

curl -v https://httpforever.com

Da Wifiphisher das Netzwerk steuert, wird diese Anfrage abgefangen. Anstatt die echte httpforever.com zu erreichen, wird sie von unserem Angriffstool bearbeitet.

Beobachten, ob die Verbindung zu HTTP herabgestuft wird

In diesem Schritt beobachten Sie die Ergebnisse des Angriffs sowohl im Client- als auch im Angreifer-Terminal, um zu bestätigen, dass die Verbindung erfolgreich herabgestuft wurde.

Schauen Sie zuerst auf die Ausgabe in Ihrem Client-Terminal (wo Sie curl ausgeführt haben). Die ausführliche Ausgabe zeigt, dass Ihre Anfrage an https://httpforever.com zu einer Weiterleitung geführt hat. Sie sehen einen Statuscode 302 Found und einen Location-Header, der auf eine HTTP-Adresse verweist, nämlich die Captive-Portal-Seite.

Die Ausgabe wird ungefähr so aussehen:

*   Trying 10.0.0.1:443...
* Connected to httpforever.com (10.0.0.1) port 443 (#0)
...
< HTTP/1.1 302 Found
< Location: http://10.0.0.2:8080/
< Content-Length: 0
< Date: Fri, 27 Oct 2023 10:05:00 GMT
< Server: Python/3.10 aiohttp/3.8.5
...

Beachten Sie, dass der Location-Header Sie zu einer http://-Adresse weiterleitet. Dies bestätigt die Herabstufung.

Wechseln Sie dann zurück zu Ihrem ersten Terminal, auf dem wifiphisher läuft. Sie sehen neue Protokolleinträge, die anzeigen, dass ein Client verbunden wurde und seine Anfragen bearbeitet werden. Es wird die HTTP-GET-Anfrage des simulierten Clients protokolliert.

[+] 192.168.1.100 victim-device connected to Free WiFi
[*] Sent a captive portal page to 192.168.1.100
[+] GET 192.168.1.100: http://httpforever.com/

Dies bestätigt, dass der Angreifer den Datenverkehr erfolgreich im Klartext abfängt.

Um das Lab abzuschließen, stoppen Sie das Wifiphisher-Tool, indem Sie zu seinem Terminal wechseln und Ctrl+C drücken.

Zusammenfassung

In diesem Lab haben Sie erfolgreich einen SSL-Stripping-Angriff mit der Option 'Without a spoofer' in Wifiphisher demonstriert.

Sie haben gelernt, wie Sie:

  • Wifiphisher starten, um einen Rogue AP für einen Captive-Portal-Angriff zu erstellen.
  • Die SSL-Stripping-Methode 'Without a spoofer' auswählen.
  • Eine Client-Verbindung mit curl in einem separaten Terminal simulieren.
  • Die Beweise für die Herabstufung der Verbindung von HTTPS zu HTTP beobachten, indem Sie die Ausgaben sowohl vom Client als auch vom Angriffstool analysieren.

Diese Übung unterstreicht die Bedeutung von Sicherheitsmechanismen wie HSTS zum Schutz vor solchen Herabstufungsangriffen. Herzlichen Glückwunsch zum Abschluss dieses Labs!