Magic Quadrant™ für Privileged Access Management 2025: Netwrix zum vierten Jahr in Folge anerkannt. Laden Sie den Bericht herunter.

Plattform
Ressourcen­zentrumBlog
Laterale Bewegungen in die Cloud mit Pass-the-PRT

Laterale Bewegungen in die Cloud mit Pass-the-PRT

May 13, 2023

Angreifer verwenden eine Vielzahl von Taktiken, um sich seitlich auf lokalen Windows-Maschinen auszubreiten, einschließlich Pass-the-Ticket, Pass-the-Hash, Overpass-the-Hash und Golden Tickets Angriffen. Aber ähnliche Techniken sind auch effektiv, um sich seitlich von einem kompromittierten Arbeitsplatz zu verbundenen Cloud-Ressourcen zu bewegen und starke Authentifizierungsmaßnahmen wie MFA zu umgehen.

Dieser Artikel erklärt, wie Angreifer eine seitliche Bewegung zur Cloud mit einem Angriff namens Pass-the-PRT durchführen können.

Was ist ein PRT?

Ein primary refresh token (PRT) ähnelt einem Kerberos-Ticket-Granting-Ticket (TGT) — beide werden verwendet, um Single Sign-On (SSO) zu ermöglichen. Während jedoch ein TGT für Windows-Systeme gedacht ist, ermöglicht ein PRT das Anmelden an einem Windows 10-Gerät und dann den Zugriff auf Azure- und Microsoft 365-Ressourcen, ohne sich erneut authentifizieren zu müssen. Das Windows 10-Gerät muss entweder Azure-verbunden oder hybrid Azure-verbunden sein.

Hier ist ein Überblick darüber, wie dieser Prozess funktioniert: Wenn Sie sich anmelden, kommuniziert Ihr Windows 10-Gerät mit dem Windows 10 Cloud Authentication Provider. Sein Azure AD-Plug-in wird Ihre Anmeldeinformationen validieren und einen PRT sowie einen Sitzungsschlüssel zurückgeben. Ihr Gerät wird den Sitzungsschlüssel mit seinem Trusted Platform Module (TPM) neu verschlüsseln und dann sowohl den Schlüssel als auch den PRT in LSASS speichern. Dann, wenn Sie versuchen, sich über einen Browser, der SSO zu Azure unterstützt (entweder Edge oder Chrome mit der Windows 10-Erweiterung), bei einer Website anzumelden, wird der Cloud Authentication Provider ein PRT-Cookie für den Browser erstellen und dieses Cookie verwenden, um Tokens von Azure AD zu erhalten. Azure AD wird das PRT-Cookie validieren und Ihnen den Zugang ermöglichen.

(Wenn Sie tiefer eintauchen möchten, schauen Sie sich die Microsoft-Dokumentation an, Jairo Cadena’s Zusammenfassung von PRT und SSO, diesen Artikel über PRT von Dirk-jan Mollema und die ROADtoken- und RequestAADRefreshToken-Projekte auf GitHub an.)

Um zu überprüfen, ob Sie ein PRT haben, führen Sie diesen Befehl aus:

      Dsregcmd.exe /status
      

Im Abschnitt SSO State überprüfen Sie AzureAdPrt; wenn es auf YES gesetzt ist, haben Sie ein PRT.

Image

Wenn es auf NEIN gesetzt ist, verwenden Sie den folgenden Befehl, um zu überprüfen, ob Ihr Gerät mit Azure AD verbunden ist, da dies für die Ausstellung von PRTs erforderlich ist.

Image

Durchführung eines Pass-the-PRT-Angriffs

Wenn es einem Angreifer gelingt, das PRT und den Sitzungsschlüssel eines Benutzers zu erhalten, kann er PRT-Cookies erstellen, die ihm Zugang zu Webressourcen als dieser Benutzer gewähren und dabei eventuell vorhandene bedingte Zugriffsanforderungen umgehen. Ein PRT ist 14 Tage lang gültig, sodass sie bis zu 2 Wochen Zugang haben, es sei denn, das Konto wird deaktiviert.

Lassen Sie uns genau durchgehen, wie wir einen solchen Angriff durchführen können.

Voraussetzung: Wir haben ein Windows 10-Gerät kompromittiert, dem ein PRT ausgestellt wurde, und wir haben lokale Adminrechte auf diesem Computer.

Übersicht der Schritte:

  1. Extrahieren Sie das PRT aus LSASS und speichern Sie es für später.
  2. Extrahieren Sie den Sitzungsschlüssel.
  3. Entschlüsseln Sie den Sitzungsschlüssel und verwenden Sie ihn mit einem DPAPI-Masterkey. Wir haben darüber im Pass-the-Cookie-Angriff gelernt und werden denselben Ansatz verwenden.
  4. Mit dem entschlüsselten Session Key wird der abgeleitete Schlüssel und der Kontext ermittelt. Dies ist notwendig, um unser PRT-Cookie zu erstellen. Der abgeleitete Schlüssel wird verwendet, um das JWT für das Cookie zu signieren.
  5. Verwenden Sie auf jedem System das PRT, den abgeleiteten Schlüssel und den Kontext, um ein neues PRT-Cookie zu erstellen.
  6. Importieren Sie das Cookie in unsere Chrome-Browser-Sitzung. Jetzt werden wir als Benutzer auf Websites authentifiziert — ohne jemals ihr Passwort zu kennen oder irgendwelche MFA-Aufforderungen bearbeiten zu müssen.

Lassen Sie uns tiefer in jeden Schritt eintauchen.

Schritt 1. Extrahieren Sie das PRT aus LSASS.

Um die PRT-Daten für die kompromittierte Maschine zu sehen, verwenden wir den folgenden Befehl in Mimikatz Version 2.2.0 20200807 oder später:

      Privilege::debug
