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:

  • -l ein einzelner, bekannter Benutzername. -L userlist.txt für mehrere.
  • -p ein einzelnes Passwort, -P wordlist.txt für eine Liste.
  • -l mit -P ist klassisches Brute-Force: ein Nutzer, viele Passwörter.
  • -L mit -p dreht 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.

#hydra#ssh#brute-force