Angriff auf SMB-Services mit Hydra

HydraHydraBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab werden wir untersuchen, wie man SMB-Services (Server Message Block-Services) mit Hydra angreifen kann, einem leistungsstarken Passwort-Cracking-Tool. Das Lab konzentriert sich darauf, zu zeigen, wie man schwache Zugangsdaten auf einem SMB-Server identifiziert und ausnutzt.

Das Lab beginnt mit der Einrichtung eines lokalen SMB-Servers mithilfe von Samba. Dazu gehört die Installation der erforderlichen Pakete, die Konfiguration der smb.conf-Datei zur Erstellung eines freigegebenen Verzeichnisses und die Einstellung geeigneter Berechtigungen. Anschließend werden wir Benutzer- und Passwortlisten für den Hydra-Angriff vorbereiten. Schließlich führen wir den Hydra-SMB-Angriff aus und überprüfen die Ergebnisse, um festzustellen, ob Zugangsdaten erfolgreich geknackt wurden.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL hydra(("Hydra")) -.-> hydra/HydraGroup(["Hydra"]) hydra/HydraGroup -.-> hydra/installation("Installation and Setup") hydra/HydraGroup -.-> hydra/password_creation("Password List Creation") hydra/HydraGroup -.-> hydra/username_creation("Username List Creation") hydra/HydraGroup -.-> hydra/target_ip("Target IP Specification") hydra/HydraGroup -.-> hydra/target_service("Target Service Selection") hydra/HydraGroup -.-> hydra/multiple_targets("Multiple Targets Attack") hydra/HydraGroup -.-> hydra/success_detection("Login Success Detection") hydra/HydraGroup -.-> hydra/troubleshooting("Basic Troubleshooting") subgraph Lab Skills hydra/installation -.-> lab-550761{{"Angriff auf SMB-Services mit Hydra"}} hydra/password_creation -.-> lab-550761{{"Angriff auf SMB-Services mit Hydra"}} hydra/username_creation -.-> lab-550761{{"Angriff auf SMB-Services mit Hydra"}} hydra/target_ip -.-> lab-550761{{"Angriff auf SMB-Services mit Hydra"}} hydra/target_service -.-> lab-550761{{"Angriff auf SMB-Services mit Hydra"}} hydra/multiple_targets -.-> lab-550761{{"Angriff auf SMB-Services mit Hydra"}} hydra/success_detection -.-> lab-550761{{"Angriff auf SMB-Services mit Hydra"}} hydra/troubleshooting -.-> lab-550761{{"Angriff auf SMB-Services mit Hydra"}} end

Einrichtung eines lokalen SMB-Servers

In diesem Schritt werden wir einen lokalen SMB (Server Message Block)-Server mithilfe von Samba einrichten. SMB ist ein Netzwerkdateifreigabeprotokoll, das es Anwendungen auf einem Computer ermöglicht, auf Dateien und Ressourcen auf einem Remote-Server zuzugreifen. Samba ist eine freie Software-Implementierung des SMB-Netzwerkprotokolls. Dies wird in späteren Schritten ein Ziel für unseren Hydra-SMB-Angriff darstellen.

Zunächst installieren wir Samba. Öffnen Sie Ihr Terminal im Verzeichnis ~/project.

sudo apt update
sudo apt install samba -y

Dieser Befehl aktualisiert die Paketlisten und installiert dann das Samba-Paket. Die Option -y beantwortet automatisch alle Abfragen während der Installation mit "ja".

Als Nächstes müssen wir Samba konfigurieren. Wir beginnen damit, die ursprüngliche Konfigurationsdatei zu sichern.

sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak

Jetzt erstellen wir eine neue, vereinfachte Konfigurationsdatei. Wir verwenden nano, um die Konfigurationsdatei zu bearbeiten.

sudo nano /etc/samba/smb.conf

Fügen Sie die folgende Konfiguration in den nano-Editor ein. Diese Konfiguration erstellt ein freigegebenes Verzeichnis namens share, das für alle im Netzwerk zugänglich ist.

[global]
   workgroup = WORKGROUP
   server string = Samba Server %v
   netbios name = fileserver
   security = user
   map to guest = bad user
   name resolve order = bcast host lmhosts wins

[share]
   path = /home/labex/project/share
   browsable = yes
   writable = yes
   guest ok = yes
   read only = no

Drücken Sie Ctrl+X, dann Y und anschließend Enter, um die Datei zu speichern.

Jetzt erstellen wir das freigegebene Verzeichnis.

mkdir ~/project/share
sudo chmod 777 ~/project/share

