Last update Maggio 19, 2018 11:48 AM

 

drmlog  


Personal Website


Articoli / Articles
     

Pagina Iniziale Home Page

Informazioni About Me

Curriculum Vitae Resume
Didattica Teaching
Guide Tutorials
Articoli Articles
Libri Books

Contatti Contacts
     
 
     
 

Il framework Metasploit
di Roberto Saia

Il progetto Metasploit nasce con l'obiettivo di realizzare un prodotto software capace di fornire informazioni sulle vulnerabilità dei sistemi informatici, questo sia al fine di compiere delle operazioni di analisi dello scenario operativo (penetration testing), sia per coadiuvare le fasi di sviluppo di strumenti pensati per la loro difesa (IDS, firewall, ecc.). In aderenza a tali linee guida, il framework Metasploit (spesso abbreviato in MSF) è stato concepito per operare nell'ambito di numerosi sistemi operativi (Linux, Microsoft Windows, Mac, ecc.) al fine di individuare la vulnerabilità di questi rispetto a un gran numero di exploit eseguibili da remoto.

In ambiente Linux il software Metasploit è utilizzabile attraverso una comoda interfaccia grafica che ne consente una agevole configurazione e un intuitivo impiego anche agli utenti meno esperti in questo particolare ambito, utenti che, altrimenti, non sarebbbero in grado nè di configurare, nè tantomeno di utilizzare gran parte degli exploit gestiti da Metasploit. In realtà, parlare soltanto di exploit è riduttivo, in quanto MSF rappresenta un vero è proprio ambiente di lavoro dal quale è possibile realizzare numerose applicazioni come, per esempio, shellcode, opcode, auxiliary, ecc. Un ambiente di lavoro che, oltre a gestire tutte le fasi di creazione del codice, consente anche di amministrare le attività a esse afferenti come, appunto, quelle relative al penetration testing.

L'installazione del software può essere eseguita dopo averlo prelevato dal sito ufficiale del progetto Metasploit, all'indirizzo http://www.metasploit.com/framework/download/ In tale sito sono disponibili numerose versioni: scegliamo quella per l'ambiente Linux,la quale comprende tutte le dipendenze necessarie (nel momento della stesura di questo testo essa era la framework-3.4.1-linux-i686.run). Terminato il prelievo del file dal sito di Metasploit, la prima operazione da compiere sarà quella di renderlo eseguibile attraverso il comando chmod:

chmod +x framework-3.4.1-linux-i686.run

Possiamo a questo punto procedere con l'installazione vera e propria, eseguendolo con privilegi di amministratore (sudo):

sudo ./ framework-3.4.1-linux-i686.run

La prima richiesta che ci verrà fatta è relativa al percorso di installazione di Metasploit, e in questa occasione ci verrà chiesto di confermare la cartella predefinita /opt/metasploit3: confermiamo con yes e proseguiamo oltre. La successiva richiesta riguarderà l'abilitazione dell'aggiornamento automatico di Metasploit (AutoUpdate): l'opzione suggerita è quella che attiva tale meccanismo (yes); subito dopo aver scelto quest'ultima opazione, ci verrà data la possibilità di aggiornare il software subito, utilizziamola e attendiamo il termine delle operazioni. La precedente (ed eventuale) operazione di aggiornamento del software conclude il processo di installazione di Metasploit che, a questo, punto può essere eseguito invocando il seguente comando:

sudo msfconsole

il quale avvierà una console testuale (Figura 1.1) dalla quale sarà possibile gestire tutte le funzionalità dell'applicativo.

Figura 1
Figura 1.1 - Console testuale di Metasploit

Il framework Metasploit rende disponibili differenti interfacce per il suo utilizzo, interfacce che sono sinteticamente riepilogate nella successiva tabella 1.1.

 

Comando

Tipo di interfaccia

msfconsole

Interfaccia testuale standard del framework, mediante essa è possibile interagire con il software e compiere ogni operazione da questo consentita

msfcli

Interfaccia testuale minimale pensata per l'utilizzo rapido di exploit attraverso un'unica riga di comando

