Le avventure del malware sfuggente, parte IV: campi DDE e documenti Word

Le avventure del malware sfuggente, parte IV: campi DDE e documenti Word

Questo articolo fa parte della serie Fileless Malware. Tutte le altre parti della serie:

In questo articolo, mi sarei tuffato in uno scenario di attacco fileless a più fasi ancora più complesso con blocco del sistema. Ma poi mi sono imbattuto in un attacco incredibilmente semplice, senza codice: non sono necessarie macro di Word o Excel! E questo dimostra molto più efficacemente la mia ipotesi originaria alla base di questa serie di articoli: rompere il perimetro esterno di qualsiasi organizzazione non è affatto un compito difficile.

Il primo attacco che descriverò sfrutta una vulnerabilità di Microsoft Word su cui si basa obsoleto protocollo di scambio dati dinamico (DDE). Lo era già fisso. Il secondo sfrutta una vulnerabilità più generale nelle funzionalità COM e di trasferimento degli oggetti di Microsoft.

Ritorno al futuro con DDE

Qualcun altro ricorda DDE? Probabilmente non molti. È stato uno dei primi protocolli di comunicazione tra processi che consentivano ad applicazioni e dispositivi di trasferire dati.

Anch'io lo conosco un po' perché controllavo e testavo le apparecchiature di telecomunicazione. All'epoca DDE consentiva, ad esempio, agli operatori dei call center di trasferire l'ID del chiamante a un'applicazione CRM, che alla fine apriva una carta cliente. Per fare ciò, dovevi collegare un cavo RS-232 tra il telefono e il computer. Quelli erano i giorni!

A quanto pare, Microsoft Word è ancora поддерживает DDE.

Ciò che rende efficace questo attacco senza codice è che puoi accedere al protocollo DDE direttamente dai campi automatici in un documento Word (tanto di cappello a SensePost per ricerche e pubblicazioni a proposito).

Codici di campo è un'altra antica funzionalità di MS Word che ti consente di aggiungere testo dinamico e un po' di programmazione al tuo documento. L'esempio più ovvio è il campo del numero di pagina, che può essere inserito nel footer utilizzando il valore {PAGE *MERGEFORMAT}. Ciò consente di generare automaticamente i numeri di pagina.

Le avventure del malware sfuggente, parte IV: campi DDE e documenti Word
Suggerimento: puoi trovare la voce del menu Campo sotto Inserisci.

Ricordo che quando ho scoperto per la prima volta questa funzionalità in Word, sono rimasto stupito. E finché la patch non lo ha disabilitato, Word supportava ancora l'opzione dei campi DDE. L'idea era che DDE permettesse a Word di comunicare direttamente con l'applicazione, in modo che potesse poi trasferire l'output del programma in un documento. A quel tempo era una tecnologia molto giovane: supporto per lo scambio di dati con applicazioni esterne. Successivamente è stato sviluppato nella tecnologia COM, che esamineremo anche di seguito.

Alla fine, gli hacker si sono resi conto che questa applicazione DDE poteva essere una shell di comandi, che ovviamente lanciava PowerShell, e da lì gli hacker potevano fare quello che volevano.
Lo screenshot qui sotto mostra come ho utilizzato questa tecnica stealth: un piccolo script PowerShell (di seguito denominato PS) dal campo DDE carica un altro script PS, che avvia la seconda fase dell'attacco.

Le avventure del malware sfuggente, parte IV: campi DDE e documenti Word
Grazie a Windows per l'avviso pop-up che il campo DDEAUTO integrato sta tentando segretamente di avviare la shell

Il metodo preferito per sfruttare la vulnerabilità è utilizzare una variante con il campo DDEAUTO, che esegue automaticamente lo script all'apertura Documento di parole.
Pensiamo a cosa possiamo fare al riguardo.

Come hacker alle prime armi, puoi, ad esempio, inviare un'e-mail di phishing, fingendo di appartenere al Servizio fiscale federale, e incorporare il campo DDEAUTO con lo script PS per la prima fase (un dropper, essenzialmente). E non è nemmeno necessario eseguire alcuna vera codifica di macro, ecc., come ho fatto io articolo precedente.
La vittima apre il tuo documento, lo script incorporato viene attivato e l'hacker finisce all'interno del computer. Nel mio caso, lo script PS remoto stampa semplicemente un messaggio, ma potrebbe altrettanto facilmente avviare il client PS Empire, che fornirà l'accesso remoto alla shell.
E prima che la vittima abbia il tempo di dire qualcosa, gli hacker si riveleranno essere gli adolescenti più ricchi del villaggio.

