Metasploit è un framework usato principalmente per eseguire penetration test, attività mirate a verificare la sicurezza di un sistema, mediante la simulazione di attacchi reali. Essendo un progetto open-source, gli utenti hanno accesso al suo codice sorgente, potendolo personalizzare in base alle loro esigenze.
La presenza di un’interfaccia grafica user-friendly lo rende molto accessibile anche a quanti non posseggono una conoscenza approfondita delle operazioni di pen-test.

Queste caratteristiche fanno di Metasploit uno strumento di riferimento per i professionisti della sicurezza informatica.

  1. Le origini di Metasploit
  2. Struttura di Metasploit
  3. Blind Shell
  4. Reverse Shell
  5. Exploit, payload e come utilizzarli
  6. Esempio di exploit di un sistema bersaglio
  7. In quali contesti viene impiegato Metasploit?
Metasploit software

Il framework consente di configurare ed eseguire attacchi sfruttando due componenti principali, che lavorano in tandem tra loro:

  • Exploit: il codice utilizzato per violare un sistema, sfruttando una vulnerabilità specifica.
  • Payload: il codice che viene eseguito una volta ottenuto l’accesso al sistema, ad esempio per acquisire privilegi o estrarre dati.

Metasploit è preinstallato in molte distribuzioni di sicurezza, come Kali Linux, ma può essere scaricato separatamente per altri sistemi operativi. È disponibile in due versioni principali:

  • Framework Edition: gratuita e adatta alla maggior parte delle esigenze.
  • Pro Edition: a pagamento, con funzionalità avanzate pensate per team di sicurezza aziendale.

Vediamo ora più nel dettaglio le sue origini, la sua struttura e quali operazioni consente di eseguire.

Le origini di Metasploit

Metasploit nasce nel 2003 grazie al lavoro degli sviluppatori H. D. Moore, Matt Miller e Dean McNamee. Inizialmente concepito come uno strumento di rete portatile scritto in Pearl, viene completamente riscritto in Ruby nel 2007 per migliorarne la flessibilità e le prestazioni.

Il 21 ottobre 2009, il progetto è acquisito da Rapid7, un’azienda leader nel settore della cybersecurity con sede a Boston. Da quel momento, il framework viene promosso come una soluzione potente e di facile utilizzo per testare le vulnerabilità dei sistemi IT.

Nell’agosto del 2011, con il rilascio della versione 4.0, Metasploit compie un ulteriore passo in avanti, grazie all’introduzione di numerosi exploit e strumenti di supporto. In tal modo, le sue capacità di individuare una vasta gamma di vulnerabilità aumentano considerevolmente, rendendolo uno strumento ancora più completo per i professionisti della sicurezza informatica.

Struttura di Metasploit

Metsploit include al suo interno una vasta gamma di strumenti progettati per velocizzare le operazioni di penetration test. Tra i più importanti si citano:

  • Aircrack: utilizzato per testare la sicurezza delle reti wireless;
  • Metasploit Unleashed: una guida avanzata che offre tutorial e approfondimenti sull’uso del framework;
  • Wireshark: uno strumento di analisi del traffico di rete;
  • Ettercap: impiegato per eseguire attacchi di tipo man-in-the-middle e analisi avanzata dei protocolli di rete;

Oltre ai tool, il framework è strutturato in filesystem organizzati in modo da supportare le operazioni di penetration test. Al loro interno sono presenti:

  • Diversi tipi di dati, come binari, wordlists, immagini e template;
  • Comandi di utility, tra cui plugin, strumenti hardware e dump di memoria;
  • Librerie, script e risorse necessarie per il corretto funzionamento del framework;
  • Moduli di exploit, indispensabili per configurare e lanciare gli attacchi;
  • Plugins, ovvero estensioni progettate per automatizzare task complessi o ripetitivi;
  • Documentazione, che offre dettagli utili per comprendere e utilizzare al meglio il framework;

Metasploit possiede due tipi di shell per interagire con il sistema da attaccare: blind shell e reverse shell. Vediamole più nel dettaglio individualmente.

Blind Shell

In questa configurazione, il sistema vittima apre un listener, un componente che resta in attesa di connessioni in ingresso. Successivamente, l’attaccante si collega al listener per ottenere una shell remota (remote shell) sul sistema compromesso. Tuttavia, questa configurazione presenta un rischio significativo: il listener è esposto, consentendo a chiunque di collegarsi e potenzialmente eseguire comandi malevoli.

Reverse Shell

Questa configurazione è molto più sicura rispetto alla blind shell. In questo caso, il listener viene configurato sulla macchina dell’attaccante, mentre il sistema compromesso effettua una connessione attiva verso il listener dell’attaccante. In tal modo, solo l’attaccante è in grado di gestire la connessione e ottenere il controllo remoto del sistema attaccato.