msfweb

Interfaccia grafica web-based che consente di utilizzare il framework da un qualunque browser web

msfgui

Interfaccia grafica che assiste l'utente nelle fasi di configurazione ed esecuzione dell'attacco

msfapi

Consente l'interfacciamento del framework Metasploit con altri strumenti software mediante API (Application Program Interface)

Tabella 1.1 - Interfacce disponibili nel framework Metasploit.

Per quanto funzionale, piuttosto che utilizzare la console testuale standard (msfconsole), ci avvarremo nei successivi esempi della certamente più intuitiva interfaccia grafica msfgui, con la quale potremo gestire da remoto il framework Metasploit: per fare questo dovremo innanzitutto eseguire una apposita sessione del software (invocando il comando msfrpcd), tenendo conto che, comunque, è possibile far coesistere sulla stessa macchina sia la sessione invocata sia l'interfaccia grafica di controllo (possibilità che si rivela molto utile in fase di verifica del funzionamento). Usciamo quindi dalla console testuale di Metasploit con il comando quit ed eseguiamo la seguente istruzione:

sudo /opt/metasploit3/bin/msfrpcd -S -U mario -P 1234 -p 55553

dopo qualche secondo dovrebbero apparire sullo schermo le seguenti righe,

[*] XMLRPC starting on 0.0.0.0:55553 (NO SSL):Basic...

[*] XMLRPC backgrounding...

che segnalano l'avvenuto avvio in background della sessione di Metasploit, sessione alla quale sarà possibile accedere (da locale o da remoto) utilizzando l'interfaccia grafica alla quale si è fatto prima accenno, dopo essersi autenticati con le credenziali scelte (utente mario, password 1234) e utilizzando la porta specificata con l'apposità opzione (55553). Per invocare l'interfaccia grafica è sufficiente eseguire, con privilegi di amministratore, il seguente comando:

sudo /opt/metasploit3/bin/msfgui

In caso appaia un messaggio di errore derivante dalla mancanza dell'interprete Java sulla macchina (qualcosa del tipo: java not found), si dovrà provvedere a installare il relativo pacchetto in questo modo:

sudo apt-get install default-jre

rieseguiamo quindi il precedente comando che, in caso di successo, dovrebbe mostrare a video un simpatico splash-screen e subito dopo una finestra di dialogo (Figura 1.2), la quale dovrà essere riempita utilizzando le credenziali e i parametri di rete impostati durante l'avvio della sessione di Metasploit.

Figura 2

Figura 1.2 - Parametri per la connessione alla sessione di Metasploit.

Se i parametri immessi sono corretti, dopo qualche istante si aprirà la finestra principale dalla quale sarà possibile gestire le funzioni di Metasploit (Figura 1.3).

Figura 3

Figura 1.3 - Finestra principale dell'interfaccia grafica di Metasploit.

Nota: sia la console testuale, sia l'interfaccia grafica di Metasploit, forniscono un'indicazione circa il numero di exploit al momento gestiti dal software, numero che lascia chiaramente trasparire la potenza di uno strumento del genere cpace di accentrare in un unico applicativo, in modo intuitivo, centinaia e centinaia di exploit altrimenti gestibili solo singolarmente e in modo certamente meno intuitivo.

Per effettuare un test del software è necessario impostare un obiettivo: ipotizziamo di voler verificare la sicurezza di una macchina interna alla nostra rete, macchina facente capo all'indirizzo IP 192.168.1.6. La prima cosa da fare in questo caso è quella di testare quali servizi/porte sono disponibili su tale macchina e per farlo possiamo ricorrere all'efficiente software di scansione Nmap:

sudo nmap -O -p1-1024 192.168.1.6

Le opzioni qui utilizzate hanno lo scopo di identificare il sistema operativo (-O), limitare la scansione alle sole porte privilegiate (-p1-1024), cioè quelle porte comprese nell'intervallo da 1 a 1024 (Well Known Ports), intervallo nel quale sono convenzionalmente attestati i servizi in esecuzione:

