Spear Phishing – Un’applicazione Concreta
20 Febbraio 2018
L’importanza della formazione nel campo della sicurezza informatica – Intervista a Pierluigi Perri
23 Febbraio 2018

Social Engineering Toolkit – Simulazione di un furto di credenziali e creazione di un payload per prendere il controllo della macchina di una vittima

IL SOCIAL ENGINEERING

“Ingegneria sociale significa usare il proprio ascendente e le capacità di persuasione per ingannare gli altri, convincendoli che l’ingegnere sociale sia quello che non è oppure manovrandoli. Di conseguenza l’ingegnere sociale può usare le persone per strappare loro informazioni con o senza l’ausilio di strumenti tecnologici”. Questo è quello che si legge all’inizio del libro, nella versione italiana, de “L’arte dell’inganno” scritto nel 2002 da Kevin D. Mitnick, considerato l’hacker più abile del mondo.

Il Social Engineering sfrutta quello che è definito l’anello più debole della sicurezza, ovvero l’Essere Umano. In un mondo dove, soprattutto nei paesi occidentali, si insegna ad amare e ad avere fiducia negli altri, noi esseri umani non siamo preparati contro le aggressioni (soprattutto quelle non fisiche) e spesso per temerle, se non le conosciamo, dobbiamo prima restarne vittime.

Al giorno d’oggi, con le tecnologie di sicurezza dei sistemi informatici che migliorano sempre di più (pensiamo agli anti-malware evoluti, agli IPS / IDS, alle tecnologie di sicurezza su cloud, all’intelligenza artificiale) un criminale che volesse attaccare e violare il sistema IT di un’azienda potrebbe non trovare vulnerabilità da sfruttare. L’unica strada che spesso può percorrere è quella di ricorrere a tecniche di Ingegneria Sociale. Le strutture più sicure, le tecnologie più moderne, sono infatti sempre vulnerabili ai comportamenti umani errati. Dobbiamo considerare che un attaccante davvero motivato tenterà qualsiasi strada per riuscire nei suoi intenti criminosi, e una di queste strade spesso è proprio sfruttare le debolezze degli utenti. E allora sarà solo questione di tempo, di pazienza, di perseveranza, ma ci riuscirà.

Non è un caso infatti che il Social Engineering sia una minaccia crescente per le organizzazioni di tutto il mondo. Attacchi di ingegneria sociale avvengono ogni giorno contro le aziende. Come rilevato anche nel Rapporto Clusit 2017, relativo a dati del 2016, il Social Engineering, e il Phishing (un suo tipo di attacco) è in fortissima crescita (in riferimento al campione analizzato dagli esperti del Clusit, si parla addirittura di un incremento del 1166%, come vediamo nell’immagine che segue).

Le diverse tecniche di attacco sul campione analizzato dal Clusit relativo al 2016 (fonte Rapporto Clusit 2017).

ATTACCHI NON TECNOLOGICI

Un amministratore di rete di una multinazionale che incautamente gettasse nei rifiuti, senza frantumarli, dei documenti riportanti dati tecnici e password del sistema informatico aziendale o un funzionario che gettasse rendiconti finanziari ed economici, esporrebbero l’intera azienda a gravi pericoli. Infatti i criminali sanno che spesso ciò accade e quindi quando vogliono raccogliere informazioni su una realtà da attaccare la prima cosa che fanno potrebbe proprio essere il rovistare nei cassonetti dell’immondizia esterni all’azienda (tecnica chiamata del “Dumpster Diving”).

Tra gli attacchi di Social Engineering non tecnologici più comuni, oltre quello appena visto, è importante ricordare anche lo “Shoulder Surfing” che si ha quando l’attaccante si posiziona dietro le spalle della vittima spiando quello che fa, quello che digita e soprattutto quello che legge (quindi codici, password, numeri di telefono, etc …). Tipica è la situazione nelle sale di attesa dell’aeroporto. Molto utilizzato è poi l’attacco che prende il nome di “Tailgating” e che consiste nell’entrare in un ambiente riservato seguendo un legittimo utente che entra. Di norma lasceremmo la porta aperta a chi sopraggiungesse dietro di noi e magari ha uno scatolone in mano o un badge della nostra azienda in vista. Rientrano in questo attacco anche le situazioni in cui un criminale riesce ad introdursi in un’azienda perché le porte di ingresso restano aperte vari secondi prima di richiudersi dopo l’ingresso di un legittimo dipendente. Un attacco di Social Engineering tipico e molto comune, non tecnologico, è spacciarsi per qualcun altro e riuscire a carpire informazioni soprattutto telefoniche ma anche di persona, che di norma non sarebbero rivelate.

