Erstellen einer benutzerdefinierten HTML-Anmeldeseite für Fluxion

Beginner
Jetzt üben

Einleitung

Fluxion ist ein leistungsstarkes Werkzeug für Sicherheitsaudits und Social-Engineering-Forschung. Eine seiner bekanntesten Funktionen ist der Captive Portal-Angriff, bei dem ein gefälschter Wi-Fi-Zugangspunkt und eine gefälschte Anmeldeseite erstellt werden, um Anmeldedaten zu erfassen. Während Fluxion mit mehreren vorab erstellten Anmeldeseiten geliefert wird, kann die Erstellung einer benutzerdefinierten Seite Ihre Social-Engineering-Versuche wesentlich überzeugender und auf ein bestimmtes Ziel zugeschnitten gestalten.

In diesem Lab lernen Sie den schrittweisen Prozess der Erstellung Ihrer eigenen benutzerdefinierten HTML-Anmeldeseite und deren Integration in Fluxion. Sie werden die Verzeichnisstruktur von Fluxion durchlaufen, eine neue Website erstellen, ein einfaches HTML-Anmeldeformular schreiben und sicherstellen, dass es korrekt mit dem Fluxion-Backend kommuniziert.

In diesem Schritt navigieren Sie zu dem Verzeichnis, in dem Fluxion seine Captive-Portal-Vorlagen speichert. Das Verständnis dieser Verzeichnisstruktur ist der erste Schritt zur Hinzufügung Ihrer eigenen benutzerdefinierten Seite. Alle Operationen beginnen im Verzeichnis ~/project.

Zuerst wechseln wir in das fluxion-Verzeichnis, das während des Einrichtungsprozesses für Sie geklont wurde.

cd ~/project/fluxion

Navigieren Sie nun tiefer in die Verzeichnisstruktur, um die Captive-Portal-Sites zu finden.

cd attacks/Captive\ Portal/sites/

Beachten Sie die Verwendung eines Backslash \ zum Maskieren des Leerzeichens im Verzeichnisnamen Captive Portal.

Listen Sie abschließend den Inhalt dieses Verzeichnisses auf, um die vorhandenen Portalvorlagen anzuzeigen. Dies gibt Ihnen eine Vorstellung davon, wie sie organisiert sind.

ls -l

Sie sollten eine Liste von Verzeichnissen sehen, die jeweils eine andere Anmeldeseiten-Vorlage darstellen.

total 80
drwxr-xr-x 2 labex labex 4096 Dec 12 12:00 ASUS_dark_desktop
drwxr-xr-x 2 labex labex 4096 Dec 12 12:00 Brand_Generic_Alternative_Login_EN
drwxr-xr-x 2 labex labex 4096 Dec 12 12:00 Brand_Generic_Login_EN
drwxr-xr-x 2 labex labex 4096 Dec 12 12:00 D-Link_EN
drwxr-xr-x 2 labex labex 4096 Dec 12 12:00 Linksys_EN
... (und viele andere)

Sie befinden sich nun am richtigen Ort, um Ihr eigenes Portal zu erstellen.

Erstellen Sie ein neues Verzeichnis für Ihr benutzerdefiniertes Portal

In diesem Schritt erstellen Sie ein eigenes Verzeichnis für Ihr neues benutzerdefiniertes Portal. Fluxion erkennt verfügbare Portale, indem es Verzeichnisse im Ordner sites scannt. Jedes Verzeichnis muss eine index.html-Datei enthalten, um als gültiges Portal erkannt zu werden.

Von Ihrem aktuellen Standort (~/project/fluxion/attacks/Captive Portal/sites/) aus erstellen Sie mit dem Befehl mkdir ein neues Verzeichnis. Nennen wir es MyCustomPortal.

mkdir MyCustomPortal

Nachdem Sie das Verzeichnis erstellt haben, können Sie dessen Existenz überprüfen, indem Sie erneut den Inhalt des Verzeichnisses sites auflisten.

ls

Sie sollten MyCustomPortal neben den anderen Portalverzeichnissen sehen.

ASUS_dark_desktop
Brand_Generic_Alternative_Login_EN
Brand_Generic_Login_EN
...
MyCustomPortal
...

Dieses neue Verzeichnis wird alle Dateien für Ihre benutzerdefinierte Anmeldeseite enthalten, beginnend mit der Hauptdatei index.html.

Erstellen Sie eine 'index.html'-Datei mit einem Login-Formular

In diesem Schritt erstellen Sie die Kerndatei für Ihr Portal: index.html. Diese Datei enthält die HTML-Struktur für ein einfaches Login-Formular, das dem Benutzer angezeigt wird.

Navigieren Sie zuerst in Ihr neu erstelltes Verzeichnis.

cd MyCustomPortal

Verwenden Sie nun den Texteditor nano, um die Datei index.html zu erstellen und zu bearbeiten.

nano index.html

Fügen Sie im nano-Editor den folgenden grundlegenden HTML-Code ein. Dieser Code erstellt eine einfache Seite mit einem Titel, einer Überschrift und einem Formular mit einem Passwortfeld und einem Absende-Button.

<!DOCTYPE html>
<html>
  <head>
    <title>Network Login</title>
  </head>
  <body>
    <h1>Please log in to continue</h1>
    <form>
      <p>Password:</p>
      <input type="password" name="pass" />
      <br /><br />
      <input type="submit" value="Login" />
    </form>
  </body>