Interesting ports on 192.168.1.6:

Not shown: 1021 closed ports

PORT STATE SERVICE

135/tcp open msrpc

139/tcp open netbios-ssn

445/tcp open microsoft-ds

MAC Address: 00:E0:18:93:E6:57 (Asustek Computer)

Device type: general purpose

Running: Microsoft Windows XP

OS details: Microsoft Windows XP SP2

Network Distance: 1 hop

Le precedenti righe mostrano un possibile risultato della precedente scansione, dove è stato identificato un sistema operativo di tipo Microsoft Windows XP con Service Pack 2 installato e con attivi soltanto i servizi di condivisione file e stampanti (porte 135, 139 e 445): si tratta probabilmente di una macchina avente semplici funzioni di client all'interno della rete locale. Uno dei classici esempi di utilizzo del framework Metasploit in relazione a un sistema target di tipo Microsoft Windows XP con installato il Service Pack 3 è certamente lo sfruttamento della nota vulnerabilità MS08-067, vulnerabilità che se opportunamente gestita consente a un aggressore di ottenere una console di comandi (shell) con privilegi di amministratore.

Nota: scoperta verso la fine dell'anno 2008 e classificata da Microsoft come MS08-067, questa vulnerabilità affligge il servizio server dei sistemi Microsoft Windows Server 2003, Microsoft Windows 2000 e Windows XP, consentendo ai potenziali aggressori l'esecuzione di codice arbitrario sulla macchina

Selezioniamo dal menù principale Exploit il sistema operativo Windows, e da questo sottomenù individuiamo la voce smb e quindi ms08_067_netapi: a questo punto abbiamo selezionato l'exploit che desideriamo utilizzare e ci verrà presentata un'ampia finestra di dialogo nella quale sarà necessario configurare alcune opzioni. Selezioniamo nella sezione Targets la voce Windows XP SP2 Italian (NX) o, in caso di dubbio, lasciamo selezionata la scelta predefinita Automatic Targeting; dal successivo riquadro riguardante la scelta del payload, cioè del tipo di azione da compiere in caso di successo dell'exploit, selezioniamo la voce shell_bind_tcp (Figura 1.4) che ha lo scopo, appunto, di conquistare una shell di comandi sul sistema target.

Figura 4
Figura 1.4 - Selezione del payload.

Nella sezione Required lasciamo le impostazioni predefinite, limitandoci a inserire l'indirizzo IP della macchina target (192.168.1.6) nella casella RHOST The target address della successiva sezione Optional. Una volta eseguito l'exploit appena configurato con la pressione del pulsante Run exploit, otterremo (in caso di successo) una nuova entrata (sessione) nella tabella Sessions della finestra di dialogo principale del framework, voce che potremo utilizzare mediante il menù contestuale accessibile con il tasto destro del mouse per eseguire un certo numero di operazioni sulla macchina target, tra le quali l'apertura di una console di comandi (Interact) e la chiusura della sessione attiva (Kill session): nella successiva figura Figura 1.5 possiamo osservare sia la visualizzazione della sessione attiva in seguito al buon esito dell'exploit, sia la shell invocata selezionando dal menù contestuale la voce Interact.

Figura 5
Figura 1.5 - Sessione e shell comandi ottenuta in seguito alla riuscita dell'exploit.

Quello appena fatto rappresenta solo un piccolo esempio delle enormi possibilità offerte dal framework Metasploit che, in virtù della sua sua semplicità di utilizzo e del continuo aggiornamento del database degli exploit, si rivela uno strumento portentoso per condurre delle approfondite verifiche di sicurezza, verifiche molto efficienti in quanto del tutto aderenti al reale modus operandi degli aggressori.

 

Sebbene il contenuto delle guide, seppur in forma sintetica e/o adattata al contesto, sia tratto dai miei libri/eBook, l'occasionalità e i rapidi tempi di stesura che ne caratterizzano la pubblicazione non garantiscono l'assenza di errori e/o omissioni.

Ritorna all'indice dei tutorial Index


 
Roberto Saia  -  All Rights Reserved