Haftungsausschluss: Dieser Beitrag dient ausschließlich Bildungs- und Informationszwecken. Die hier gezeigten Informationen und Angriffe dürfen niemals für illegale Zwecke oder auf Systemen, für die keine explizite Erlaubnis eingeräumt wurde, verwendet werden. Solche Handlungen können gegen geltende Gesetze verstoßen und schwerwiegende rechtliche Konsequenzen nach sich ziehen.

Zusammenfassung

Dieses SecCore Essential fasst wichtige passwortbezogene Konfigurationen zusammen. Es gilt als implementiert, wenn die folgenden Bedingungen erfüllt sind:

  • Eine on-premise Passwortrichtlinie mit mindestens den folgenden Einstellungen muss eingestellt sein:
    • Minimum password length: 12 characters
    • Password must meet complexity requirements: Enabled
    • Enforce password history: 24 passwords remembered
    • Store passwords using reversible encryption: Disabled
    • Account lockout threshold: 5 invalid logon attempts
  • Eine Cloud-Passwortrichtlinie mit mindestens den folgenden Einstellungen ist vorhanden:
    • Minimum password length: 12 characters
    • Multi Factor Authentication required for all users
  • Ein Verfahren zur Vergabe eindeutiger lokaler Administrator- bzw. Root-Passwörter für jedes einzelne Gerät ist etabliert.
  • Es existieren keine Geräte mit konfigurierten Standardpasswörtern im Netzwerk.

Einleitung

Passwörter sind der Schlüssel zur Sicherheit von Systemen. Insbesondere in on-premise Umgebungen, in denen Multi-Faktor-Authentifizierung (MFA) nicht ohne Weiteres durchgesetzt werden kann, müssen Passwörter sicher generiert und gespeichert werden. Ein kompromittiertes Passwort führt in der Regel zur Übernahme eines Kontos oder Systems, was Angreifern ermöglicht, sich innerhalb des Netzwerks weiter zu festigen.

Externe Dienste sind ständig der Gefahr von Brute-Force-Angriffen (mehrfache Passwortversuche gegen ein einzelnes Konto) oder Password-Spraying-Angriffen (ein einzelnes Passwort gegen mehrere Konten) ausgesetzt, was die Durchsetzung von MFA zwingend erforderlich macht.

Häufige Angriffsvektoren

Die folgenden Abschnitte beschreiben häufige Angriffsvektoren auf den Umgang mit schwachen Passwörtern.

Brute-Force-Angriffe

Ein Brute-Force-Angriff ist eine einfache Angriffsmethode, bei der Angreifer versuchen, durch automatisiertes Ausprobieren zahlreicher verschiedener Passwörter Zugriff auf ein bestimmtes Konto zu erhalten. Dieser Angriff kann online (Testen von Passwörtern gegen ein aktives System) oder offline (Versuch, einen Passwort-Hash zu entschlüsseln) durchgeführt werden.

Online Brute-Force-Angriffe können für externe Systeme eine Bedrohung darstellen, wenn keine Begrenzung der Anfragen (Rate-Limiting) implementiert ist. In einer sicher konfigurierten Active Directory Domäne sollte dies jedoch aufgrund der Kontosperrrichtlinie kein Problem sein, da Konten gesperrt werden, sobald eine bestimmte Anzahl falscher Passworteingaben überschritten wird.

Für einen Offline-Angriff muss ein Angreifer bereits über verschlüsselte Daten oder Passwort-Hashes verfügen. Diese können durch verschiedene andere Angriffe erlangt werden, wie zum Beispiel durch Kerberoasting.

Um Brute-Force-Angriffe effizienter zu gestalten, verwenden Angreifer in der Regel benutzerdefinierte Wortlisten, die speziell auf das Zielkonto oder System zugeschnitten sind. Beispielsweise kann das Tool CeWL1 verwendet werden, um gängige Wörter von einer Firmenwebseite zu extrahieren und daraus eine Liste möglicher Passwörter zu erstellen.

Ein Brute-Force Angriff

Password Spraying

Im Gegensatz zu einem Brute-Force-Angriff funktioniert Password-Spraying genau umgekehrt: Ein Angreifer testet ein einziges Passwort bei mehreren Accounts. Dadurch werden Kontosperrrichtlinien umgangen und die Methode kann schnell und effizient durchgeführt werden. Dieser Angriff erfolgt in der Regel online, da offline ein Brute-Force-Angriff effizienter ist.

Password Spraying

Passwort Wiederverwendung

