“Metasploit”: tutti gli exploit al prezzo di uno

(di Bruno Riccio)
06/05/24

Cosa pensereste se vi dicessi che esiste uno strumento che riunisce le piu’ diffuse tecniche di vulnerability assessment, penetration testing, digital forensics e chi piu’ ne ha piu’ne metta?

“Metasploit” è un framework per il penetration testing, sviluppato da Rapid 7 LCC1, che fornisce informazioni sulle vulnerabilità, semplifica le operazioni di pentest e agevola lo sviluppo di IDS (intrution detection systems).

Un framework è un'infrastruttura software che fornisce una struttura di base e un insieme di strumenti, librerie e linee guida (un insieme di funzioni e tool già “pronti all’uso”), in modo che l’user possa concentrarsi sul problema da risolvere/azione da voler intraprendere, senza dover implementare funzionalità che qualcun altro ha già provveduto a creare o riscrivere codice già scritto per compiti simili.

Ecco principi di base di Metasploit:

1. Ampia comunità e supporto: Essendo open source e pre-installato (nella sua versione gratuita) su tutti i sistemi Linux-based, è supportato da una vasta comunità di sviluppatori e ricercatori di sicurezza che contribuiscono con nuovi moduli. Questa comunità attiva aiuta a mantenere Metasploit aggiornato e reattivo alle nuove minacce e alle vulnerabilità emergenti.

2. Database di exploit: Metasploit include un database di exploit (la cui definizione sarà data a breve) che consente agli utenti di cercare, filtrare e utilizzare gli stessi contro una varietà di sistemi e servizi. Questo database è costantemente aggiornato per includere le ultime vulnerabilità e gli exploit corrispondenti.

3. Interfaccia utente: Metasploit offre diverse interfacce utente, tra cui una versione a riga di comando e una GUI (Metasploit Community Edition e Metasploit Pro2) che semplificano l'utilizzo del framework anche per gli utenti meno esperti.

4. Utilizzo etico: Benché Metasploit possa essere utilizzato per scopi illegali se nelle mani sbagliate, la maggior parte degli utenti lo utilizza per testare e migliorare la sicurezza dei propri sistemi, o come strumento di formazione per comprendere meglio le vulnerabilità e le tecniche di attacco (blue team ma anche red team).

In sostanza, Metasploit è uno strumento potente e flessibile utilizzato da professionisti della sicurezza informatica, ricercatori, aziende e organizzazioni governative per valutare e migliorare la sicurezza dei sistemi informatici. Tuttavia, è fondamentale utilizzarlo in modo etico e legale.

EXPLOIT

In generale, un exploit è una serie di istruzioni o codice progettato appositamente per sfruttare una particolare vulnerabilità o punto debole all'interno di un sistema informatico o di un'applicazione. Quando viene eseguito correttamente, un exploit permette all'attaccante di ottenere un accesso non autorizzato al sistema di destinazione, eseguire codice arbitrario, compromettere la sicurezza del sistema o intraprendere altre azioni dannose. Questi exploit possono sfruttare varie tipologie di vulnerabilità, hardware o software, come errori di programmazione volontari e non (backdoor), buffer overflow, code injection etc.

Nello specifico, Metasploit offre una serie di exploit che possono essere utilizzati in base alle vulnerabilità esistenti nel sistema target, rivelate all’attaccante a seguito di un’apposita scansione.

Utilizzando i moduli di scansione di Metasploit, come ad esempio “auxiliary/scanner/portscan/tcp”, è possibile eseguire una scansione delle porte aperte e dei servizi in ascolto sul sistema target. Questo fornisce una panoramica dei potenziali punti di ingresso nel sistema.

Gli exploit possono essere classificati in due tipi:

  • Exploit attivi: sono eseguiti su un sistema target, sfruttano il sistema, eseguono l’attività specifica e cessano di esistere.

  • Exploit passivi: aspetteranno fino a quando il sistema target si connette all'exploit; questo approccio è spesso utilizzato dai malintenzionati su Internet che chiedono di scaricare file o software.

PAYLOAD

Un payload, letteralmente “carica pagante” è un pezzo di codice che viene eseguito tramite l'exploit. La differenza tra i due è che vengono utilizzati gli exploit per entrare in un sistema e i payload per eseguire azioni specifiche.

Ad esempio, si può utilizzare un keylogger come payload insieme a un exploit. Una volta che l'exploit ha avuto successo, installerà il keylogger nel sistema del target.

AUXILIARIES

Gli auxiliaries sono moduli che ti aiutano a eseguire funzioni personalizzate diverse dallo sfruttare un sistema. Questo include scanner di porte, fuzzers, sniffers e altro ancora.

Ecco alcuni esempi:

  1. msfconsole: La console di Metasploit è l'interfaccia a riga di comando principale per interagire con il framework. Consente di eseguire comandi, caricare moduli, lanciare exploit e condurre test di penetrazione.

  2. msfvenom: Un tool per la generazione di payload personalizzati. Consente agli utenti di creare payload per sfruttare vulnerabilità specifiche o per scopi di reverse shell.

  3. Meterpreter: Un payload multi-funzione di Metasploit che fornisce un'ampia gamma di funzionalità post-sfruttamento su sistemi compromessi. Include funzionalità come l'accesso al filesystem, il controllo remoto del sistema, la cattura dello schermo e altro ancora.

  4. autopwn: Un modulo che automatizza il processo di individuazione e sfruttamento di vulnerabilità su un host o su una rete. Utilizza una serie di exploit per testare automaticamente i sistemi alla ricerca di vulnerabilità note.

In che modo viene utilizzato?

Prima della fase di attacco, vi è ovviamente quella di ricognizione e analisi delle vulnerabilità dell’avversario, come in un qualsiasi attacco convenzionale.

