Password Spraying über SSH: ein Passwort, viele Türen
Warum Password Spraying Lockout-Policies gezielt umgeht und wie der Angriff sich von klassischem Brute-Force unterscheidet.
Brute-Force testet viele Passwörter gegen einen Account. Password Spraying dreht das Verhältnis um: ein einziges, plausibles Passwort gegen viele Accounts, meistens mit deutlichem Zeitabstand zwischen den Versuchen. Beides landet unter MITRE ATT&CK als Credential-Access-Technik, aber die Logik dahinter ist eine andere, und genau das macht Spraying gegen Lockout-Policies so wirksam.
Warum Lockouts hier nicht greifen
Die meisten Account-Lockout-Policies zählen Fehlversuche pro Account: fünf
falsche Passwörter für j.weber, Account gesperrt. Das schützt zuverlässig
gegen klassisches Brute-Force gegen genau diesen einen Nutzer. Spraying
unterläuft diese Logik, weil pro Account oft nur ein oder zwei Versuche
anfallen, weit unter jeder Lockout-Schwelle. Die Breite liegt nicht in der
Anzahl der Passwörter, sondern in der Anzahl der Benutzernamen.
Woher die Benutzerliste kommt
Der Angriff steht und fällt mit einer realistischen userlist.txt. Typische
Quellen in einem Engagement:
- Namenskonventionen aus LinkedIn/Firmen-Website (
vorname.nachname,v.nachname) kombiniert mit der bekannten E-Mail-Domain. - Leaked Credential-Dumps aus früheren, unabhängigen Breaches derselben Domain.
- Enumeration über andere offene Dienste (z. B. SMTP
VRFY, wo noch aktiv).
Das plausible Passwort
Das Passwort selbst ist meistens kein Zufallswert aus rockyou.txt, sondern
abgeleitet aus dem, was Organisationen ihren Mitarbeitenden tatsächlich als
Erstpasswort oder Reset-Vorgabe mitgeben: Firmenname2026!,
Welcome123!, Varianten der aktuellen Jahreszeit oder Saison. Diese
Vorhersagbarkeit ist der eigentliche Hebel des Angriffs, nicht
Rechenleistung.
hydra -L userlist.txt -p 'Firma2026!' -t 4 -W 45 ssh://10.10.11.23
-t 4 und -W 45 halten den Lauf bewusst langsam und über mehrere Minuten
verteilt. Ein einzelner Fehlversuch pro Account, mit großem zeitlichem
Abstand zum nächsten, bleibt unter den meisten einfachen
Rate-Limiting-Schwellen.
Achtung
Ein einzelner Spraying-Lauf gegen eine Benutzerliste mit hunderten Namen erzeugt in Summe trotzdem hunderte fehlgeschlagene Logins von derselben Quell-IP. Für eine Erkennung, die über Accounts hinweg korreliert, ist das kein unauffälliger Angriff, nur einer, der klassische Pro-Account-Lockouts gezielt umgeht.
Erkennung: über Accounts hinweg korrelieren, nicht pro Account
Der entscheidende Unterschied zur Detektion von klassischem Brute-Force: Logs müssen über Benutzerkonten hinweg aggregiert werden, nicht pro Account betrachtet. Eine SIEM-Regel, die “mehr als N fehlgeschlagene SSH-Logins von einer Quell-IP innerhalb von M Minuten, über beliebig viele verschiedene Zielaccounts” auslöst, fängt Spraying zuverlässig ab, selbst wenn jeder einzelne Account nur einen Fehlversuch zeigt.
Härtung
Hardening-Tipp
Drei Maßnahmen, die zusammen wirken: Key-based Auth statt Passwörter
entzieht dem Angriff die Grundlage komplett. Wo das kurzfristig nicht
geht, verhindert ein organisationsweites Verbot vorhersagbarer
Reset-Passwörter (fester Firmenname, feste Jahreszahl) die eigentliche
Schwachstelle. Und IP-basiertes Rate-Limiting auf Netzwerkebene
(z. B. über fail2ban mit kurzer, aggressiver Fenstergröße oder ein
vorgeschaltetes WAF/Bastion-Host-Setup) schließt die Lücke, die reine
Account-Lockouts offen lassen.