Exploit, payload e come utilizzarli

Alla versione 6.4.37 del 21 novembre 2024, Metasploit include migliaia di exploit per una vasta gamma di software e piattaforme, tra cui Android, PHP, Java, Cisco e Firefox.

Oltre agli exploit, il framework offre centinaia di payload, suddivisi in diverse categorie, ciascuna progettata per scopi specifici:

  • Payload di command shell: consentono di eseguire script o comandi su un dispositivo target;
  • Payload statici: utilizzati per operazioni di port forwarding;
  • Payload dinamici: progettati per aggirare i software antivirus e mantenere un basso profilo durante l’attacco;
  • Payload meterpreter: offrono il pieno controllo di una sessione remota, permettendo un’ampia gamma di operazioni sul sistema compromesso;

Esempio di exploit di un sistema bersaglio

Per condurre un exploit su un sistema target, è necessario seguire una procedura strutturata:

  1. Indentificare la vulnerabilità
    Si deve verificare se il sistema target è vulnerabile ad uno specifico exploit disponibile all’interno di Metasploit.
  2. Selezionare e configurare l’exploit
    Una volta individuato l’exploit appropriato, lo si deve configurare secondo le necessità dell’attacco.
  3. Associare un payload
    All’exploit va abbinato un payload compatibile. Generalmente è lo stesso Metasploit a suggerire all’utente quello più adatto.
  4. Eseguire l’exploit
    Dopo aver configurato sia l’exploit sia il payload, si può procedere con l’esecuzione dell’attacco, sfruttando la vulnerabilità e raggiungere l’obiettivo prefissato.

Prima di selezionare l’exploit e il payload da utilizzare, è fondamentale raccogliere informazioni dettagliate sul sistema target, in particolare il sistema operativo utilizzato dal target e i servizi di rete attivi, con le relative configurazioni. Queste informazioni possono essere ottenute tramite tecniche come:

  • Port scanning.
    Consiste nell’identificare le porte aperte sul sistema target per individuare i servizi attivi e potenzialmente vulnerabili.
  • TCP/IP stack fingerprinting.
    Permette di rilevare il sistema operativo e la versione del software utilizzato analizzando le risposte del target a specifici pacchetti di rete.

Per eseguire queste operazioni, vengono utilizzati strumenti specializzati come Nmap. Si tratta di un potente network scanner, che fornisce una panoramica dettagliata delle risorse di rete e delle vulnerabilità associate. Questa fase di raccolta delle informazioni è detta ricognizione ed è essenziale per preparare un attacco mirato. Grazie ad essa si possono aumentare le probabilità di successo dell’exploit scelto.

I software per le scansioni delle vulnerabilità, come Nessus e OpenVAS, sono cruciali per l’identificazione delle vulnerabilità presenti nei sistemi target. Metasploit è in grado di analizzare i dati forniti da questi strumenti, confrontandoli con le vulnerabilità già presenti nel proprio database di exploit. In questo modo, il framework è in grado di fornire una migliore accuratezza nelle operazioni di exploit.

Un ulteriore vantaggio di Metasploit è la possibilità di testare le sue funzionalità in un ambiente controllato e sicuro. Questo è reso possibile grazie a Metasploitable, una macchina virtuale basata su Ubuntu appositamente progettata per simulare scenari di pen-test.

In quali contesti viene impiegato Metasploit?

Metasploit è utilizzato sia per operazioni di attacco (Red teaming) che per operazioni di difesa (Blue teaming). Tra i principali impieghi del framework si annoverano:

  • Penetration test: Metasploit è ampiamente utilizzato da esperti di sicurezza per condurre pen-test, identificando vulnerabilità all’interno di sistemi e applicazioni.
  • Verifica delle patch: il framework consente di testare l’efficacia delle patch recentemente installate, verificando se queste hanno effettivamente corretto le vulnerabilità target.
  • Test di regressione: Metasploit è usato per accertarsi che aggiornamenti, o modifiche apportate ai sistemi, non abbiano introdotto nuove vulnerabilità.
  • Security engineering: il framework viene adoperato anche in ambito industriale, per rafforzare i loro sistemi contro minacce informatiche complesse.

Conclusioni

Metasploit è un software essenziale per gli esperti di cybersecurity, particolarmente utile per condurre penetration test con efficacia e precisione.

Anche Onorato Informatica offre una consolidata esperienza in tale campo. Attraverso questi servizi, aziende e imprese possono possono identificare eventuali vulnerabilità presenti nelle loro infrastrutture informatiche. In questo modo, non solo è possibile rafforzare la sicurezza dei sistemi, ma si possono anche prevenire potenziali attacchi informatici.



    Dichiaro di aver letto e compreso l'Informativa sul trattamento dei dati