Sekurlsa::cloudap
      

Hier ist das Ergebnis. Wir werden den mit PRT gekennzeichneten Teil kopieren und für später speichern.

Image

Wenn Sie keine PRT-Daten sehen, überprüfen Sie, ob das Gerät Azure AD-joined ist, indem Sie den Befehl dsregcmd /status ausführen, wie zuvor gezeigt. Wenn AzureAdPrt auf YES gesetzt ist, überprüfen Sie, welche Version von Windows 10 auf dem Gerät läuft; in unserem Labor mussten wir auf mindestens Version 1909 aktualisieren, damit der Angriff funktioniert.

Image

Schritt 2. Extrahieren Sie den Proof of possession key.

Nun werden wir den Sitzungsschlüssel oder „ProofOfPosessionKey“, der unten hervorgehoben ist, extrahieren. Dieser ist verschlüsselt und wir müssen unsere DPAPI-Masterkeys verwenden, um ihn zu entschlüsseln.

Image

Schritt 3. Entschlüsseln Sie den Sitzungsschlüssel.

Nun werden wir unsere Privilegien auf SYSTEM erhöhen und unter dem Computerkontext ausführen, um den DPAPI-Masterkey verwenden zu können, um den Sitzungsschlüssel zu entschlüsseln:

      Token::elevate
Dpapi::cloudapkd /keyvalue:[PASTE ProofOfPosessionKey HERE] /unprotect
      
Image

Nun werden wir zwei Werte kopieren. Der erste ist der Kontextwert:

Image

Und der zweite ist der abgeleitete Schlüsselwert:

Image

Schritt 4. Generieren Sie PRT-Cookies.

Wir können den Rest dieses Angriffs von jeder Arbeitsstation aus durchführen. Um PRT-Cookies zu generieren, führen wir einfach den folgenden Befehl aus:

      Dpapi::cloudapkd /context:[CONTEXT] /derivedkey:[DerivedKey] /Prt:[PRT]
      

Die Ausgabe wird ein signiertes PRT-Cookie nach Signatur mit Schlüssel. Kopieren Sie diesen Text.

Image

Schritt 5. Fügen Sie das PRT-Cookie in eine Browsersitzung ein.

Starten Sie Google Chrome im Inkognito-Modus und navigieren Sie zu https://login.microsoftonline.com. Wenn Sie nach Ihren Anmeldedaten gefragt werden, klicken Sie irgendwo auf der Seite mit der rechten Maustaste und wählen Sie Inspect um die Entwicklertools für Chrome zu öffnen.

Gehen Sie zum Register „Application“, doppelklicken Sie auf Cookies, und klicken Sie auf login.microsoftonline.com. Im rechten Bereich klicken Sie in der oberen Aktionsleiste auf den Kreis mit dem diagonalen Strich, um alle vorhandenen Cookies zu löschen.

Dann doppelklicken Sie auf eine leere Zeile in der Tabelle und fügen Sie das folgende neue Cookie hinzu:

      Name: x-ms-RefreshTokenCredential
Value: [Paste your output from above]
HttpOnly: Set to True (checked)

      

Lassen Sie andere Felder auf ihren Standardwerten.

Image

Aktualisieren Sie die Seite und stellen Sie sicher, dass das Cookie nicht verschwunden ist. Wenn es verschwunden ist, haben Sie möglicherweise einen Fehler gemacht und müssen den Vorgang wiederholen.

Navigieren Sie erneut zu https://login.microsoftonline.com und Sie sollten automatisch als der kompromittierte Benutzer angemeldet werden:

Image

Schutz vor Pass-the-PRT-Angriffen

Pass-the-PRT-Angriffe sind schwer zu erkennen, da sie legitime SSO-Prozesse missbrauchen. Eine nützliche Strategie ist die Verwendung von Endpoint Protection-Software, die den Einsatz von Mimikatz erkennen kann, welches in der ersten Phase des Angriffs ausgeführt wird.

Dennoch ist Prävention besser als Erkennung. Beachten Sie, dass Pass-the-PRT eine laterale Bewegungstechnik ist; um sie auszuführen, muss der Eindringling bereits Zugang zu einer Maschine erlangt haben. Mit einem Werkzeug wie dem Netwrix Active Directory Security Solution, können Sie verhindern, dass Übeltäter überhaupt erst einen Fuß in Ihre Umgebung setzen.

Darüber hinaus erfordert dieser Angriff lokale Administrationsrechte. Durch die Verwendung von Endpoint-Management-Software wie Netwrix Endpoint Policy Manager entziehen Sie den Benutzern diese umfangreichen Rechte, ohne deren Produktivität zu beeinträchtigen. Zusätzlich können Sie verhindern, dass Computer schädliche Software starten und sogar ihre Browsereinstellungen sichern.

Teilen auf

Erfahren Sie mehr

Über den Autor

Ein mann in einer blauen jacke und einem karierten hemd lchelt fr die kamera

Jeff Warren

Chief Product Officer

Jeff Warren überwacht das Netwrix Produktportfolio und bringt über ein Jahrzehnt Erfahrung im sicherheitsorientierten Produktmanagement und der Entwicklung mit. Bevor er zu Netwrix kam, leitete Jeff die Produktorganisation bei Stealthbits Technologies, wo er seine Erfahrung als Software-Ingenieur nutzte, um innovative, unternehmensweite Sicherheitslösungen zu entwickeln. Mit einem praktischen Ansatz und einem Talent für die Lösung schwieriger Sicherheitsherausforderungen konzentriert sich Jeff darauf, praktikable Lösungen zu schaffen, die funktionieren. Er hat einen BS in Informationssystemen von der University of Delaware.