Con l’evoluzione della tecnologia e il passare degli anni, il Social Engineering ha assunto sempre più anche un aspetto tecnologico. Sono state sviluppate soluzioni informatiche che permettono di migliorare gli attacchi di Ingegneria Sociale, permettendo il furto di credenziali di accesso, la creazione di pagine di phishing, l’invio di migliaia di false email con malware allegato, e molto altro.

IL SOCIAL ENGINEERING TOOLKIT (S.E.T.)

Tra i vari strumenti, quello più potente e maggiormente utilizzato dai criminali per attacchi di Ingegneria Sociale, diventato anche uno standard per il Penetration Testing, troviamo il Social Engineering Toolkit (S.E.T.). Scritto in Python dal fondatore di TrustedSec, ha avuto circa due milioni di downloads ed è stato presentato in occasione di grandi conferenze sulla Cyber Security tra cui Blackhat, DerbyCon, Defcon, e ShmooCon.

S.E.T. è installabile su piattaforme Linux e Mac OS X. Nelle simulazioni che seguiranno utilizzerò la distribuzione Kali Linux 2017.3 a 64 bit che ha già disponibile S.E.T. (ma si trova anche nelle versioni precedenti). Se non si avesse già confidenza con lo strumento, è possibile scaricare lo User_Manual dal repository ufficiale GitHub.

Vedremo ora alcune simulazioni di attacco utilizzando S.E.T. È importante sottolineare che la dimostrazione di questi attacchi ha solo scopo didattico per attività di Penetration Testing da effettuarsi sulla propria rete o su quella di altri solo se autorizzati ma anche soprattutto perché solo conoscendo come agisce il nemico possiamo prevenirlo.

Per avviare S.E.T. possiamo digitare nel terminale il comando “setoolkit” oppure tramite i menù di Kali “Applications”, “Social Engineering Tools” e quindi “Social Engineering Toolkit”. Dopo aver accettato le condizioni di utilizzo ci apparirà il menù iniziale di S.E.T.

CREDENTIAL HARVESTING (SNIFFIAMO LE CREDENZIALI DI FACEBOOK)

Questo è un tipico attacco Phishing attuato per “rubare” le credenziali di un utente su un portale web. Nel nostro esempio lo faremo per Facebook, ma ciò è possibile anche per account Gmail, Twitter, Yahoo, etc… Diremo allo strumento di clonare la pagina di login di Facebook in modo che poi su quella finta pagina dirotteremo l’utente del quale vogliamo rubare le credenziali mandandogli un messaggio di phishing.

Dal menu principale di S.E.T. selezioniamo “1) Social Engineering Attacks”, poi “2) Website Attack Vectors” e infine “3) Credential Harvester Attack Method”. Ci troveremo davanti la seguente finestra.

Sceglieremo la soluzione “2) Site Cloner”, l’applicazione ci chiederà quindi su quale indirizzo creare la finta pagina clonata. Confermiamo l’indirizzo proposto (che corrisponde alla nostra macchina attaccante). Ovviamente la nostra macchina dovrà essere raggiungibile dalla vittima o perché sulla stessa rete LAN o perché presente in Internet. Quindi digiteremo il sito da clonare, in questo caso “www.facebook.com” come si vede in figura.