Dies erstellt ein Verzeichnis namens share in Ihrem ~/project-Verzeichnis und setzt dessen Berechtigungen auf 777, was bedeutet, dass jeder Lese-, Schreib- und Ausführungsrechte hat. Hinweis: In einer realen Umgebung würden Sie restriktivere Berechtigungen verwenden. Wir verwenden 777 aus Gründen der Einfachheit in dieser Lab-Umgebung.

Als Nächstes müssen wir einen Samba-Benutzer hinzufügen. Dieser Benutzer wird zur Authentifizierung am SMB-Server verwendet. Wir verwenden den bereits auf dem System vorhandenen Benutzer labex. Zunächst legen wir ein Samba-Passwort für den Benutzer labex fest.

sudo smbpasswd -a labex

Sie werden aufgefordert, ein neues Passwort für den Benutzer labex einzugeben. Geben Sie ein Passwort ein und bestätigen Sie es. Merken Sie sich dieses Passwort, da Sie es später benötigen werden.

Schließlich starten wir den Samba-Dienst neu, um die Änderungen anzuwenden.

sudo systemctl restart smbd nmbd

Wichtiger Hinweis: Der Befehl systemctl funktioniert möglicherweise nicht direkt in der Docker-Container-Umgebung. Wenn Sie einen Fehler erhalten, können Sie versuchen, die Samba-Dienste mit den folgenden Befehlen neu zu starten:

sudo /etc/init.d/smbd restart
sudo /etc/init.d/nmbd restart

Jetzt ist Ihr lokaler SMB-Server eingerichtet. Sie haben ein freigegebenes Verzeichnis namens share erstellt und den Benutzer labex mit einem Samba-Passwort hinzugefügt.

Vorbereitung von Benutzer- und Passwortlisten

In diesem Schritt werden wir die Benutzer- und Passwortlisten erstellen, die Hydra für den SMB-Angriff verwenden wird. Diese Listen enthalten potenzielle Benutzernamen und Passwörter, die Hydra versuchen wird, um sich am SMB-Server zu authentifizieren.

Zunächst erstellen wir die Benutzerliste. Wir verwenden nano, um eine Datei namens users.txt im Verzeichnis ~/project zu erstellen.

nano ~/project/users.txt

Fügen Sie in diese Datei die folgenden Benutzernamen ein, jeweils in einer neuen Zeile:

labex
admin
guest
user

Drücken Sie Ctrl+X, dann Y und anschließend Enter, um die Datei zu speichern.

Jetzt erstellen wir die Passwortliste. Wir verwenden nano, um eine Datei namens passwords.txt im Verzeichnis ~/project zu erstellen.

nano ~/project/passwords.txt

Fügen Sie in diese Datei die folgenden Passwörter ein, jeweils in einer neuen Zeile:

password
123456
labex
admin
guest

Drücken Sie Ctrl+X, dann Y und anschließend Enter, um die Datei zu speichern.

Dies sind einfache Listen zu Demonstrationszwecken. In einer realen Umgebung würden Sie viel größere und komplexere Listen verwenden.

Jetzt haben Sie zwei Dateien erstellt: users.txt, die eine Liste von Benutzernamen enthält, und passwords.txt, die eine Liste von Passwörtern enthält. Hydra wird diese Listen im nächsten Schritt verwenden, um das Passwort des SMB-Servers zu knacken.

Ausführen eines Hydra-SMB-Angriffs

In diesem Schritt werden wir Hydra verwenden, um einen Brute-Force-Angriff auf den SMB-Server durchzuführen, den wir im ersten Schritt eingerichtet haben. Hydra ist ein parallelisierter Login-Cracker, der zahlreiche Protokolle zum Angriff unterstützt.

Öffnen Sie Ihr Terminal im Verzeichnis ~/project.

Jetzt führen wir den Hydra-Befehl aus, um den SMB-Dienst anzugreifen.

hydra -L ~/project/users.txt -P ~/project/passwords.txt 127.0.0.1 smb

Lassen Sie uns diesen Befehl analysieren:

  • hydra: Dies ist der Befehl, um das Hydra-Tool auszuführen.
  • -L ~/project/users.txt: Dies gibt den Pfad zur Benutzerlisten-Datei an.
  • -P ~/project/passwords.txt: Dies gibt den Pfad zur Passwortlisten-Datei an.
  • 127.0.0.1: Dies ist die IP-Adresse des Ziel-SMB-Servers (in diesem Fall der lokale Rechner).
  • smb: Dies gibt den Dienst an, der angegriffen werden soll (SMB).

