Windows Remote Management

Windows Remote Management #

  • Permet executar remots comandes o scripts (principalment PowerShell) en equips Windows sobre HTTP/HTTPS
  • WinRM implementa WS-Management (SOAP sobre HTTP/HTTPS) per a gestió remota de Windows.
  • Ports per defecte: 5985/tcp (HTTP), 5986/tcp (HTTPS).
  • Suporta Kerberos i NTLM
    • Kerberos: reutilitza el servei d’autenticació del domini; és segur i habitual en entorns AD. Requereix que client/servidor puguin validar tickets.
    • NTLM: autenticació challenge–response usada sovint amb equips fora de domini o quan Kerberos no és possible. Pot permetre tècniques com pass-the-hash si es disposa de hashes.
    • Basic: envia credencials en base64; només segur si es fa sobre HTTPS. Normalment està deshabilitat per polítiques.

Enumeració #

  • amb nmap
nmap -sV -p 5985,5986 <IP>
  • amb powershell
Test-WSMan -ComputerName <IP>
  • amb curl
curl -i http://<IP>:5985/wsman

Comandes WinRM / PowerShell des d’una màquina Windows #

Mostrar listeners

winrm enumerate winrm/config/listener

veure la configuració del servei

winrm get winrm/config/service

Mostrar autentificacions permeses

winrm get winrm/config/service/auth

Eines per auditar #

Eina Objectiu
pywinrm executar comandes remotes via WinRM des d’un script Python.
crackmapexec (cme) proves massives d’autenticació i alguns mòduls d’enumeració.
evil-winrm client interactiu

pywinrm #

Exemple. ( cal instal·lar pip install pywinrm )


import winrm
s = winrm.Session('http://<IP>:5985/wsman', auth=('user','pass'))
r = s.run_cmd('whoami')
print(r.std_out.decode())

evil-winrm #

Us bàsic

evil-winrm -i <IP> -u <USER> -p <PASS>

si el servidor accepta NTLM i es possible fer un Pass-the-Hash es pot fer amb -H hash NTLM (Pass-the-Hash)

  • Té les comandes propies upload i downloads
  • Pots enviar scripts amb base64 per ofuscarlos
  • Per evitar que revisi el contingut del que executes
 powershell  -ExecutionPolicy Bypass -File fitxer