Gefahren und Vermeidung von Pass-The-Hash Angriffen

Pass-The-Hash Grundlagen

Bevor es richtig losgeht mit praktischen Angriffen mittels Pass-The-Hash muss ich erst erläutern wie Kennwörter heute gespeichert werden, und wie das Windows erledigt. Passwörter werden heutzutage meistens nicht mehr direkt im Klartext gespeichert. Es haben sich Möglichkeiten entwickelt Passwörter ganz anders ab zu speichern. Man möchte nämlich, mit sogenannten Hashingverfahren, bestimmten Gefahren aus dem Weg gehen. Dabei handelt es sich beispielsweise um die Offenlegung eines Kennwortes gegenüber einem Administrator.

Passwort Hash

Es wird also aus einem Eingabetext oder einem Passwort ein Hash generiert. Dieser Hash benötigt nun zwei Eigenschaften:

  1. Jede neue Eingabe hat eine neue komplett andere und zufällige Ausgabe.
  2. Zwei unterschiedliche Eingaben dürfen nie zur gleichen Ausgabe führen.

Prominente Beispiele sind SHA2 oder MD5. Windows hingegen verwendet NTLM und je nachdem welche Windowsversion im Einsatz ist, irgendeine Variante davon, wie etwa NTLMv2.

Authentifzierung in Windows

Sobald ein Benutzer sein Kennwort an der Windowsanmeldung eintippt, wird das Passwort mittels NTLM gehasht. Dieser Hash wird in Windows an einer bestimmten Stelle gespeichert. Er ist für einen lokalen Administrator auslesbar. Was ist aber das Problem an der Sache? Theoretisch wäre das nicht schlimm. Windows liefert aber die Möglichkeit des sogenannten Single-Sign-On. Das bedeutet, dass der Hashwert nun auch für die Anmeldung an anderen Diensten verwendet werden kann. Nicht das Kennwort! Der Hash! Also reicht Windows den Hash einfach weiter an den Dienst, an dem sich der User anmelden müsste. Auf Englisch: “to pass the hash”

Der User merkt nichts von einem Login im Hintergrund und wird bei allen möglichen Diensten angemeldet.

Gefahr von Pass-The-Hash

Das folgende gezeichnete Schaubild soll nun die Gefahr von Pass-The-Hash verdeutlichen.

Pass-The-Hash Angriff
Pass-The-Hash Angriff

Wir befinden uns links oben  am Laptop “interner Angreifer“. Dieser hat sich gut vorbereitet und möchte möglichst viele Berechtigungen im Netz haben. Er will DNS und/oder Domänen Controller verwalten können. Auf seinem Laptop muss er nun an die aktuellen Hashes kommen. Dafür eignet sich die Software mimikatz. Leider findet der Angreifer keine administrativen Hashes, also hat sich nie ein Administrator eingeloggt, und das wird wohl auch keiner ohne trifftigen Grund unternehmen. Also lässt er den User Help Desk (UHD im Bild) dies erledigen, denn er simuliert einen Fehlerfall und möchte einen Login von einem UHD Mitarbeiter provozieren (Schritt 1).

Nach dem Login (Schritt 2) des UHD Mitarbeiters wird dieser auf dem Rechner vom Angreifer gespeichert (Schritt 3). Mit mimikatz kann der Angreifer den Hash auslesen und an irgendeinen Server weiterreichen. Irgendwo hat der UHD Mitarbeiter eventuell Rechte, an dem auch ein Server Admin Rechte hat (Schritt 4). Auf dem Rechner Server 1 hat Pass-The-Hash funktioniert und es können dort mit mimikatz neue Hashes gelesen werden. Darunter der Hash von ADMIN1. Mit diesem logt sich der Angreifer nun an Server 4 ein (Schritt 5). Dort erst wird der Angreifer mit mimikatz wieder fündig. Die Hashes weiterer Administratoren ermöglichen den Login zu DNS und Domänen Controller Server (Schritt 6 und 7).

Jetzt kann er den DNS Server manipulieren, so dass jeder Benutzer, der intern arbeitet und das Onlinebanking Portal der Firma nutzen möchte, zuerst seine Logindaten beim Angreifer loswird, bevor er überhaupt zur Bank kommt. Wie das funktioniert ist aber einen eigenen Blogeintrag wert, weshalb ich dies lediglich verlinken möchte (DNS Poisoning).

Blog aktiv unterstützen

Vermeiden von Pass-The-Hash

  1. NTLMv2 erzwingen, aber Vorsicht. Es gibt in jeder IT Umgebung antike Systeme, die ohne vorherige Version nicht mehr funktionieren. Ähnlich wie es COBOL Systeme gibt, die noch sehr aktiv sind (Mehr zu NTLM)
  2. Keine lokalen Administratorrechte für normale Benutzer erlauben, denn diese haben dadurch das Recht die Hashes zu lesen.
  3. Speicherung von NTLM Hashes verhindern, aber wie effektiv das ganze ist, kann ich nicht beurteilen.
  4. Nur so viele Administratoren einrichten wie nötig, um die Angriffsfläche zu verkleinern.
  5. Nur so viele Rechte an Administratoren vergeben wie nötig. Keine personalisierten, sondern kategorisiert nach Aufgabenstellung.
  6. PAM – Priviliged Account Management Lösungen einsetzen wie zum Beispiel Thycotic Secret Server.

Gerade der letzte Punkt kann sehr viel ausrichten. Ein Login beispielsweise würde nur noch über den Drittanbieter laufen. Dieser überwacht wer, wann, auf welches System Zugriff hatte. Nach getaner Arbeit wird das verwendete Passwort an diesem Konto zurückgesetzt. Somit kann ein Angreifer reichlich Hashes sammeln, diese werden aber ungültig sein.

Weiterführendes

Wer mehr darüber erfahren möchte ist herzlich eingeladen einen Mitschnitt von der BlackHat aus 2014 an zu schauen. Hier geht es unter anderem auch um Golden Tickets, was aber ein eigenes Thema ist.

Artikel teilen:

Kommentar verfassen