
Tattiche di Phishing XLL
Con il recente annuncio di Microsoft riguardo al blocco delle macro nei documenti provenienti da internet (email e download web), gli aggressori hanno iniziato ad esplorare aggressivamente altre opzioni per ottenere accesso guidato dall'utente (UDA). Ci sono diverse considerazioni da valutare e bilanciare quando si cerca un metodo di phishing valido per l'accesso:
Queste sono le domande principali, ma ce ne sono sicuramente altre. Le cose si complicano quando ci si rende conto che questi fattori si combinano tra loro; ad esempio, se un cliente ha un proxy web che vieta il download di eseguibili o DLL, potresti dover inserire il tuo payload all'interno di un contenitore (ZIP, ISO, ecc.). Fare ciò può presentare ulteriori problemi in seguito per quanto riguarda il rilevamento. Difese più robuste richiedono combinazioni più complesse di tecniche per essere superate.
Questo articolo sarà scritto pensando a un'organizzazione target fittizia; questa organizzazione ha adottato diverse misure difensive, tra cui regole di filtraggio delle email, blacklist di determinati tipi di file scaricabili, whitelist delle applicazioni sugli endpoint e Microsoft Defender for Endpoint come soluzione EDR.
Le organizzazioni reali potrebbero non adottare nessuna di queste, alcune o anche più difese, che possono semplificare o complicare le tecniche delineate in questa ricerca. Come sempre, conosci il tuo target.
Gli XLL sono DLL, specificamente create per Microsoft Excel. A un occhio inesperto sembrano molto simili ai normali documenti Excel.

Gli XLL offrono un'opzione molto interessante per l'UDA poiché vengono eseguiti da Microsoft Excel, un software molto comune nelle reti dei clienti; come vantaggio aggiuntivo, poiché sono eseguiti da Excel, il nostro payload bypasserà quasi certamente le regole di whitelist delle applicazioni perché un'applicazione attendibile (Excel) lo esegue. Gli XLL possono essere scritti in C, C++ o C#, il che offre molta più flessibilità e potenza (e sanità mentale) rispetto alle macro VBA, rendendoli una scelta desiderabile.
Lo svantaggio, ovviamente, è che ci sono pochissimi usi legittimi per gli XLL, quindi DOVREBBE essere una casella molto facile da spuntare per le organizzazioni per bloccare il download di quell'estensione di file sia via email che tramite download web. Purtroppo molte organizzazioni sono anni indietro e quindi gli XLL rappresentano un metodo di phishing valido per un po' di tempo.
Esistono una serie di eventi diversi che possono essere utilizzati per eseguire codice all'interno di un XLL, il più notevole dei quali è xlAutoOpen. L'elenco completo può essere visto qui:

Facendo doppio clic su un XLL, l'utente viene accolto da questa schermata:

Questa singola finestra di dialogo è tutto ciò che separa l'utente dall'esecuzione del codice; con un social engineering abbastanza sottile, l'esecuzione del codice è quasi certa.
Una cosa da tenere a mente è che gli XLL, essendo eseguibili, sono specifici per architettura. Ciò significa che devi conoscere il tuo target; la versione di Microsoft Office/Excel utilizzata dall'organizzazione target di solito determina per quale architettura devi costruire il tuo payload.
C'è una suddivisione abbastanza netta nelle versioni di Office che può essere usata come regola pratica:
Office 2016 o precedente: x86
Office 2019 o successivo: x64
Va notato che è possibile installare l'altra architettura per ciascun prodotto, tuttavia queste sono le architetture predefinite installate e nella maggior parte dei casi questo dovrebbe essere un modo affidabile per decidere per quale architettura realizzare il tuo XLL. Ovviamente, a seconda del metodo di consegna e del pretesto utilizzato nella campagna di phishing, è possibile fornire entrambe le versioni e fare affidamento sulla vittima per selezionare la versione appropriata per il proprio sistema.
Il payload XLL costruito durante questa ricerca si basa su questo progetto di edparcell. Il suo repository ha buone istruzioni per iniziare con gli XLL in Visual Studio, e ho usato il suo codice come punto di partenza per sviluppare un file XLL dannoso.
Una deviazione notevole dal suo repository è che se desideri creare il tuo progetto XLL, dovrai scaricare l'ultimo Excel SDK e poi seguire le istruzioni nel repository precedentemente collegato usando questa versione invece della versione 2010 dell'SDK menzionata nel README.
La consegna del payload è una considerazione importante nel contesto dell'UDA. Ci sono due metodi principali su cui ci concentreremo:
Sia allegando un file che includendo un link a un sito web da cui scaricare un file, l'email è una parte critica del processo UDA. Nel corso degli anni molte organizzazioni (e provider di posta elettronica) sono maturate e hanno imposto regole per proteggere utenti e organizzazioni da allegati dannosi. L'efficacia varia, ma le organizzazioni ora hanno la capacità di:
Testare le regole email di un'organizzazione può essere una parte importante di un engagement, ma bisogna sempre prestare attenzione per non rivelare che è in corso un'operazione Red Team e che si stanno raccogliendo attivamente informazioni.
Ai fini di questo articolo, si assumerà che l'organizzazione target abbia regole robuste per gli allegati email che impediscono la consegna di un payload XLL. Ci sposteremo e guarderemo alla consegna via web.
L'email sarà ancora utilizzata in questo vettore d'attacco, tuttavia invece di inviare un allegato verrà utilizzata per inviare un link a un sito web. Le regole del proxy web e le mitigazioni di rete che controllano i tipi di file scaricabili possono differire da quelle applicate per gli allegati email. Ai fini di questo articolo, si assume che l'organizzazione impedisca il download di file eseguibili (intestazioni MZ) dal web. In questo caso, vale la pena esplorare i packer/contenitori.