</html>

Nachdem Sie den Code eingefügt haben, speichern Sie die Datei und beenden Sie nano, indem Sie Ctrl+X, dann Y und schließlich Enter drücken.

Sie haben nun den visuellen Teil Ihrer Anmeldeseite erstellt. Im nächsten Schritt konfigurieren Sie diese so, dass die erfassten Daten korrekt an Fluxion gesendet werden.

Sicherstellen, dass das Formular an '/login' POSTet

In diesem Schritt modifizieren Sie das HTML-Formular, um sicherzustellen, dass es korrekt mit dem Fluxion-Backend kommuniziert. Damit Fluxion die Anmeldedaten abfangen kann, muss das Formular seine Daten mit einer bestimmten Methode (POST) an einen bestimmten Pfad (/login) übermitteln.

Öffnen Sie die Datei index.html erneut mit nano.

nano index.html

Suchen Sie das <form>-Tag. Sie müssen ihm zwei Attribute hinzufügen: method="POST" und action="/login". Das Attribut method="POST" weist den Browser an, die Formulardaten im Body der HTTP-Anfrage zu senden, und action="/login" gibt den Endpunkt an, an den die Daten gesendet werden sollen. Der Webserver von Fluxion lauscht an diesem Endpunkt, um die Anmeldedaten abzufangen.

Ändern Sie Ihre index.html-Datei wie folgt:

<!DOCTYPE html>
<html>
  <head>
    <title>Network Login</title>
  </head>
  <body>
    <h1>Please log in to continue</h1>
    <form method="POST" action="/login">
      <p>Password:</p>
      <input type="password" name="pass" />
      <br /><br />
      <input type="submit" value="Login" />
    </form>
  </body>
</html>

Beachten Sie die Änderungen im <form>-Tag. Das Attribut name="pass" im Eingabefeld ist ebenfalls wichtig, da es der Schlüssel ist, den Fluxion zur Identifizierung des übermittelten Passworts verwendet.

Speichern Sie die Datei und beenden Sie nano (Ctrl+X, Y, Enter). Ihr benutzerdefiniertes Portal ist nun funktional vollständig und kann von Fluxion verwendet werden.

Fluxion neu starten und Ihr benutzerdefiniertes Portal auswählen

In diesem letzten Schritt starten Sie Fluxion neu, um zu bestätigen, dass es Ihr neu erstelltes benutzerdefiniertes Portal erkennt.

Navigieren Sie zuerst zurück zum Hauptverzeichnis von fluxion.

cd ~/project/fluxion

Führen Sie nun das Hauptskript von Fluxion mit sudo-Berechtigungen aus. Für Netzwerkoperationen sind Administratorrechte erforderlich.

sudo ./fluxion.sh

Beim ersten Start führt Fluxion möglicherweise eine Abhängigkeitsprüfung durch. Wenn Sie aufgefordert werden, fehlende Tools zu installieren, drücken Sie Enter, um fortzufahren. Sobald die Prüfungen abgeschlossen sind, wird Ihnen das Hauptmenü angezeigt.

  1. Wählen Sie Ihre Sprache (z. B. geben Sie 1 für Englisch ein).
  2. Wählen Sie im Angriffsmenü Captive Portal.

Fluxion scannt dann das Verzeichnis attacks/Captive Portal/sites/ und zeigt Ihnen eine Liste der verfügbaren Portale an. Scrollen Sie durch diese Liste, und Sie sollten Ihr MyCustomPortal als eine der Optionen sehen.

Sie können es auswählen, um zu bestätigen, dass es funktioniert. Da dies eine virtuelle Umgebung ohne eine physische WLAN-Karte ist, können Sie den Angriff nicht abschließen, aber das Erscheinen Ihres Portals in der Liste bestätigt, dass Sie es erfolgreich integriert haben.

Sie können Fluxion jederzeit durch Drücken von Ctrl+C beenden.

Zusammenfassung

Herzlichen Glückwunsch! Sie haben erfolgreich eine benutzerdefinierte HTML-Anmeldeseite erstellt und in Fluxion integriert.

In diesem Labor haben Sie gelernt, wie Sie:

  • Die interne Verzeichnisstruktur von Fluxion navigieren, um die Captive-Portal-Sites zu finden.
  • Ein neues Verzeichnis erstellen, um Ihre benutzerdefinierten Portaldateien zu speichern.
  • Eine grundlegende index.html-Datei mit einem Anmeldeformular schreiben.
  • Das Formular kritisch so konfigurieren, dass Daten an den Endpunkt /login mit POST gesendet werden, wodurch Fluxion die Anmeldeinformationen erfassen kann.
  • Fluxion starten und überprüfen, ob Ihr benutzerdefiniertes Portal erkannt wird und für einen Captive-Portal-Angriff verfügbar ist.

Diese Fähigkeit ermöglicht es Ihnen, gezieltere und glaubwürdigere Anmeldeseiten für Ihre Sicherheitsbewertungen zu erstellen, was die potenzielle Wirksamkeit Ihrer Social-Engineering-Engagements erheblich erhöht. Sie können Ihre Seiten weiter verbessern, indem Sie CSS für das Styling und JavaScript für dynamische Inhalte hinzufügen.