Praticamente ogni strumento di ricognizione che puoi immaginare si integra con Metasploit, rendendo possibile individuare il punto debole che stai cercando.

Una volta identificata una debolezza, viene automaticamente cercato nel vasto e modulare database di Metasploit l'exploit che aprirà quella falla e permetterà di entrare nel dispositivo della vittima. Ad esempio, l'exploit EternalBlue3 della NSA (U.S. National Security Agency), è stato adattato perfettamente per Metasploit ed è una scelta affidabile quando si tratta di sistemi Windows Legacy non patchati. EternalBlue sfrutta una tecnica chiamata pool grooming, che è un tipo di attacco heap spray (tecnica usata per facilitare l’esecuzione di arbitrary code nella macchina vittima) alla struttura della memoria del kernel. Prendendo di mira i sistemi Windows vulnerabili, inietta uno shellcode che consente all'attaccante di utilizzare l'indirizzo IP della macchina per comunicare direttamente con il protocollo Server Message Block (SMB), protocollo di condivisione file che consente ai sistemi Windows connessi alla stessa rete o dominio di condividere file e cartelle; consente inoltre ai computer di condividere anche stampanti e porte seriali da altri computer all'interno della rete stessa. Esso è stato utilizzato da malintenzionati per installare ransomware nei dispositivi vittima, ovvero una tipologia di malware che cifra i dati del malcapitato, chiedendo un riscatto per decifrarli.

Ma come funziona in pratica?

Il processo è molto semplice ed intuitivo: basta avviare Metasploit tramite il comando “start msfconsole” e cercare (search) l’exploit di interesse, in questo caso “Eternalblue”.

Ci verranno mostrati gli exploit disponibili con relativa descrizione. Ora non ci resta che decidere quale utilizzare e verso chi reindirizzarlo.

I comandi che ho utilizzato permettono di creare una reverse shell presso la macchina del malcapitato… semplice vero? Si e no!

I comandi utilizzabili sono innumerevoli, (senza contare la combinazione con gli exploit e i payload) l’unica soluzione è “smanettare” e farsi coinvolgere dalla marea di possibilità che questo tool offre!

Un altro esempio potrebbe essere relativo alla perfetta integrazione tra Metasploit ed il suo modulo integrato di John The Ripper (tool di password cracking del quale ho parlato nel precedente articolo4).

Il modulo 'auxiliary/analyze/jtr_crack_fast' è stato creato per facilitare l'uso di JTR nel framework. Esso funziona contro hash Windows noti (NTLM e LANMAN). Basta utilizzare gli hash nel database come input, quindi assicurarsi di aver eseguito “hashdump” con un database prima di avviare la fase di cracking. Il modulo raccoglie gli hash nel database e li passa ai binari di John che sono ora inclusi nel framework di Metasploit tramite un file in formato “pwdump” generato.

Una volta completato il bruteforcing iniziale della wordlist, vengono utilizzate regole di bruteforce incrementale, chiamate “All4 & Digits5”, per forzare combinazioni aggiuntive. Questi set di regole sono mostrati di seguito e possono essere trovati nello stesso file di configurazione john.conf nel framework stesso. I valori cracked vengono aggiunti alla wordlist man mano che vengono trovati. Questo è vantaggioso:

Gli hash precedentemente craccati sono estratti dal file “john.pot” all'avvio di una qualsiasi operazione e questi vengono utilizzati come valori seed per le esecuzioni successive, consentendo eventualmente di rompere altri hash precedentemente non craccati. Infine, le combinazioni nome utente/password scoperte vengono segnalate al database e associate all'host/servizio

Considerazioni finali sull’unicità di Metasploit

Ci sono diversi aspetti che contribuiscono alla fama di Metasploit nel campo della sicurezza informatica:

  1. Ampia gamma di funzionalità: Metasploit offre una vasta gamma di strumenti e moduli che coprono tutte le fasi del test di penetrazione, dalla ricognizione all'esecuzione di exploit, all'elevazione dei privilegi e oltre. Questa completa suite di strumenti lo rende una risorsa essenziale per professionisti della sicurezza informatica.

  2. Facilità d'uso: Nonostante la complessità delle attività di sicurezza che può svolgere, Metasploit è progettato per essere accessibile anche ai principianti. Offre interfacce utente intuitive, come la console a riga di comando e la versione GUI per Metasploit Community Edition e Metasploit Pro, che semplificano la navigazione e l'utilizzo del framework.

  3. Attualizzazione costante: Metasploit è supportato da una vasta comunità di sviluppatori e ricercatori di sicurezza che contribuiscono costantemente con nuovi moduli, exploit e aggiornamenti per mantenere il framework al passo con le ultime minacce e vulnerabilità.

  4. Flessibilità e adattabilità: Grazie alla sua architettura modulare, Metasploit può essere esteso e adattato alle esigenze specifiche degli utenti. Questo permette agli utenti di personalizzare il framework e sviluppare nuovi moduli per soddisfare requisiti unici di sicurezza.

  5. Supporto per la comunità e documentazione: Metasploit gode di un'ampia base di utenti e di un solido supporto da parte della comunità. Ci sono forum, documentazione dettagliata e risorse online che aiutano gli utenti a imparare e a risolvere problemi.

  6. Open source e gratuito: Il nucleo del framework Metasploit è open source e distribuito sotto licenza “BSD”, il che significa che è gratuito da scaricare, utilizzare e modificare. Questo lo rende accessibile a un'ampia gamma di utenti, indipendentemente dalle risorse finanziarie.

Complessivamente, è questa combinazione di potenza, facilità d'uso, flessibilità e supporto della comunità che rende Metasploit uno dei framework di sicurezza informatica più famosi e ampiamente utilizzati al mondo.