In questo articolo affronterò la presentazione del progetto Metasploit, si tratta del primo di una serie di articoli nei quali cercherò di recensire tutte le principali funzionalità di questo potentissimo prodotto chiamato Metasploit Framework [1].
Nota: questo articolo è frutto di una rielaborazione personale delle informazioni presenti nella pagina di Wikipedia dedicata al Metasploit Project. A questo indirizzo [2] potete reperirne la versione originale.
Cos'è Metasploit Framework?
Metasploit Framework [1] è il prodotto principale derivante dal progetto Metasploit Project [3], il quale mira principalmente a fornire informazioni utili allo sviluppo di nuove tecniche di penetration testing [4] e di firme per sistemi IDS (Intrusion Detection System [5]).
Come possiamo facilmente dedurre dal nome stesso del prodotto, stiamo parlando di un vero e proprio framework [6] pensato per la creazione e l'esecuzione facilitata di exploits [7] contro macchine remote; le sue numerose funzionalità permettono:
- ai ricercatori - di scrivere velocemente exploits e shellcodes [8] che si occupino di sfruttare quelle vulnerabilità di sicurezza che verranno poi rese pubbliche attraverso appositi siti internet
- agli amministratori e ai professionisti (White Hats [9]) - di mettere alla prova la sicurezza di una rete al fine di proteggerla
- agli Script Kiddies [10] e ai Black Hats [11] - di penetrare facilmente tutti quei sistemi remoti che sono afflitti da problematiche già note
Metasploit Framework si sta affermando sempre di più come uno standard ed infatti al giorno d'oggi sono già numerosi i bollettini di sicurezza che vengono accompagnati da un modulo exploit scritto appositamente per esso.
L'enorme potenzialità di questo software non è rappresentata soltanto dal fatto di poter agevolmente scrivere ed eseguire exploits di vulnerabilità pubbliche, ma anche dalla presenza di numerosi strumenti (moduli ausiliari) che possono essere utilizzati all'interno di esso per compiere attività complementari all'attacco; all'interno del framework, infatti, possiamo usufruire ad esempio di strumenti per la scansione delle reti o di particolari protocolli (SMB, MSSQL, HTTP, SIP, ecc), corredati da scripts in grado persino di automatizzare i passi necessari alla penetrazione di un sistema. A questo indirizzo [12] potete trovare una lista delle funzionalità incluse nel framework.
L' utilizzo del framework
Per farvi comprendere meglio l'utilità di questo prodotto vi elencherò i passi basilari che si compiono quando ci si trova ad utilizzarlo per colpire un sistema remoto (vittima):
- Scelta e configurazione di un exploit (sono disponibili numerosi exploit per Windows ma tra le possibili scelte sono inclusi anche Unix/Linux e Mac OS X).
- Verifica della vulnerabilità del sistema remoto all'exploit prescelto.
- Scelta e configurazione di un payload [13] (si tratta di un codice che verrà eseguito sulla vittima nel momento in cui l'exploit avrà successo... per esempio l'apertura di una shell dei comandi o di un controllo remoto VNC).
- Scelta di una tecnica di encoding che verrà utilizzata per codificare il suddetto payload in modo che esso non sia rilevabile da sistemi di prevenzione o rilevamento delle intrusioni (IPS [14] e IDS [5]). Esiste anche la possibilità di attaccare la macchina remota utilizzando una connessione SSL [15].
- Esecuzione dell'exploit e acquisizione del controllo del sistema remoto.
Questo metodo molto modulare di compiere l'attacco costituisce il vantaggio principale offerto dal framework, grazie ad esso infatti è possibile combinare qualsiasi exploit con qualsiasi payload disponibile.
Tutti i passaggi sopra descritti possono essere portati a compimento usufruendo di una apposita shell dei comandi oppure di una semplicissima interfaccia via web che viene eseguita sulla macchina dell'attaccante; di quest'ultima è possibile vederne una demo online al seguente indirizzo: http://www.metasploit.com:55555/ [16] anche se si tratta in realtà della vecchia versione 2.7, quella attuale è la 3.0.
Qui [17] invece è possibile trovare alcuni screenshots dell'ultima versione del framework e alcuni video dimostrativi dell'utilizzo dello stesso, in particolare vi consiglio la visione di questo flash video [18].
Sistemi operativi supportati
Metasploit Framework è installabile su sistemi UNIX (inclusi BSD, Linux e Mac OS X) e Windows (grazie al framework Cygwin [19]). Il download dei pacchetti di installazione è disponibile al seguente indirizzo: http://framework.metasploit.com/msf/download [20].
Altri prodotti relativi al Metasploit Project
- Opcode Database [21]: si tratta di un database nel quale vengono specificati tutti gli Operation Codes [22] che è necessario conoscere per poter scrivere un exploit, specialmente se parliamo di Buffer Overflow [23] Exploits. La posizione di questi opcode spesso cambia a seconda della versione e del grado di aggiornamento di un dato sistema operativo, per questo motivo mantenerne un database aggiornato aiuta a scrivere exploits attuabili su differenti versioni del sistema in questione.
- Shellcode Archive [24]: Metasploit framework include numerosissimi shellcode [8], essi sono scritti in assembly [25] ed è disponibile il loro codice sorgente... si tratta di un ottimo archivio di esempi al quale ispirarsi per la creazione di payloads. Faccio notare anche l'esistenza di un Windows Shellcode Development Kit, che include il set completo dei payload presenti nella versione 2.0 del Metasploit Framework; secondo il sito di Metasploit questo kit è in grado di generare eseguibili PE, ELF e codice sorgente C.
- Anti-Forensics Research [26]: si tratta di una collezione di informazioni e strumenti inerenti all'attività di analisi forense [27] dei sistemi.
Conclusioni
Nel prossimo articolo presenterò l'installazione di Metasploit Framework in ambienti Windows e Linux.
Autore
Mirko Iodice
mirko -at- notageek (.dot) it