Le avventure del malware sfuggente, parte IV: campi DDE e documenti Word
La shell è stata lanciata senza la minima codifica. Anche un bambino può farlo!

DDE e campi

Successivamente Microsoft ha disabilitato DDE in Word, ma non prima che la società dichiarasse che la funzionalità era stata semplicemente utilizzata in modo improprio. La loro riluttanza a cambiare qualcosa è comprensibile. Nella mia esperienza, io stesso ho visto un esempio in cui l'aggiornamento dei campi all'apertura di un documento era abilitato, ma le macro di Word erano disabilitate dall'IT (ma mostravano una notifica). A proposito, puoi trovare le impostazioni corrispondenti nella sezione Impostazioni di Word.

Tuttavia, anche se l'aggiornamento dei campi è abilitato, Microsoft Word avvisa inoltre l'utente quando un campo richiede l'accesso ai dati eliminati, come nel caso di DDE sopra. Microsoft ti sta davvero avvertendo.

Ma molto probabilmente, gli utenti ignoreranno comunque questo avviso e attiveranno l'aggiornamento dei campi in Word. Questa è una delle rare opportunità per ringraziare Microsoft per aver disabilitato la pericolosa funzionalità DDE.

Quanto è difficile oggi trovare un sistema Windows senza patch?

Per questo test, ho utilizzato AWS Workspaces per accedere a un desktop virtuale. In questo modo ho ottenuto una macchina virtuale MS Office senza patch che mi ha permesso di inserire il campo DDEAUTO. Non ho dubbi che in modo simile si possano trovare altre aziende che non hanno ancora installato le necessarie patch di sicurezza.

Mistero degli oggetti

Anche se hai installato questa patch, ci sono altre falle di sicurezza in MS Office che consentono agli hacker di fare qualcosa di molto simile a quello che abbiamo fatto con Word. Nel prossimo scenario impareremo utilizzare Excel come esca per un attacco di phishing senza scrivere alcun codice.

Per comprendere questo scenario, ricordiamo il Microsoft Component Object Model, o in breve COM (modello oggetto componente).

COM esiste dagli anni '1990 ed è definito come un "modello di componenti orientato agli oggetti, indipendente dal linguaggio", basato su chiamate di procedure remote RPC. Per una comprensione generale della terminologia COM, leggere questo post su StackOverflow.

Fondamentalmente, puoi pensare a un'applicazione COM come a un eseguibile di Excel o Word o a qualche altro file binario che viene eseguito.

Si scopre che è possibile eseguire anche un'applicazione COM la sceneggiatura — JavaScript o VBScript. Tecnicamente si chiama scriptlet. Potresti aver visto l'estensione .sct per i file in Windows: questa è l'estensione ufficiale per gli scriptlet. Essenzialmente, sono codici script racchiusi in un wrapper XML:

<?XML version="1.0"?>

<scriptlet>
<registration
description="test"
progid="test"
version="1.00"
classid="{BBBB4444-0000-0000-0000-0000FAADACDC}"
remotable="true">
</registration>
<script language="JScript">
<![CDATA[

var r = new ActiveXObject("WScript.Shell").Run("cmd /k powershell -c Write-Host You have been scripted!");

]]>
</script>
</scriptlet>

Hacker e pentester hanno scoperto che in Windows esistono utilità e applicazioni separate che accettano oggetti COM e quindi anche scriptlet.

Posso passare uno scriptlet a un'utilità Windows scritta in VBS nota come pubprn. Si trova nelle profondità di C:Windowssystem32Printing_Admin_Scripts. A proposito, ci sono altre utilità Windows che accettano oggetti come parametri. Diamo prima un'occhiata a questo esempio.

Le avventure del malware sfuggente, parte IV: campi DDE e documenti Word
È del tutto naturale che la shell possa essere avviata anche da uno script di stampa. Vai Microsoft!

Come test, ho creato un semplice scriptlet remoto che avvia una shell e stampa un messaggio divertente: "Sei appena stato scriptato!" In sostanza, pubprn crea un'istanza di un oggetto scriptlet, consentendo al codice VBScript di eseguire un wrapper. Questo metodo offre un chiaro vantaggio agli hacker che vogliono intrufolarsi e nascondersi nel tuo sistema.

Nel prossimo post spiegherò come gli scriptlet COM possono essere sfruttati dagli hacker utilizzando fogli di calcolo Excel.

Per i tuoi compiti, dai un'occhiata questo video da Derbycon 2016, che spiega esattamente come gli hacker hanno utilizzato gli scriptlet. E anche leggere questo articolo sugli scriptlet e su una sorta di moniker.

Fonte: habr.com

Aggiungi un commento