Hydra: Online-Brute-Force ohne Umwege
Wie Hydra gegen SSH tatsächlich eingesetzt wird, welche Flags wirklich zählen und warum Geschwindigkeit nicht das eigentliche Ziel ist.
Hydra (THC-Hydra) ist eines der ältesten Tools im Pentest-Werkzeugkasten
und trotzdem noch regelmäßig im Einsatz, weil es genau eine Sache sehr
zuverlässig macht: Credentials gegen ein Login-Protokoll parallel
durchtesten. Für SSH heißt das konkret Online-Brute-Force oder Password
Spraying gegen einen laufenden Dienst, im Gegensatz zu Offline-Angriffen
gegen bereits extrahierte Hashes.
Grundsyntax
hydra -l admin -P rockyou.txt ssh://10.10.11.23
Die Flags sind bewusst knapp gehalten:
-lein einzelner, bekannter Benutzername.-L userlist.txtfür mehrere.-pein einzelnes Passwort,-P wordlist.txtfür eine Liste.-lmit-Pist klassisches Brute-Force: ein Nutzer, viele Passwörter.-Lmit-pdreht das Verhältnis um: viele Nutzer, ein Passwort, also Password Spraying (mehr dazu im eigenen Artikel).
Parallelität ist der eigentliche Hebel, nicht Rohgeschwindigkeit
hydra -L users.txt -p 'Summer2026!' -t 4 -W 30 ssh://10.10.11.23
-t 4 begrenzt Hydra auf vier parallele Tasks. Das ist meistens das
Gegenteil von dem, was Einsteiger erwarten: Statt -t 16 für maximale
Geschwindigkeit zu setzen, wird die Parallelität in einem echten Engagement
bewusst klein gehalten. SSH-Daemons brechen bei zu vielen parallelen
Verbindungsversuchen regelmäßig Verbindungen ab oder lösen
Rate-Limiting aus, was zu False Negatives führt, nicht zu saubereren
Ergebnissen. -W 30 erzwingt zusätzlich eine Wartezeit zwischen
Verbindungsversuchen pro Thread.
Mit -f stoppt Hydra, sobald der erste gültige Treffer gefunden wurde,
sinnvoll bei -l mit -P. Bei Spraying-Läufen mit -L ist -f meistens
falsch, weil ja mehrere Accounts betroffen sein können und der Lauf
vollständig durchlaufen soll.
Output lesen
[22][ssh] host: 10.10.11.23 login: j.weber password: Summer2026!
Ein Treffer pro Zeile, Format host / login / password. Bei größeren
Spraying-Läufen gegen Listen mit hunderten Benutzernamen lohnt sich
-o ergebnis.txt, um Treffer direkt in eine Datei statt nur ins Terminal zu
schreiben.
Achtung
Hydra unterscheidet nicht zwischen “Account existiert nicht” und “Passwort
falsch”, wenn der Zielserver beide Fälle identisch beantwortet. Ein
SSH-Server mit UsePAM yes und entsprechend konfigurierten Fehlermeldungen
tut genau das. Verlass dich nicht blind auf die Trefferquote als Hinweis
auf gültige Accounts.
Erkennbarkeit
Jeder Hydra-Lauf gegen SSH erzeugt pro Versuch einen fehlgeschlagenen
Login in /var/log/auth.log (Debian/Ubuntu) bzw. /var/log/secure
(RHEL-Familie), typischerweise im Sekundentakt von derselben Quell-IP.
fail2ban mit einem auf sshd zugeschnittenen Jail erkennt dieses Muster
standardmäßig und sperrt die Quell-IP nach wenigen Fehlversuchen, was auch
der Hauptgrund ist, warum reines Brute-Force gegen gut konfigurierte,
exponierte SSH-Server in der Praxis selten zum Ziel führt. Spraying mit
langen Pausen zwischen Versuchen (-W) ist der direkte Versuch, genau
dieses Timing-Fenster zu umgehen.