🛠️ CrackMapExec e WinRM – Guida Completa
CrackMapExec CME è uno strumento multiprotocollo scritto in Python3, sviluppato per automatizzare le fasi di enumerazione, autenticazione, post-exploitation e lateral movement in ambienti Active Direc
🛠️ CrackMapExec e WinRM – Guida Completa
📌 Cos’è CrackMapExec?
CrackMapExec (CME) è uno strumento multiprotocollo scritto in Python3, sviluppato per automatizzare le fasi di enumerazione, autenticazione, post-exploitation e lateral movement in ambienti Active Directory.
Tra i protocolli supportati troviamo:
- SMB
- WinRM
- RDP
- MSSQL
- LDAP
- SSH
Nel contesto WinRM, CME è un’arma formidabile per:
- Effettuare brute force
- Verificare credenziali
- Interagire con host compromessi
- Eseguire comandi remoti
🔍 Requisiti
- Python 3.7+
- Impacket (incluso nel repo)
- Powershell attivo sul target (WinRM usa Powershell come backend)
⚙️ Installazione
git clone https://github.com/Porchetta-Industries/CrackMapExec
cd CrackMapExec
pip install -r requirements.txt
python setup.py installPuoi anche installarlo direttamente via pip:
pipx install crackmapexec🎯 Enumerazione e Brute Force con WinRM
🔎 1. Verifica servizio attivo
Controlla che WinRM sia abilitato e in ascolto:
nmap -p 5985,5986 --open -sV <target_ip>🔐 2. Autenticazione con CME
#### ✅ Credenziali statiche:
crackmapexec winrm <target_ip> -u <utente> -p <password>#### 📚 Wordlist:
crackmapexec winrm <target_ip> -u users.txt -p passwords.txt#### 🔁 Esempio reale:
crackmapexec winrm demo.ine.local -u administrator -p /usr/share/metasploit-framework/data/wordlists/unix_passwords.txt🎯 Flags avanzate utili
| Flag | Descrizione |
--continue-on-success | Continua anche dopo che trova una coppia valida |
--local-auth | Usa l’autenticazione locale invece del dominio |
--no-bruteforce | Disattiva tentativi ripetuti (utile per testare velocemente credenziali) |
-d | Specifica un dominio |
⚔️ Esecuzione Remota di Comandi
Se hai ottenuto credenziali valide, CME permette l’esecuzione di comandi remoti via PowerShell su WinRM:
crackmapexec winrm <target_ip> -u <user> -p <pass> -x "<comando>"🔁 Esempi pratici:
crackmapexec winrm 10.10.10.10 -u administrator -p password123 -x "whoami" crackmapexec winrm 10.10.10.10 -u administrator -p password123 -x "ipconfig /all"Può essere usato per enumerare utenti, eseguire payload, o dumpare hash in combinazione con altri strumenti.
🧬 Output e Risultati
CME fornisce output dettagliato per ogni credenziale testata:
[+]Autenticazione riuscita
[-]Fallita
[!]Errore o timeout
In caso di successo, eseguirà il comando specificato e stamperà l’output.
🧪 Post-Exploitation con CME + WinRM
Una volta autenticati, puoi usare CME per ottenere informazioni critiche:
crackmapexec winrm <ip> -u <user> -p <pass> -x "net user"crackmapexec winrm <ip> -u <user> -p <pass> -x "net localgroup administrators"🛡 Tecniche difensive consigliate:
- Limitare accesso a WinRM a gruppi specifici
- Applicare restrizioni firewall per 5985/5986
- Abilitare il logging degli eventi di WinRM
- Disabilitare WinRM se non necessario
🎓 Integrazione in un workflow di pentest
Fase 1: Scansione
nmap -p 5985,5986 -sV <target_subnet>Fase 2: Enumerazione utenti (SMB/LDAP)
Fase 3: Brute force WinRM
crackmapexec winrm <ip> -u users.txt -p passwords.txtFase 4: Accesso ed esecuzione comandi
crackmapexec winrm <ip> -u <user> -p <pass> -x "whoami"Fase 5: Accesso con Evil-WinRM per interazione completa
🧰 Pro Tips
- Puoi combinare output CME con
grepojqper parse automatizzati in script
- Usa il modulo
sprayse vuoi testare una sola password per tanti utenti
crackmapexec winrm <ip> -u users.txt -p "Password1" --continue-on-success- Puoi usare CME anche per pass-the-hash, se hai gli NTLM:
crackmapexec winrm <ip> -u administrator -H <NTLM_hash>