Metasploit Framework 3: la riscrittura in Ruby e la maturazione del penetration testing open source

Metasploit Framework 3 (marzo 2007) di H.D. Moore: riscrittura completa in Ruby, architettura modulare (exploit, payload, auxiliary, encoder), Meterpreter come payload in-memory. Versione 3.2 e lo stato dell'arte del pentest al 2008.

Cyber SecurityOpen SourceR&D MetasploitPenetration TestingCyber SecurityRubyHD MooreOpen Source

Il framework che standardizza il pentest

Metasploit Framework è stato iniziato nel 2003 da H.D. Moore in Perl come raccolta strutturata di exploit e strumenti di supporto al penetration testing. La versione originale (1.x, 2.x) ha avuto uso crescente nella comunità di ricerca sulla sicurezza, ma la sua architettura Perl non ha scalato al ritmo di crescita della base di exploit e di funzionalità. La scelta strategica è stata riscrivere l’intero framework da capo in Ruby.

Il Metasploit Framework 3.0 è stato rilasciato a marzo 2007. La versione corrente al momento di scrivere è la 3.2 (ottobre 2008), con ulteriori miglioramenti di interfaccia e payload.

L’architettura modulare

Metasploit 3 introduce una tassonomia di moduli che rimarrà stabile nei decenni successivi:

  • Exploit — codice che sfrutta una vulnerabilità specifica per ottenere esecuzione
  • Payload — codice che viene eseguito dopo l’exploit (shell, Meterpreter, reverse connection, bind shell)
  • Encoder — trasformano il payload per aggirare filtri IDS/IPS (es. shikata_ga_nai)
  • Nops — generatori di istruzioni no-operation per rendere l’exploit più resiliente
  • Auxiliary — moduli di scansione, fuzzing, enumeration senza necessariamente sfruttare vulnerabilità
  • Post — esecuzione post-exploitation (privilege escalation, credential harvest, lateral movement)

La separazione exploit/payload è il contributo concettuale più importante: lo stesso exploit può lanciare qualsiasi payload compatibile, il tester non deve riscrivere logica per ogni combinazione.

Meterpreter

Uno dei payload più rilevanti introdotti/maturati nel ramo 3.x è Meterpreter — payload dinamicamente caricato che vive in memoria senza scrivere su disco, riducendo le tracce forensi. Meterpreter espone un’API comando-risposta ricca: filesystem, registry Windows, network, process injection, keylogging, webcam/microfono (dove applicabile), pivoting verso altre reti attraverso il nodo compromesso.

Il fatto che Meterpreter sia multi-piattaforma (Windows, Linux, BSD) e estendibile con moduli dinamici lo rende un riferimento di fatto nel pentest offensivo per oltre un decennio.

Le interfacce

Metasploit 3 espone:

  • msfconsole — CLI interattiva, l’interfaccia più utilizzata, con history, autocompletion, tabulazione
  • msfcli — invocazione da shell script per automazione
  • msfweb — interfaccia web (rimossa in release successive)
  • msfopcode — database di opcodes utili per costruire payload custom

L’integrazione con Nmap per la discovery, PostgreSQL per il database delle informazioni raccolte durante una campagna, e API Ruby per estensioni custom, completa il framework come piattaforma end-to-end.

Licenza e distribuzione

Metasploit Framework è distribuito sotto licenza BSD (poi evoluta a Metasploit Framework License, una variante basata su BSD). Il codice è interamente aperto e la base di exploit è community-contributed: ricercatori di sicurezza pubblicano exploit mese dopo mese, sottoposti a review e integrati nel framework.

Questo modello ha una duplice valenza: accelera la disponibilità di exploit per ricercatori difensivi e pentester autorizzati, ma solleva anche questioni sulla responsabilità della pubblicazione. La community Metasploit ha sviluppato un’etica di responsible disclosure: exploit per vulnerabilità pubblicate con delay rispetto alla patch ufficiale del vendor.

Acquisizione Rapid7

Nell’ottobre 2009 Metasploit Project viene acquisito da Rapid7 — vendor di sicurezza statunitense già attivo con Nexpose per vulnerability management. H.D. Moore rimane CSO del progetto. L’acquisizione segna il passaggio di Metasploit a un modello open core:

  • Metasploit Framework rimane open source e gratuito
  • Metasploit Express e Metasploit Pro — versioni commerciali con interfaccia grafica, reporting, automazione enterprise, workflow

Questo modello finanzia lo sviluppo continuativo del framework open.

L’uso legittimo

Metasploit è uno strumento a dual-use: utilizzabile sia in attacchi malevoli sia in attività difensive autorizzate. L’uso legittimo tipico:

  • Penetration test autorizzati da contratto scritto con il cliente
  • Red team interno a un’organizzazione per simulare attacchi
  • Training di personale di sicurezza (corsi, laboratori CTF)
  • Ricerca di sicurezza su vulnerabilità prima della patch
  • Validazione di sistemi difensivi (SOC, IDS, EDR) contro scenari reali

In Italia l’uso di strumenti come Metasploit richiede autorizzazione formale dal soggetto titolare del sistema testato; l’uso non autorizzato incorre nelle fattispecie penali dell’art. 615-ter c.p. (accesso abusivo a sistema informatico) e successive.

Concorrenti e complementari

Al 2008 l’ecosistema del pentest include:

  • Nessus (Tenable) — vulnerability scanner commerciale (6.x), con grande base di controlli
  • OpenVAS — fork open source di Nessus 2.x dopo il passaggio di Nessus 3.x a closed source (2005)
  • Burp Suite — proxy di intercettazione web (PortSwigger, Free/Pro)
  • Nmap — port scanner e network discovery (complementare, non concorrente)
  • Canvas (Immunity) e Core Impact — framework commerciali alternativi a Metasploit

Metasploit si distingue per completezza open source ed estendibilità.

Nel contesto italiano

Al 2008 Metasploit è utilizzato in Italia da:

  • Società di consulenza cyber specializzate in pentest
  • CERT e gruppi di ricerca universitari (Pisa, Milano Politecnico, Roma La Sapienza)
  • SOC di grandi aziende e PA per testing interno
  • Community italiane — Italian Security Team, SikurWare, MOCA hackmeeting

L’adozione crescerà significativamente nel quinquennio successivo, parallelamente al rafforzamento dei quadri regolatori su cybersecurity (D.lgs. 82/2005 CAD, successivo D.lgs. 65/2018 che recepisce NIS1, poi NIS2 del 2022/2024).


Riferimenti: Metasploit Framework 3.x (marzo 2007 - ottobre 2008), H.D. Moore. Licenza BSD-based. Rapid7 (acquisizione ottobre 2009). Meterpreter payload. Ruby come linguaggio di implementazione. Integrazione Nmap, PostgreSQL.

Vuoi supporto? Sei sotto attacco? Stato dei servizi
Vuoi supporto? Sei sotto attacco? Stato dei servizi