Fluxion in einer Headless-Umgebung über SSH ausführen

Beginner
Jetzt üben

Einleitung

Willkommen zu diesem Lab über die Ausführung von Fluxion in einer Headless-Umgebung. Fluxion ist ein beliebtes Werkzeug für Sicherheitsaudits und Social-Engineering-Forschung. Es wird häufig für Aufgaben verwendet, deren Abschluss eine erhebliche Zeit in Anspruch nehmen kann.

Eine "Headless"-Umgebung ist ein System, das ohne grafische Benutzeroberfläche (GUI) betrieben wird und typischerweise remote über ein Netzwerk verwaltet wird. Wenn Sie lange laufende Aufgaben auf einem Remote-Computer ausführen, riskieren Sie Unterbrechungen, wenn Ihre Netzwerkverbindung abbricht.

In diesem Lab lernen Sie, wie Sie SSH (Secure Shell) für den Fernzugriff und tmux (einen Terminal-Multiplexer) verwenden, um eine persistente Sitzung zu erstellen. Diese Konfiguration ermöglicht es Ihnen, eine Aufgabe wie einen Fluxion-Scan zu starten, die Verbindung zum Remote-Computer zu trennen und die Aufgabe im Hintergrund weiterlaufen zu lassen. Sie können sich später wieder verbinden, um den Fortschritt zu überprüfen.

Wir werden diesen gesamten Prozess in der LabEx-Umgebung simulieren. Zuerst installieren wir Fluxion und durchlaufen dann die Schritte zur Verwendung von tmux zur Verwaltung des Fluxion-Prozesses.

SSH-Verbindung zu Ihrer Kali Linux-Maschine

In einem realen Szenario wäre der erste Schritt die Verwendung eines SSH-Clients, um von Ihrem lokalen Computer eine Verbindung zum Remote-Server (der eine Kali Linux-Maschine oder eine andere Linux-Distribution sein könnte) herzustellen. Der Befehl würde etwa so aussehen: ssh user@remote_ip_address.

Für dieses Lab simulieren wir diesen Prozess. Das Terminal, das Sie gerade verwenden, repräsentiert Ihre Remote-Sitzung auf dem Server. Die notwendige Software, Fluxion, wurde bereits vom Setup-Skript in das Verzeichnis ~/project/fluxion heruntergeladen.

In diesem Schritt navigieren wir in das Fluxion-Verzeichnis, um uns auf die nächsten Schritte vorzubereiten.

Führen Sie den folgenden Befehl aus, um Ihr aktuelles Verzeichnis zu ändern:

cd ~/project/fluxion

Sie können überprüfen, ob Sie sich im richtigen Verzeichnis befinden, indem Sie den Befehl ls ausführen, der den Inhalt des Fluxion-Repositorys auflisten sollte.

ls
CHANGELOG.md    fluxion.sh      README.md
CONTRIBUTORS.md  install         requirements.txt
docs            LICENSE         sites
files           Makefile        tmp

Verwenden von 'tmux' oder 'screen' zur Erstellung einer persistenten Sitzung

Nachdem wir uns nun "auf" der Remote-Maschine befinden und im richtigen Verzeichnis sind, müssen wir eine persistente Sitzung erstellen. Dies stellt sicher, dass jeder Befehl, den wir innerhalb dieser Sitzung ausführen, weiterhin ausgeführt wird, auch wenn wir die Verbindung verlieren. Wir werden tmux verwenden, einen leistungsstarken Terminal-Multiplexer.

In diesem Schritt erstellen Sie eine neue tmux-Sitzung mit dem Namen fluxion_session. Diese benannte Sitzung ist leicht zu identifizieren und später wieder anzuhängen.

Führen Sie den folgenden Befehl aus, um eine neue tmux-Sitzung zu starten:

tmux new -s fluxion_session

Nachdem Sie diesen Befehl ausgeführt haben, wird Ihr Terminal fast gleich aussehen, aber Sie befinden sich nun innerhalb einer tmux-Sitzung. Sie werden eine grüne Statusleiste am unteren Bildschirmrand bemerken, die anzeigt, dass tmux aktiv ist. Alle Befehle, die Sie jetzt ausführen, werden innerhalb dieser persistenten Sitzung ausgeführt.

Starten von 'fluxion.sh' innerhalb der tmux/screen-Sitzung

Mit unserer aktiven persistenten tmux-Sitzung können wir nun sicher Fluxion starten. Da wir uns innerhalb von tmux befinden, wird der Fluxion-Prozess vor möglichen Netzwerkunterbrechungen geschützt.

Wir befinden uns bereits im Verzeichnis ~/project/fluxion aus Schritt 1. Die Hauptausführungsdatei für Fluxion ist das Skript fluxion.sh. Es erfordert Root-Privilegien, um Netzwerkschnittstellen zu verwalten und seine Angriffswerkzeuge auszuführen, daher müssen wir es mit sudo ausführen.

Führen Sie den folgenden Befehl aus, um Fluxion zu starten:

sudo ./fluxion.sh