Lo strumento a questo punto, dopo aver clonato la pagina di login di Facebook, si mette in ascolto sulla porta 80 in attesa che l’utente si colleghi e digiti le proprie credenziali. È il momento di creare il messaggio email di phishing da mandare alla vittima e nel quale inseriremo quindi l’indirizzo della nostra macchina attaccante. È importante nascondere il reale indirizzo, e questo lo faremo inserendo un link che come descrizione abbia il link fasullo. Ad esempio con Gmail durante la composizione della email occorre inserire il link attraverso il bottone indicato dalla freccia rossa nell’immagine sotto e dove nel testo da visualizzare inseriremo il finto link (http://www.facebook.com/pagina1547) mentre nell’indirizzo web l’indirizzo della macchina attaccante. Confermiamo quindi con ok …

Il messaggio è ora pronto per essere inviato alla vittima ed appare così.

La vittima riceve il nostro messaggio phishing e ignara del reale indirizzo del link lo preme trovandosi davanti la pagina di autenticazione di Facebook (finta). Qui inserirà le sue credenziali per poter visualizzare la pagina attesa.

Contemporaneamente sulla macchina attaccante succede però questo…

Ecco le credenziali dell’utente (nell’immagine il nome è stato volutamente cancellato). Troveremo il suo indirizzo gmail e la sua password “pwd12345”! La vittima ignara di quanto accaduto, dopo aver inserito utente e password di facebook ed aver dato l’ok, si troverà nuovamente la pagina di login di Facebook (quella reale questa volta). Non si porrà tante domande, ritenendo la cosa imputabile ad un problema temporaneo, e quindi inserirà nuovamente utente e password senza sapere che qualcuno ha ottenuto però le sue credenziali.

Come abbiamo visto se dal menu principale di S.E.T. selezioniamo “1) Social Engineering Attacks”, poi “2) Website Attack Vectors” e infine “3) Credential Harvester Attack Method” ci troveremo davanti la seguente finestra:

Prima abbiamo selezionato l’opzione “2) Site Cloner” e quindi abbiamo indicato noi quale sito clonare, e cioè quello di Facebook. Ma la procedura ha già dei Templates di pagine di login da poter usare e semplificarci così l’inserimento manuale. Se invece dell’opzione 2 scegliessimo l’opzione “1) Web Templates”, come vediamo nell’immagine seguente, S.E.T. ci proporrebbe già ad esempio Google, Twitter, Yahoo, …

Infine se scegliessimo invece l’opzione “3) Custom Import” potremmo indicare noi il percorso di un sito web da utilizzare (S.E.T. cercherebbe il file index) e che potremmo aver scaricato in precedenza.

CREATE A PAYLOAD AND LISTENER (CONTROLLIAMO LA MACCHINA DELLA VITTIMA

Il Social Engineering Toolkit non solo permette ad un attaccante di raccogliere password, numeri di telefono, numeri di carte di credito e altre informazioni sensibili, ma permette anche di prendere il controllo sulle macchine delle vittime. Simuleremo questo creando con S.E.T. un malware (un malicious payload per l’esattezza) che invieremo alla vittima. Una volta che questa aprirà quanto ricevuto avremo il controllo del suo computer windows.

Dal menu principale di S.E.T. selezioniamo “1) Social Engineering Attacks” e poi “4) Create a Payload and Listener”. Ci troveremo davanti la seguente finestra, dove vediamo elencati i vari payload che possiamo utilizzare. Per il nostro caso scegliamo il “5) Windows Meterpreter Reverse_TCP X64” utilizzabile su macchine con sistema operativo a 64 bit.

