Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Pentest automatizzato con w3af

Vediamo come installare ed utilizzare w3af per effettuare un penetration test automatizzato delle nostre web applications.
Vediamo come installare ed utilizzare w3af per effettuare un penetration test automatizzato delle nostre web applications.
Link copiato negli appunti

w3af è un framework Open Source finalizzato al testing di web applications. Il tool consente di effettuare un audit completo di un'applicazione web, individuando eventuali vulnerabilità e tentando di lanciare degli exploit per sfruttarle. Per motivi di brevità, faremo un piccolo ma necessario excursus sulle modalità di installazione e descriveremo un semplice test effettuato in un ambiente virtuale già predisposto allo scopo.

Installazione

w3af, scaricabile da sourceforge, è scritto in Python ed è multiplatform. Per gli utenti Linux, BSD e Mac la procedura di installazione è abbastanza agevole e consiste nello scompattare il file .tar.bz2, entrare nella directory w3af appena creata e lanciare la GUI o la console:

cd w3af

./w3af_gui

oppure

./w3af_console

Poichè esiste un set di dipendenze da risolvere per la GUI e uno per la console, seguiranno i comandi per installare i relativi pacchetti, dopodichè l'installazione sarà attiva e funzionante. Nel caso di installazione sotto Windows, invece, la procedura è un tantino più complessa ed è descritta qui.

Esiste però una terza via, che è quella seguita in questo articolo: prima di tutto scarichiamo e installiamo VirtualBox, dopodichè effettuiamo il download di Web Security Dojo, che è un ambiente di test completo, realizzato da Maven Security Consulting ma completamente free e contenente oltre a w3af anche applicazioni web deliberatamente vulnerabili. Una volta scaricato il relativo file .OVA bisogna importarlo in VirtualBox attraverso il menu File -> Importa applicazione virtuale e l'ambiente sarà automaticamente configurato e pronto per essere utilizzato.

Immagini presa da Shutterstock: Businessman looking in a computer for virus and hacker

Test di sicurezza con w3af

Una volta terminata l'installazione, lanciamo la macchina virtuale "Web Security Dojo" e il nostro laboratorio virtuale è pronto. Come prima cosa, è necessario lanciare una delle applicazioni deliberatamente vulnerabili e disponibili in Dojo. Per far ciò, clicchiamo sul menu in alto a sinistra con l'icona della Maven, selezioniamo "Targets" e poi "Main Target List", come mostrato in figura.

Figura 1. Schermata iniziale di Dojo - selezione del target
img1

A questo punto si aprirà una pagina web contenente una lista di applicazioni: noi abbiamo utilizzato "Insecure Web App", la cui home page è mostrata in figura

Figura 2. Schermata iniziale di American Services, la nostra web app insicura
img1

Ora dobbiamo lanciare w3af selezionando dal menu "Tools -> w3af Gui" (se vogliamo utilizzare la GUI di w3af), come mostrato in figura e dopo lo splash screen, w3af sarà attivo e pronto ad iniziare il test.

Figura 3. Start di w3af Gui
img3

Come prima cosa dobbiamo andare a scegliere il profilo di test tra quelli già configurati, come ad es. OWASP_TOP10 o full_audit, il cui significato è abbastanza chiaro. Ognuno di questi profili precostituiti contiene già una lista di plugin relativi alle varie azioni, come audit, discovery, bruteforce e così via. È possibile però definire anche un nuovo profilo collegandovi i plugin che decidiamo di voler utilizzare per il nostro test. Un esempio è visibile in figura 4.

Figura 4. Selezione del profilo di test in w3af
img4

Analogamente, possiamo decidere di modificare la lista di plugin precostituita per ogni profilo di test, andando ad aggiungere e togliere il segno di spunta in corrispondenza dei plugin che vogliamo o non vogliamo utilizzare. W3af propone anche un wizard automatico che, attraverso pochi e semplici passi, consente di creare un profilo di test secondo le proprie necessità.

