Pass-the-Key (PtK), Overpass-the-Hash (OtH)
„Overpass-the-Hash” und „Pass-the-Key” Angriffe zielen darauf ab, den Kerberos Encryption Key (PtK) oder den NTLM-Hash (OtH) des Benutzers zu stehlen, um damit Kerberos-Tickets anzufordern. Besonders in Netzwerken, in denen das NTLM-Protokoll deaktiviert und nur Kerberos als Authentifizierungsprotokoll erlaubt ist, sind diese Angriffe sehr nützlich.
Schauen wir uns zunächst einmal den regulären Ablauf einer Kerberos-Authentifizierung an.
Kerberos Ticketausstellung
In diesem Beispiel loggt sich der Benutzer „whitehat.de\user1” mit seinen Domänen-Zugang an seinem Computer ein. Hierbei speichert der „Local Security Authority Subsystem Service” (lsass.exe) entsprechende Kerberos-Geheimnisse für den Benutzer ab. Ein Kerberos Ticket existiert zu diesem Zeitpunkt noch nicht.
-
[AS Anfrage]: Nachdem der Benutzer versucht, auf eine Ressource der Domäne (Fileserver) zuzugreifen, fragt der Kerberos Provider (kerberos.dll) beim Domain Controller (KDC / AS) ein sogenanntes Ticket Granting Ticket (TGT) an.
-
[AS Antwort]: War die Anfrage erfolgreich, erhält der Client ein Ticket Granting Ticket.
-
TGS: verschlüsselt mit Secret TGS-Key
-
Session-Key: verschlüsselt mit Secret-Key des Clients
-
-
[TGS Anfrage]: Hiermit kann der Client nun eine Anfrage an den Ticket Granting Service (TGS) stellen und ihm mitteilen, auf welche Ressource er zugreifen möchte – in diesem Beispiel auf den genannten Fileshare.
-
TimeStamp: verschlüsselt mit TGS Session-Key
-
-
[TGS Antwort]: War die Anfrage erfolgreich, erhält der Client ein sogenanntes Service Ticket
-
Session Key: verschlüsselt mit Secret-Key des Clients
-
Ticket für Zielserver: verschlüsselt mit SecretKey des Zielservers
-
-
[Zielserver Anfrage]: Nun kann der Client mittels Service Ticket die gewünschte Ressource beim Zielserver anfragen
-
TimeStamp: verschlüsselt mit Session-Key
-
Service Ticket
-
-
[Zielserver Antwort]: Gegenseitige Authentifizierung abgeschlossen.
Overpass-the-Hash (OtH)
Gelangt ein Angreifer in den Besitz des NTLM-Hashes, z. B. indem er die Kerberos Geheimnissen ausliest, kann er diesen Hash benutzen, um damit ein Ticket Granting Ticket für die gestohlene Identität anzufragen. Hiermit kann der Angreifer dann – wie nach einer regulären Authentifizierung – ein Service Ticket ausstellen lassen, um anschließend auf entsprechend Ressourcen des Zielservers zuzugreifen.
Overpass-the-Hash Angriff durchführen
Auch hierbei muss mimikatz zunächst mit Debug Privilegien ausgestattet werden:
privilege::debug
Anschließend können Kerberos Geheimnisse (NTLM-Hash, Encryption Keys ..) mit folgendem Befehl ausgelesen werden:
sekurlsa::ekeys
Nun kann der Overpass-the-Hash Angriff mit folgendem Befehl ausgeführt werden:
sekurlsa::pth /user:BENUTZERNAME /domain:DOMÄNE /ntlm:NTLM-HASH
In dem oben genannten Beispiel also konkret:
sekurlsa::pth /user:Administrator /domain:whitehat.de /ntlm:557ef604cb1864d3a6d1d5f7374c12dc
Daraufhin öffnet sich eine cmd.exe Session im Kontext der gestohlenen Identität. Diese kann man dann verwenden, um z. B. auf entsprechende Ressourcen zuzugreifen.
Hinweis: Windows verwendet automatisch Kerberos, wenn ein Domänen-Hostname und NTLM, wenn eine IP-Adresse angesprochen wird. Somit kann der Benutzer beim Anfragen von Domänen Ressourcen steuern, ob er gerade einen Pass-the-Hash (PtH) oder Overpass-the-Hash (OtH) durchführen möchte.
Pass-the-Key (PtK)
Bei Pass-the-Key (PtK) sind Aufbau und Vorgehensweise fast identisch zu Overpass-the-Hash (OtH) Angriffen. Der Unterschied besteht darin, dass bei PtK statt des NTLM-Hash, der Kerberos Encryption Key gestohlen und zur Authentifizierung verwendet wird.
Pass-the-Key Angriff durchführen
Der Angriff erfolgt ähnlich wie beim Overpass-the-Hash (OtH) Angriff. Zunächst muss mimikatz mit Debug-Privilegien ausgestattet werden:
privilege::debug
Anschließend kann der Angriff mit folgendem Befehl erfolgen:
sekurlsa::pth /user:BENUTZERNAME /domain:DOMÄNE /aes256:AES256_KEY
In dem vorherigen Beispiel würde der Befehl also konkret wie folgt aussehen:
sekurlsa::pth /user:Administrator /domain:whitehat.de /aes256:4c76f05ccdd2f967699f43499c8c83c0d870d5de7717ed8d91799be083fc2291