Il comando da noi scelto utilizzerà lo strumento Metasploit Framework, un importantissimo Tool per sviluppare ed eseguire exploit contro macchine remote, anch’esso strumento fondamentale nel Penetration Testing. Nel nostro caso questo creerà un malware (un trojan per l’esattezza) che una volta eseguito sulla macchina della vittima permetterà all’attaccante di prenderne il controllo. Dopo aver scelto il payload 5 indicheremo l’indirizzo Ip della macchina attaccante, la porta di ascolto (impostarne una a piacimento, io ho impostato la 4445) e quindi il payload verrà creato (nel nostro caso vedete è stato creato in /root/.set//payload.exe).

Infine ci verrà chiesto se attivare subito l’attacco, rispondendo “yes” si avvierà Metasploit e la macchina attaccante resterà in attesa che la vittima clicchi sul file del payload che nel frattempo abbiamo provveduto in qualche modo a farle avere (di norma attraverso un messaggio di posta elettronica ben preparato e dopo averlo rinominato). Il payload è un malware a tutti gli effetti e potrebbe venire identificato come “trojan” e bloccato dagli antivirus e da Windows defender sulle macchine più recenti e soluzioni malware aggiornate. Per il nostro scopo e per brevità ho disattivato le protezioni di Windows 10 della mia macchina vittima. Sappiate che in un caso reale però il criminale utilizzerà delle tecniche di evasione degli antivirus affinché questi non lo rilevino e l’attacco abbia successo. L’evasione degli antivirus potrebbe però essere oggetto di un mio futuro articolo.

Ecco avviato Metasploit il quale esegue il payload e si mette in ascolto sulla porta 445. Nel frattempo la vittima cliccherà sul malware e quindi si creerà la connessione tra le due macchine come mostrato nell’immagine seguente.

Premiamo invio e al prompt che comparirà digitiamo “sessions -i”. Verranno mostrate le sessioni attive. Nel nostro caso, immagine in basso, ne avremo una sola e ne vedremo i dettagli (tipo, nome computer vittima, IP di origine e Ip di destinazione, etc …). Al prompt che compare digitiamo “sessions -i 1” per indicare a Metasploit che vogliamo utilizzare questa sessione 1. E come per magia saremo collegati con la macchina target!

Digitando “help” verranno quindi mostrati tutti i comandi utilizzabili sulla macchina della vittima. Quelli in figura in basso sono solo alcuni di tutti quelli disponibili. Già solo su questi vediamo sysinfo per conoscere le informazioni sul sistema della vittima, kill per chiudere processi, shutdown per spegnerlo, ma ce ne sono molti altri.

Un comando di particolare importanza è shell. Questo ci permetterà di avere la shell della macchina della vittima; mentre questa è completamente ignara di quanto stia avvenendo.

Abbiamo visto solo alcune delle moltissime funzioni disponibili di questo strumento di Social Engineering e Penetration Testing ma già sono sufficienti per comprenderne la potenza e al contempo la pericolosità se usato per fini criminali. Chiaramente rispetto alle nostre simulazioni negli attacchi reali sarebbero utilizzate dal criminale tecniche di anonimato tramite proxy e Vpn e utilizzati payload che evadono le soluzioni di sicurezza.

A cura di: Antonio Sagliocca

Cyber Security Specialist, certificato “Ethical Hacker” e “Penetration Tester Professional”, si occupa di Vulnerability Assessment, Penetration Test e redazione di Alert di sicurezza.

Socio e Docente CLUSIT scrive su alcune riviste online ed è relatore a eventi pubblici di sensibilizzazione sulla sicurezza in Internet. Dal 2016 collabora con le Cattedre di “Informatica Giuridica” e “Informatica Giuridica Avanzata” dell’Università degli Studi di Milano.

Nel Gennaio 2017 per la rivista Internazionale di Informatica Giuridica “Ciberspazio e Diritto” vol. 18 n.57 (1-2017) edito da STEM Mucchi Editore, ha scritto la pubblicazione “Open Source Intelligence e Deep Web: scenari moderni delle Investigazioni Digitali”.

Ha scritto il capitolo VIII “Le minacce più comuni: difendersi da malware e da altri attacchi” del volume per studenti universitari “Tecnologia e Diritto – Fondamenti di informatica per il giurista” a cura di Giovanni Ziccardi e Pierluigi Perri pubblicato nel 2017 ed edito da Giuffrè Editore.

Download PDF
Condividi sui Social Network:

ISCRIVITI ALLA NEWSLETTER DI ICT SECURITY MAGAZINE

Una volta al mese riceverai gratuitamente la rassegna dei migliori articoli di ICT Security Magazine

Rispettiamo totalmente la tua privacy, non cederemo i tuoi dati a nessuno e, soprattutto, non ti invieremo spam o continue offerte, ma solo email di aggiornamento.
Privacy Policy