
Rutas de explotación que te permiten (mal)usar los Privilegios de Windows para elevar tus derechos dentro del SO.
La idea es "traducir" los privilegios del sistema operativo Windows a una ruta que lleve a:
Los privilegios se enumeran y explican en: https://learn.microsoft.com/en-us/windows/win32/secauthz/privilege-constants
Si el objetivo se puede alcanzar de múltiples formas, la prioridad es:
Puede verificar sus propios privilegios con whoami /priv. Los privilegios deshabilitados son tan válidos como los habilitados. Lo único importante es si tiene el privilegio en la lista o no.
Nota 1: Siempre que la ruta de ataque termine con la creación de un token, puede asumir que el siguiente paso es crear un nuevo proceso usando dicho token y luego tomar el control del sistema operativo.
Nota 2:
a. Para llamar directamente a NtQuerySystemInformation()/ZwQuerySystemInformation(), puede encontrar los privilegios necesarios aquí.
b. Para NtSetSystemInformation()/ZwSetSystemInformation(), los privilegios necesarios se enumeran aquí.
Nota 3: Me centro únicamente en el sistema operativo. Si un privilegio funciona en AD pero no en el propio sistema operativo, lo describo como no utilizado en el sistema operativo. Sería bueno que alguien profundizara en escenarios orientados a AD.
Siéntase libre de contribuir y/o discutir las ideas presentadas.
| Privilegio | Impacto | Herramienta | Ruta de ejecución | Comentarios |
|---|---|---|---|---|
SeAssignPrimaryToken | Admin | Herramienta de terceros | "Permitiría a un usuario suplantar tokens y escalar privilegios a nt system usando herramientas como potato.exe, rottenpotato.exe y juicypotato.exe" | Gracias a Aurélien Chalot por la actualización. Intentaré reformularlo con una receta más clara pronto. |
SeAudit | Amenaza | Herramienta de terceros | Escribir eventos en el registro de eventos de seguridad para engañar a la auditoría o sobrescribir eventos antiguos. | Es posible escribir eventos propios mediante la API Authz Report Security Event.- ver PoC por @daem0nc0re |
SeBackup | Admin | Herramienta de terceros | 1. Realizar una copia de seguridad de las colmenas del registro HKLM\SAM y HKLM\SYSTEM 2. Extraer los hashes de las cuentas locales de la base de datos SAM 3. Pass-the-Hash como miembro del grupo local Administrators Alternativamente, puede usarse para leer archivos sensibles. | Para más información, consulte el archivo SeBackupPrivilege.- ver PoC por @daem0nc0re |
SeChangeNotify | Ninguno | - | - | Privilegio que posee todo el mundo. Revocarlo puede hacer que el sistema operativo (Windows Server 2019) no arranque. |
SeCreateGlobal | ? | ? | ? | |
SeCreatePagefile | Ninguno | Comandos integrados | Crear hiberfil.sys, leerlo sin conexión y buscar datos sensibles. | Requiere acceso sin conexión, lo que de todos modos conduce a derechos de administrador. - Ver PoC por @daem0nc0re |
SeCreatePermanent | ? | ? | ? | |
SeCreateSymbolicLink | ? | ? | ? | |
SeCreateToken | Admin | Herramienta de terceros | Crear un token arbitrario, incluidos derechos de administrador local, con NtCreateToken.- ver PoC por @daem0nc0re | |
SeDebug | Admin | PowerShell | Duplicar el token de lsass.exe. | Script disponible en FuzzySecurity. - Ver PoC por @daem0nc0re |
SeDelegateSession-UserImpersonate | ? | ? | ? | Nombre del privilegio dividido para que la columna sea estrecha. |
SeEnableDelegation | Ninguno | - | - | El privilegio no se utiliza en el sistema operativo Windows. |
SeImpersonate | Admin | Herramienta de terceros | Herramientas de la familia Potato (potato.exe, RottenPotato, RottenPotatoNG, Juicy Potato, SweetPotato, RemotePotato0), RogueWinRM, PrintSpoofer, etc. | Al igual que SeAssignPrimaryToken, permite por diseño crear un proceso bajo el contexto de seguridad de otro usuario (usando un identificador de un token de dicho usuario). Se pueden usar múltiples herramientas y técnicas para obtener el token requerido. |
SeIncreaseBasePriority | Disponibilidad | Comandos integrados | start /realtime SomeCpuIntensiveApp.exe | Puede ser más interesante en servidores. |
SeIncreaseQuota | Disponibilidad | Herramienta de terceros | Cambiar los límites de CPU, memoria y caché a valores que hagan que el sistema operativo no arranque. | - Las cuotas no se verifican en modo seguro, lo que hace que la reparación sea relativamente fácil. - El mismo privilegio se utiliza para gestionar cuotas del registro. |
SeIncreaseWorkingSet | Ninguno | - | - | Privilegio que posee todo el mundo. Se verifica al llamar a funciones de ajuste fino de la gestión de memoria. |
SeLoadDriver | Admin | Herramienta de terceros | 1. Cargar un controlador de kernel defectuoso, como szkg64.sys2. Explotar la vulnerabilidad del controlador Alternativamente, el privilegio puede usarse para descargar controladores relacionados con la seguridad con el comando integrado fltMC. Por ejemplo: fltMC sysmondrv | 1. La vulnerabilidad de szkg64 está listada como CVE-2018-157322. El código de exploit para szkg64 fue creado por Parvez Anwar |
SeLockMemory | Disponibilidad | Herramienta de terceros | Agotar la partición de memoria del sistema moviendo páginas. | PoC publicado por Walied Assar (@waleedassar) |
SeMachineAccount | Ninguno | - | - | El privilegio no se utiliza en el sistema operativo Windows. |
SeManageVolume | Admin | Herramienta de terceros | 1. Habilitar el privilegio en el token 2. Crear un identificador a \.\C: con SYNCHRONIZE | FILE_TRAVERSE3. Enviar el FSCTL_SD_GLOBAL_CHANGE para reemplazar S-1-5-32-544 con S-1-5-32-5454. Sobrescribir utilman.exe, etc. | FSCTL_SD_GLOBAL_CHANGE se puede realizar con este fragmento de código. |
SeProfileSingleProcess | Ninguno | - | - | El privilegio se verifica antes de cambiar (y en un conjunto muy limitado de comandos, antes de consultar) los parámetros de Prefetch, SuperFetch y ReadyBoost. El impacto podría necesitar ajuste, ya que el efecto real no se conoce. |