Eines der häufigsten Probleme im Zusammenhang mit Passwörtern ist deren Wiederverwendung. Wird ein Passwort für mehr als einen Dienst oder ein Konto genutzt, kann ein Angreifer dies ausnutzen, um alle Komponenten, die dasselbe Passwort verwenden, gleichzeitig zu kompromittieren.

Wenn mehrere Computer dasselbe lokale Administratorpasswort verwenden, kann ein Angreifer, der auf einem System Administratorrechte erlangt, sich problemlos auch bei allen anderen Rechnern mit demselben Passwort anmelden. Das lokale Administratorpasswort muss dabei nicht einmal geknackt werden, da der NTLM-Passworthash bei identischen Passwörtern immer derselbe ist.

Dasselbe gilt für Benutzerkonten: Wenn ein Benutzer mit geringen Rechten dasselbe Passwort wie ein Benutzer mit höheren Rechten verwendet, kann auch das Konto mit höheren Rechten kompromittiert werden. Selbst wenn keine offensichtlichen Verbindungen zwischen diesen Konten bestehen, kann Password Spraying eingesetzt werden, um Zugang zu allen Konten zu erlangen, die dasselbe Passwort verwenden.

Das Gleiche gilt für private Konten: Wird das Passwort eines Benutzers von einer Webseite entwendet und dasselbe Passwort auch für Online-Banking- oder E-Mail-Dienste verwendet, können diese Dienste ebenfalls kompromittiert werden, sofern keine MFA eingesetzt wird.

Standardpasswörter

Viele Geräte und Dienste sind mit öffentlich bekannten Standardpasswörtern konfiguriert. Diese werden manchmal für die Ersteinrichtung benötigt und sollten sofort nach der Installation des Systems geändert werden.

Wenn dies jedoch nicht erfolgt, kann ein Angreifer nach Standardpasswörtern für Verwaltungs- oder Konfigurationsoberflächen suchen und diese verwenden, um sich bei den entsprechenden Systemen anzumelden. Dadurch kann er unter Umständen sensible Informationen auslesen, Konfigurationen ändern oder bösartige Firmware-Dateien bzw. Softwarepakete hochladen.

Angriffsszenario

Dieser Abschnitt soll veranschaulichen, wie Angreifer schwache Passwortkonfigurationen ausnutzen, um sich zwischen Systemen zu bewegen. Der Aufbau dieses Angriffsszenarios ist wie folgt:

  • Eine Netzwerksegmentierung ist nicht korrekt eingestellt.
  • Ein Angreifer is bereits im Netzwerk und hat gültige Zugangsdaten
  • Es wurde keine Rücksicht auf OPSEC genommen, der direkteste Ansatz wurde gewählt

Da die Angreifer bereits einen Client kompromittiert haben, können sie diesen Zugriff nutzen, um die Passwortrichtlinie der Active Directory Domäne mit NetExec2 auszulesen: Passwortrichtlinie Wie im Screenshot zu erkennen ist, ist die Passwortrichtlinie sehr schwach, da sie kurze Passwörter und keine Komplexitätsanforderungen verlangt. Zudem sind keine Sperrrichtlinien aktiv, was erleichtert, Passwörter zu erraten. Mit diesem Wissen kann der Angreifer Password-Spraying-Techniken anwenden. Ein Beispiel hierfür ist das Testen von Benutzernamen als Passwörter, um weitere Konten zu kompromittieren. Benutzername als Passwort Nach einigen Versuchen gelingt es dem Angreifer, ein weiteres Benutzerkonto zu kompromittieren: t2claire@lab.local. Dieses Konto verfügt über Administratorrechte auf dem System client1.lab.local, was durch die (Pwn3d!) Meldung von NetExec angezeigt wird. Mit diesen Rechten können die SAM- und SYSTEM-Hives der Registry ausgelesen werden, welche die Passwort-Hashes aller lokalen Konten enthalten: SAM Dump Da keine Passwortlösung wie Windows LAPS3 im Einsatz ist, können die Passwort-Hashes im gesamten Netzwerk getestet werden, um weitere Systeme wie srv1.lab.local zu kompromittieren: Lateral Movement

Gegenmaßnahmen

Wenn die hier beschriebenen Sicherheitsmaßnahmen umgesetzt sind, ist es nicht mehr möglich, Benutzernamen als Passwörter zu erraten: Mitigation Selbst wenn ein Client kompromittiert wird, kann ein Angreifer bei Einsatz einer Passwortlösung wie Windows LAPS nicht dieselben Passwort-Hashes verwenden, um weitere Systeme zu kompromittieren: LAPS