Iscriviti al webinar gratuito del 12 Maggio per diventare Forensic Analyst! Scopri di più
Corso Ethical Hacker: accedi alla promozione fino al 30 Aprile! Scopri di più
Windows Remote Management — meglio noto come WinRM — è sia un servizio Windows sia un protocollo di gestione remota basato su WS-Management. Consente a un utente autenticato di eseguire comandi, modificare il registro, gestire servizi e interagire con WMI su un host remoto. Proprio questa versatilità lo rende un vettore privilegiato di Lateral Movement (TA0008): la fase della kill chain in cui l'avversario, dopo aver ottenuto un primo punto d'appoggio, si muove tra i sistemi interni per raggiungere obiettivi di alto valore.
Il protocollo opera di default sulla porta TCP 5985 (HTTP) o 5986 (HTTPS) e può essere invocato tramite il comando winrm, tramite PowerShell con Invoke-Command e Enter-PSSession, o attraverso tool post-exploitation dedicati. La superficie di attacco è significativa: i dati indicano 5 gruppi APT, 3 software offensivi, 2 campagne documentate e 3 mitigazioni mappate su questa tecnica. Il rischio reale non sta nel protocollo in sé — legittimamente usato da amministratori di sistema — ma nell'abuso di credenziali valide che lo rendono quasi invisibile al monitoraggio superficiale.
Il modo più diretto per simulare un lateral movement via WinRM in laboratorio è partire dal presupposto di avere già credenziali valide — esattamente come fanno i gruppi reali documentati. Il test serve a validare se il blue team rileva la sessione remota, la creazione di processi figli e le connessioni sulle porte caratteristiche.
Abilitazione del servizio sul target. In un lab controllato, assicurati che WinRM sia attivo sull'host destinazione:
Enable-PSRemoting -Force
Questo comando configura il listener HTTP sulla porta 5985, crea le regole firewall necessarie e avvia il servizio WinRM. Su macchine di dominio la configurazione è spesso già attiva via GPO.
Sessione interattiva con PowerShell nativo. Il metodo più semplice per simulare ciò che gruppi come Chimera e Threat Group-3390 hanno fatto in-the-wild:
Enter-PSSession -ComputerName TARGET -Credential (Get-Credential)
Una volta nella sessione, esegui comandi di ricognizione tipici: whoami /priv, ipconfig /all, net group "Domain Admins" /domain. Questo genera la catena di eventi che il SOC deve intercettare.
Esecuzione remota non interattiva. Per simulare l'esecuzione di payload come documentato nella campagna SolarWinds Compromise (C0024), dove APT29 usava WinRM via PowerShell:
Invoke-Command -ComputerName TARGET -ScriptBlock { Start-Process notepad.exe } -Credential $cred
Sostituisci notepad.exe con un binario benigno di test (es. un eseguibile che scrive un marker su disco) per verificare la detection del processo figlio generato da wsmprovhost.exe.
Evil-WinRM per test avanzati. Il tool Evil-WinRM (open source) è esattamente quello usato da Storm-0501 nelle operazioni documentate. Da una macchina Linux di attacco:
evil-winrm -i TARGET_IP -u utente -p password
Evil-WinRM offre funzionalità aggiuntive come upload/download di file, caricamento di script PowerShell in memoria e integrazione con DLL .NET. Questo permette di testare scenari più complessi rispetto alla semplice sessione nativa.
Simulazione con framework C2. Sia Cobalt Strike (a pagamento) sia Brute Ratel C4 (a pagamento) supportano il pivoting via WinRM. In Cobalt Strike il comando è jump winrm64 TARGET listener, che genera una sessione beacon sull'host remoto passando attraverso il protocollo WS-Management. SILENTTRINITY (open source) offre un modulo che enumera i TrustedHosts e si muove lateralmente verso quei target.
Scarica la guida gratuita e segui il percorso corretto fin dal primo passo