Hydra beginnt nun, sich am SMB-Server mit den Benutzernamen und Passwörtern aus den von Ihnen bereitgestellten Listen anzumelden. Es wird jede Kombination aus Benutzername und Passwort ausprobieren, bis es eine gültige Kombination findet oder alle Möglichkeiten ausgeschöpft hat.

Die Ausgabe zeigt die vorgenommenen Versuche. Wenn Hydra eine gültige Kombination aus Benutzername und Passwort findet, wird sie in der Ausgabe angezeigt.

Wichtiger Hinweis: Dieser Angriff wird zu Bildungszwecken auf einem lokalen SMB-Server durchgeführt. Das Durchführen unbefugter Angriffe auf Remote-Systeme ist illegal und unethisch.

Der Befehl kann je nach Größe Ihrer Benutzer- und Passwortlisten einige Zeit in Anspruch nehmen. Beobachten Sie die Ausgabe, um zu sehen, ob Hydra das Passwort erfolgreich knackt.

Überprüfung der Ergebnisse des SMB-Angriffs

In diesem Schritt werden wir die Ausgabe des Hydra-SMB-Angriffs analysieren, um festzustellen, ob einige Zugangsdaten erfolgreich geknackt wurden.

Nachdem Sie im vorherigen Schritt den Hydra-Befehl ausgeführt haben, untersuchen Sie die Ausgabe in Ihrem Terminal sorgfältig. Hydra zeigt alle gültigen Kombinationen aus Benutzername und Passwort an, die es findet.

Die Ausgabe sieht in etwa so aus, wenn ein erfolgreicher Login gefunden wird:

[smb] host: 127.0.0.1   login: labex   password: <the_password>

Wenn Hydra erfolgreich war, wird es den Benutzernamen und das Passwort ausgeben, die funktioniert haben. In unserem Beispiel hätte Hydra das Passwort für den Benutzer labex gefunden, wenn es in der Datei passwords.txt enthalten war.

Wenn Hydra keine gültigen Zugangsdaten gefunden hat, wird es eine Meldung anzeigen, die darauf hinweist, dass es alle Benutzername- und Passwortkombinationen ohne Erfolg ausprobiert hat.

Wenn Sie das Passwort erfolgreich geknackt haben, notieren Sie sich den Benutzernamen und das Passwort. Sie können diese Zugangsdaten dann verwenden, um auf den SMB-Share zuzugreifen, den wir im ersten Schritt erstellt haben.

Um die geknackten Zugangsdaten zu testen, können Sie den Befehl smbclient verwenden. Installieren Sie ihn zuerst, wenn er noch nicht installiert ist:

sudo apt update
sudo apt install smbclient -y

Verwenden Sie dann den folgenden Befehl, um sich mit dem SMB-Share zu verbinden. Ersetzen Sie <the_password> durch das geknackte Passwort:

smbclient //127.0.0.1/share -U labex -p <the_password>

Wenn der Login erfolgreich ist, wird Ihnen eine smb:\>-Eingabeaufforderung angezeigt, was bedeutet, dass Sie erfolgreich mit dem SMB-Share verbunden sind. Sie können dann SMB-Befehle verwenden, um die geteilten Dateien zu durchsuchen und mit ihnen zu interagieren.

Wenn Sie das Passwort nicht geknackt haben, können Sie versuchen, weitere häufige Passwörter zur Datei passwords.txt hinzuzufügen und den Hydra-Befehl erneut auszuführen. Denken Sie daran, dass die Wirksamkeit eines Brute-Force-Angriffs von der Qualität und Größe der Passwortliste abhängt.

Zusammenfassung

In diesem Lab haben wir zunächst einen lokalen SMB-Server mit Samba eingerichtet, um ein Ziel für einen Hydra-SMB-Angriff zu schaffen. Dies beinhaltete die Installation des Samba-Pakets, die Sicherung der ursprünglichen Konfigurationsdatei und die Erstellung einer neuen, vereinfachten Konfigurationsdatei mit einem freigegebenen Verzeichnis namens share, das für alle zugänglich ist.

Die Konfiguration umfasste die Einstellung der Arbeitsgruppe, der Server-Zeichenkette, des NetBIOS-Namens, der Sicherheitseinstellungen sowie die Definition des Pfads des freigegebenen Verzeichnisses, seiner Durchsuchbarkeit, Schreibbarkeit und des Gastzugangs. Wir haben auch das freigegebene Verzeichnis erstellt und aus Vereinfachungsgründen seine Berechtigungen auf 777 festgelegt, wobei wir darauf hingewiesen haben, dass in realen Szenarien restriktivere Berechtigungen empfohlen werden. Der nächste Schritt besteht darin, einen Samba-Benutzer hinzuzufügen.