A questo punto possiamo inserire il target, che sarà http://localhost:8080, ovvero la URI del web server locale su cui gira l'applicazione vulnerabile "American Services" e lanciare l'attacco. Consideriamo che la scansione può durare parecchi minuti a seconda del tipo di profilo di test e dei plugin utilizzati ma, come dice l'autore Andres Riancho, bisogna diffidare degli scanner che in pochi secondi forniscono risultati. In ogni caso, dopo aver terminato il test, cliccando sulla tab "Results" otterremo una lista di vulnerabilità di varia gravità, divise per colore, come mostrato in figura 5, che possono andare dalla pathDisclosure al possibile clickjacking e così via. In basso a destra possiamo inoltre vedere un riassunto numerico delle vulnerabilità individuate ed eventuali shell.

Figura 5. Le vulnerabilità individuate da w3af
img5

Cliccando invece sulla tab "Exploit", otteniamo tre riquadri: Exploits, Vulnerabilities e Shells.

Figura 6. Possibili Exploit individuati
img6

Nel primo riquadro è mostrato un elenco dei possibili exploits utilizzabili, a seguito della scansione effettuata, come ad esempio davShell, che attacca web server che hanno un accesso WebDAV senza autenticazione.

Figura 7. Esecuzione di un exploit
img7

Ricordiamo che WebDAV (più comunemente DAV) è una estensione del protocollo HTTP che consente alle applicazioni un utilizzo di risorse remote in modalità file system. Oppure possiamo utilizzare ad esempio exploit come fileUploadShell, che attaccano applicazioni che consentono l'upload senza restrizioni di file all'interno della webroot. Osserviamo ancora la presenza di exploit come sqlmap e sql_webshell per attacchi di tipo blind sql injection rispettivamente utilizzando sqlmap o effettuando l'upload di una webshell nella webroot del target.

Nella seconda finestra sono listate invece le "Vulnerabilities", anche in questo caso con colori diversi a seconda del livello di gravità riscontrato, mentre nella terza finestra "Shells" prendono posto eventuali shell ottenute dalla scansione automatizzata. Per applicare gli exploit alle vulnerabilità individuate è possibile seguire due strade: la prima consiste nell'applicare manualmente un exploit ad una vulnerabilità ed osservarne il risultato, mentre la seconda prevede l'exploitation automatica di tutte le vulnerabilità.

Nel primo caso, è necessario trascinare con un drag-and-drop un exploit dalla colonna di sinistra su una vulnerabilità della colonna di destra e rilasciare: apparirà una nuova finestra che descrive l'esecuzione dell'exploit e il suo risultato, come mostrato in figura

.

Nel secondo caso, invece, possiamo lanciare un "exploit multiplo" cliccando su uno degli exploit della lista con il tasto destro e selezionando la voce "Exploit ALL Vulns" oppure "Exploit all until first successful", come visibile in figura 8.

Figura 8. Exploit multiplo
img8

Bisogna dire comunque che la scansione automatizzata e l'eventuale rilevamento di vulnerabilità non garantiscono che gli exploit funzionino. Ovviamente bisogna poi procedere ad un lavoro "di fino", testando le varie vulnerabilità a mano, ad esempio in caso di sql injection.

Conclusioni

w3af è certamente uno dei migliori Web Application Attack and Audit Framework in circolazione e non teme confronti con altri prodotti anche commerciali, come Acunetix, AppScan, NetStalker e altri. I pregi di w3af sono davvero tanti: è multiplatform, open source, vanta una community di sviluppatori e contributors di tutto rispetto, ha un'interfaccia grafica intuitiva e potente nonchè una console per chi preferisce la riga di comando, ma ha anche altre potenzialità come ad esempio la possibilità di effettuare un fuzzing HTTP a mano riempiendo automaticamente tutti i campi di un form con valori appropriati per il tipo di dati da inserire. Come abbiamo visto, w3af è integrato in una serie di suite per il pentesting come Backtrack, Samurai WTF, la stessa Dojo e altre, per cui rappresenta certamente un "must-have" per ogni pentester.


Ti consigliamo anche