Hydra
Einleitung
Hydra ist ein vielseitiges Tool zur Durchführung von Brute-Force- und Passwort-Spraying-Angriffen auf verschiedene Netzwerkprotokolle. Es unterstützt eine breite Palette von Diensten wie SSH, FTP, HTTP, SMTP und mehr. Hydra kann sowohl Einzelbenutzer- als auch Massenangriffe auf Benutzer- und Passwortlisten ausführen.
Hydra ist ein essentielles Werkzeug im Arsenal eines Penetration-Testers, da es ermöglicht, schwache Authentifizierungsmechanismen zu identifizieren und ausnutzen. Es ist vorinstalliert auf den meisten Pentesting-Distributionen wie Kali Linux oder ParrotOS.
1. Grundlegende Syntax
Die grundlegende Syntax für Hydra lautet:
$ hydra [Optionen] <Protokoll>://<Ziel-IP>
Optionen: Parameter wie Benutzerlisten, Passwortlisten, Threads usw.
Protokoll: Der zu attackierende Dienst (z. B. SSH, FTP, HTTP).
Ziel-IP: Die IP-Adresse oder der Hostname des Ziels.
2. Häufig genutzte Optionen
-l
Gibt einen einzelnen Benutzernamen an.
-L
Gibt eine Datei mit einer Liste von Benutzernamen an.
-p
Gibt ein einzelnes Passwort an.
-P
Gibt eine Datei mit einer Liste von Passwörtern an.
-t
Maximale Anzahl paralleler Verbindungen (Standard: 16).
-o
Speichert Ergebnisse in einer Datei.
-f
Beendet den Angriff, sobald ein gültiges Login gefunden wurde.
-V
Zeigt jeden Versuch an (verbose).
-s
Gibt den Port an, falls dieser nicht Standard ist (z. B. 2222 für SSH).
3. Beispiele für Hydra-Befehle
3.1 Brute-Force mit einem Benutzernamen und einer Passwortliste
$ hydra -l admin -P passlist.txt ssh://192.168.1.10
Erklärung:
-l admin
: Testet den Benutzernamenadmin
.-P passlist.txt
: Verwendet die Dateipasslist.txt
mit möglichen Passwörtern.ssh://192.168.1.10
: Ziel ist ein SSH-Dienst auf der IP192.168.1.10
.
3.2 Passwort-Spraying mit Benutzerliste und einem Passwort
$ hydra -L users.txt -p 'welcome123' ftp://192.168.1.10
Erklärung:
-L users.txt
: Testet alle Benutzernamen inusers.txt
.-p 'welcome123'
: Verwendet das Passwortwelcome123
.ftp://192.168.1.10
: Ziel ist ein FTP-Dienst auf der IP192.168.1.10
.
3.3 Brute-Force mit Benutzer- und Passwortlisten
$ hydra -L users.txt -P passwords.txt ssh://192.168.1.10
Erklärung:
Testet jede Kombination aus der Benutzerliste
users.txt
und der Passwortlistepasswords.txt
auf dem SSH-Dienst.
3.4 Angriff auf einen Dienst mit benutzerdefiniertem Port
$ hydra -l root -P common_passwords.txt -s 2222 ssh://192.168.1.10
Erklärung:
-s 2222
: Gibt Port 2222 anstelle des Standardports 22 für SSH an.
3.5 Ergebnisse speichern
$ hydra -L users.txt -P passwords.txt -o results.txt ssh://192.168.1.10
Erklärung:
-o results.txt
: Speichert gültige Login-Kombinationen in der Dateiresults.txt
.
5. Erweiterte Verwendung
5.1 HTTP/HTTPS-Authentifizierung
Hydra kann Angriffe auf HTTP/HTTPS-Dienste durchführen, einschließlich Basic Authentication und Formularanmeldungen:
$ hydra -L users.txt -P passwords.txt http-get://192.168.1.10
http-get
: Testet HTTP-GET-Authentifizierung.
Für Formularanmeldungen kann die Option -m
genutzt werden, um den POST-Parameter anzugeben:
$ hydra -L users.txt -P passwords.txt -m "/login.php:username=^USER^&password=^PASS^" http-post-form://192.168.1.10
6. Gute Praktiken und Sicherheit
Langsame Angriffe: Verwenden Sie niedrige Threads (
-t
), um nicht erkannt oder blockiert zu werden.Benutzerdefinierte Timeout-Werte: Setzen Sie Timeout-Werte, um Verbindungsabbrüche zu vermeiden:
$ hydra -L users.txt -P passwords.txt -t 4 -T 3 ssh://192.168.1.10
-T 3
: Setzt den Timeout-Wert auf 3 Sekunden.
7. Unterstützte Protokolle
Hydra unterstützt viele Protokolle, darunter:
SSH, FTP, HTTP/HTTPS, SMTP, IMAP, RDP, VNC, Telnet, SNMP.
Eine vollständige Liste der Protokolle erhalten Sie mit:
bashCode kopieren$ hydra -U
Last updated