Umgehen der MFA mit dem Pass-the-Cookie-Angriff
Die Multi-Faktor-Authentifizierung (MFA) ist ein hervorragender Weg, um die Sicherheit sowohl vor Ort als auch in der Cloud zu erhöhen. Mit MFA müssen Benutzer bei der Anmeldung nicht nur ihre Benutzer-ID und ihr Passwort angeben, sondern auch einen weiteren Authentifizierungsfaktor, wie zum Beispiel einen an ihr Telefon gesendeten Code. Dieser Prozess verringert die Angriffsfläche, indem er verhindert, dass Gegner mit gestohlenen Benutzerdaten sich anmelden können.
Allerdings ist MFA keine Allheilmittel für Cybersicherheit. Insbesondere können Angreifer den Pass-the-Cookie-Angriff nutzen, um Browser-Cookies zu verwenden, um MFA zu umgehen und Zugang zu Cloud-Diensten zu erhalten. In diesem Beitrag werden wir untersuchen, wie dieser Angriff funktioniert und die besten Sicherheitspraktiken zur Verteidigung dagegen.
Browser-Cookies ermöglichen es Webanwendungen, Benutzerauthentifizierungsinformationen zu speichern, sodass ein Benutzer angemeldet bleibt, anstatt jedes Mal, wenn er zu einer neuen Seite auf einer Website navigiert, seinen Benutzernamen und sein Passwort eingeben zu müssen. (Dies ist ähnlich wie bei der Kerberos- oder NTLM-Authentifizierung, bei der ein Artefakt lokal auf dem System des Benutzers gespeichert und für zukünftige Authentifizierungen verwendet wird.)
Wie der Pass the Cookie-Angriff funktioniert
Wenn MFA aktiviert ist, muss der Benutzer einen zusätzlichen Nachweis seiner Identität erbringen, beispielsweise indem er eine Push-Benachrichtigung auf seinem mobilen Gerät akzeptiert. Nachdem der Benutzer die MFA bestanden hat, wird ein Browser-Cookie erstellt und für Ihre Websitzung gespeichert.
Während Cookies die Benutzererfahrung vereinfachen, bergen sie eine offensichtliche Schwachstelle: Wenn es jemandem gelingen würde, die richtigen Browser-Cookies zu extrahieren, könnte er sich als ein anderer Benutzer in einer völlig separaten Browsersitzung auf einem anderen System authentifizieren. Kurz gesagt, sie könnten das Cookie nutzen, um die Authentifizierung über MFA zu umgehen. (Dies ist vergleichbar mit dem Pass the Hash-Angriff in Active Directory.)
Wie ein Angreifer Browser-Cookies extrahieren kann.
Lassen Sie uns anhand des Beispiels des Google Chrome-Browsers untersuchen, wie ein Angreifer Cookies extrahieren könnte. Chrome speichert Cookies an folgendem Ort in einer SQLite-Datenbank:
%localappdata%GoogleChromeUser DataDefaultCookies
The cookies for a given user are encrypted using keys tied to that user via the Microsoft Data Protection API (DPAPI). To access the cookie database and decrypt the cookies, an adversary can use the following mimikatz command:
dpapi::chrome /in:"%localappdata%GoogleChromeUser DataDefaultCookies" /unprotect
Alternatively, they could execute the following from the command line:
mimikatz.exe privilege::debug log "dpapi::chrome /in:%localappdata%googlechromeUSERDA~1defaultcookies /unprotect" exit
Die Verwendung einer dieser Optionen stellt die Browser-Cookies bereit:
Szenario des Pass-the-Cookie-Angriffs
Lassen Sie uns durchgehen, wie ein Pass-the-Cookie-Angriff in einem realen Szenario funktionieren würde.
Nehmen wir an, dass der Benutzer Tobias ein IT-Administrator ist. Eine der Webanwendungen, die Tobias regelmäßig verwendet, ist das Microsoft Azure-Verwaltungsportal. Da MFA aktiviert ist, muss Tobias beim Einloggen in Azure einen Code aus der Authenticator-App auf seinem Mobilgerät angeben, wie unten gezeigt.
Also, solange niemand sein iPhone stiehlt, sollten seine Azure-Anmeldeinformationen sicher sein, richtig? Nicht so schnell. Nehmen wir an, Tobias hat auf eine Phishing-E-Mail geklickt oder sein System wurde auf andere Weise kompromittiert, und jetzt kann ein Angreifer Code im Benutzerkontext von Tobias ausführen. Tobias ist KEIN Administrator auf seinem Laptop, also sollte der Schaden begrenzt sein, richtig?
Lassen Sie uns sehen.
Schritt 1. Extrahieren Sie die Cookies.
Wie wir zuvor gesehen haben, müssen wir nur diesen Befehl ausführen, wenn wir als Tobias laufen, um Tobias’ Browser-Cookies zu erhalten:
mimikatz.exe privilege::debug log "dpapi::chrome /in:%localappdata%googlechromeUSERDA~1defaultcookies /unprotect" exit
In diesem Fall kümmern wir uns um die Azure-Authentifizierungscookies, einschließlich ESTSAUTH, ESTSAUTHPERSISTENT und ESTSAUTHLIGHT. Diese Cookies sind verfügbar, weil Tobias in letzter Zeit aktiv auf Azure war:
Schritt 2. Übergeben Sie die Cookies.
Es könnte scheinen, dass wir uns nicht in Webanwendungen wie Azure als Tobias einloggen können, da wir weder seine Benutzer-ID noch sein Passwort kennen und auch keinen Zugriff auf sein Mobilgerät haben.
Aber da wir seine Cookies haben, müssen wir sie nur in eine andere Sitzung übertragen, um Tobias' Konto zu übernehmen. Das ist einfach genug: Wir öffnen einfach Chrome auf einem anderen Server und verwenden die „Untersuchen“-Schnittstelle, um ein Cookie einzufügen.
2.1. Zuerst untersuchen wir die gestohlene Sitzung:
2.2. Als Nächstes navigieren wir zu Application > Cookies. Wie Sie sehen können, enthalten die aktuellen Cookies nicht den ESTSAUTH oder ESTSAUTHPERSISTENT:
2.3. Wir fügen das ESTSAUTH oder das ESTSAUTHPERSISTENT Cookie hinzu. (Wenn ESTSAUTHPERSISTENT verfügbar ist, wird es bevorzugt, da es durch die Option „Angemeldet bleiben“ generiert wird.)
2.4. Wir aktualisieren die Seite und sind nun als Tobias bei Azure angemeldet — keine MFA erforderlich!
Risikominderung
Pass-the-Cookie-Angriffe stellen aus mehreren Gründen eine ernsthafte Bedrohung dar. Erstens erfordert ein Pass-the-Cookie-Angriff keine administrativen Rechte; alle Benutzer haben Zugriff darauf, ihre eigenen Browser-Cookies zu lesen und zu entschlüsseln, unabhängig davon, ob sie privilegierte Rechte an ihren Arbeitsstationen haben. Zweitens muss der Angreifer weder die Benutzer-ID noch das Passwort des kompromittierten Kontos kennen, sodass dieser Angriff mit minimalen Informationen möglich ist. Drittens konnten wir Pass-the-Cookie-Angriffe sogar nach dem Schließen des Browsers erfolgreich durchführen.
Eine Möglichkeit, das Risiko des Cookie-Diebstahls zu minimieren, besteht darin, die Cookies der Benutzer häufiger zu löschen. Dies zwingt die Benutzer jedoch dazu, sich jedes Mal neu zu authentifizieren, wenn sie eine Website aufrufen, was sie frustrieren und dazu führen wird, dass sie es vermeiden, ihren Browser zu schließen, um nicht ihre Cookies zu verlieren.
Eine bessere Strategie ist es, Authentifizierungsüberwachung und Bedrohungserkennungsprodukte zu implementieren. Netwrix Threat Manager kann umgehend Konten erkennen, die auf unerwartete Weise verwendet werden, sodass Sie bösartige Aktivitäten schnell unterbinden können.
FAQs
Teilen auf
Zugehörige Cybersecurity-Angriffe anzeigen
Missbrauch von Entra ID-Anwendungsberechtigungen – Funktionsweise und Verteidigungsstrategien
AdminSDHolder-Modifikation – Funktionsweise und Verteidigungsstrategien
AS-REP Roasting Attack - Funktionsweise und Verteidigungsstrategien
Hafnium-Angriff - Funktionsweise und Verteidigungsstrategien
DCSync-Angriffe erklärt: Bedrohung für die Active Directory Security
Pass-the-Hash-Angriff
Verständnis von Golden Ticket-Angriffen
Angriffe auf Group Managed Service Accounts
DCShadow-Angriff – Funktionsweise, Beispiele aus der Praxis & Verteidigungsstrategien
ChatGPT Prompt Injection: Risiken, Beispiele und Prävention verstehen
NTDS.dit-Passwortextraktionsangriff
Kerberoasting-Angriff – Funktionsweise und Verteidigungsstrategien
Pass-the-Ticket-Attacke erklärt: Risiken, Beispiele & Verteidigungsstrategien
Password-Spraying-Angriff
Angriff zur Extraktion von Klartext-Passwörtern
Zerologon-Schwachstelle erklärt: Risiken, Exploits und Milderung
Ransomware-Angriffe auf Active Directory
Active Directory mit dem Skeleton Key-Angriff entsperren
Laterale Bewegungen: Was es ist, wie es funktioniert und Präventionsmaßnahmen
Man-in-the-Middle (MITM)-Angriffe: Was sie sind & Wie man sie verhindert
Silver Ticket Attack
4 Angriffe auf Dienstkonten und wie man sich dagegen schützt
Warum ist PowerShell so beliebt bei Angreifern?
Wie Sie Malware-Angriffe daran hindern, Ihr Geschäft zu beeinträchtigen
Kompromittierung von SQL Server mit PowerUpSQL
Was sind Mousejacking-Angriffe und wie kann man sich dagegen verteidigen
Diebstahl von Anmeldeinformationen mit einem Security Support Provider (SSP)
Rainbow-Table-Attacken: Wie sie funktionieren und wie man sich dagegen verteidigt
Ein umfassender Blick auf Passwortangriffe und wie man sie stoppt
LDAP-Aufklärung
Was ist Credential Stuffing?
Golden SAML-Angriff