Fluxion wird gestartet und führt möglicherweise eine Überprüfung der erforderlichen Werkzeuge durch. Da wir diese im Setup-Skript installiert haben, sollte es direkt zum Hauptmenü übergehen. Sie werden zunächst aufgefordert, eine Sprache auszuwählen.

Führen Sie einen Angriff wie gewohnt über das SSH-Terminal durch

Nachdem Fluxion läuft, können Sie mit seiner menügesteuerten Oberfläche interagieren, genau wie in einem normalen Terminal.

Zuerst wird Fluxion Sie auffordern, eine Sprache auszuwählen. Geben Sie 1 ein und drücken Sie Enter, um Englisch auszuwählen.

[#] Select your language:
[1] English
...
[*] Language> 1

Als Nächstes scannt Fluxion nach drahtlosen Schnittstellen. In der LabEx-virtuellen Umgebung gibt es keine physische drahtlose Hardware. Daher wird Fluxion melden, dass es keine geeigneten Schnittstellen finden kann, und wird beendet. Dies ist das erwartete Verhalten für dieses Labor.

In einem realen Szenario auf einer Maschine mit einer kompatiblen WLAN-Karte würden Sie eine Liste von Schnittstellen (wie wlan0) sehen und dann einen Angriffsvektor auswählen.

Für dieses Labor ist das Ziel lediglich, das Programm laufen zu sehen. Nachdem Fluxion den Fehler bezüglich fehlender WLAN-Adapter anzeigt und beendet wird, kehren Sie zur Eingabeaufforderung innerhalb Ihrer tmux-Sitzung zurück. Wir werden es nun erneut starten und sofort mit dem nächsten Schritt fortfahren, um das Trennen zu üben, während es "läuft".

Bitte führen Sie das Skript erneut aus:

sudo ./fluxion.sh

Sobald Sie das Menü zur Sprachauswahl sehen, können Sie mit dem nächsten Schritt fortfahren. Wir lassen es in diesem Menü laufen, um einen langlaufenden Prozess zu simulieren.

Von der Sitzung trennen und den Angriff im Hintergrund laufen lassen

Dies ist der wichtigste Schritt. Da Fluxion innerhalb unserer tmux-Sitzung läuft, können wir uns nun von der Sitzung "trennen". Dies bringt Sie zu Ihrem Hauptterminal zurück, aber die tmux-Sitzung – und Fluxion darin – läuft im Hintergrund weiter.

Um sich von der tmux-Sitzung zu trennen, drücken Sie die folgende Tastenkombination: Drücken Sie Ctrl+b, lassen Sie die Tasten los und drücken Sie dann d (für detach).

Sie sehen die Meldung [detached (from session fluxion_session)] und sind zurück in Ihrer normalen Shell.

Woher wissen Sie, dass die Sitzung noch läuft? Sie können alle aktiven tmux-Sitzungen mit dem Befehl tmux ls auflisten.

tmux ls

Sie sollten Ihre Sitzung in der Ausgabe sehen:

fluxion_session: 1 windows (created ...) [159x41]

Dies bestätigt, dass Fluxion weiterhin im Hintergrund läuft. Sie könnten nun Ihre SSH-Verbindung sicher schließen, und der Prozess würde fortgesetzt.

Um zur Sitzung zurückzukehren und ihren Status zu überprüfen, "hängen" Sie sich mit ihrem Namen daran "an".

tmux attach -t fluxion_session

Sie werden sofort zur tmux-Sitzung zurückgebracht, genau dort, wo Sie aufgehört haben, mit dem sichtbaren Fluxion-Sprachmenü. Um das Labor abzuschließen, können Sie nun Ctrl+C drücken, um Fluxion zu beenden, und dann exit eingeben und Enter drücken, um die tmux-Sitzung zu schließen.

Zusammenfassung

In diesem Labor haben Sie eine entscheidende Fähigkeit für jeden Remote-Systemadministrator oder Penetrationstester erfolgreich erlernt: das persistente Ausführen von Prozessen in einer Headless-Umgebung.

Sie haben gelernt:

  • Das Konzept einer Headless-Umgebung und warum persistente Sitzungen für langlaufende Aufgaben notwendig sind.
  • Wie man eine Remote-Verbindung simuliert und im Dateisystem navigiert.
  • Wie man tmux verwendet, um eine neue benannte Sitzung zu erstellen (tmux new -s).
  • Wie man ein Programm wie Fluxion innerhalb einer tmux-Sitzung startet.
  • Den wichtigsten Befehl (Ctrl+b, d), um sich von einer tmux-Sitzung zu trennen und den Prozess weiterlaufen zu lassen.
  • Wie man aktive Sitzungen auflistet (tmux ls) und sich wieder an eine laufende Sitzung anhängt (tmux attach -t), um Ihre Arbeit fortzusetzen.

Diese Technik ist nicht auf Fluxion beschränkt; sie kann für jedes Kommandozeilen-Tool oder Skript verwendet werden, das über einen längeren Zeitraum auf einem Remote-Computer ausgeführt werden muss.