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.

#ssh#password-spraying#mitre-t1110.003