Persistenza via Add-in Office: Add-ins (T1137.006)
La tecnica T1137.006 descrive l'abuso degli add-in di Microsoft Office come meccanismo di persistenza. Un add-in è un componente che estende le funzionalità di Word, Excel, Outlook e degli altri applicativi della suite; quando è registrato correttamente, viene caricato automaticamente all'avvio dell'applicazione ospite. Questa caratteristica lo rende un vettore ideale per mantenere l'accesso su un sistema compromesso senza dover modificare chiavi di Run del registro o creare servizi, riducendo la superficie di detection tradizionale.
La tecnica si colloca nella tattica TA0003 (Persistence) e sfrutta diverse tipologie di componenti: Word/Excel Add-in Libraries (WLL e XLL), add-in VBA, componenti COM, automation add-in, il VBA Editor (VBE), VSTO (Visual Studio Tools for Office) e gli add-in Outlook. Ognuna di queste categorie ha percorsi di installazione e chiavi di registro differenti, ma condivide lo stesso principio: l'esecuzione automatica di codice ogni volta che l'utente apre un documento o avvia l'applicazione.
L'impatto operativo è significativo perché Office è presente sulla quasi totalità delle workstation aziendali e viene lanciato quotidianamente. I dati MITRE riportano 1 gruppo APT (Naikon) e 3 famiglie malware (Bisonal, LunarMail, LunarLoader) che hanno adottato questa tecnica, con un focus particolare sulle campagne di cyberespionage asiatiche ed europee.
In un contesto di red teaming, la persistenza via add-in Office è particolarmente elegante perché sopravvive a reboot, cambio credenziali e spesso anche a reimaging parziali se i profili roaming vengono ripristinati. Il vettore più semplice e documentato è la Word Startup folder, sfruttata da Naikon con il payload intel.wll e da Bisonal con file .wll.
Il percorso target su Windows è tipicamente:
*%APPDATA%\Microsoft\Word\STARTUP*
Qualsiasi file con estensione .wll (in realtà una DLL rinominata) presente in questa cartella viene caricato automaticamente all'avvio di Word. La DLL deve esportare la funzione DllMain o le funzioni WLL standard come wdCallBack. Per generare il payload in laboratorio si può usare MSFVenom (open source) per creare una DLL x64 e rinominarla, oppure compilare un progetto C/C++ con Visual Studio Community (gratuito) esportando le entry point richieste.
Per gli XLL (add-in Excel), il percorso è analogo sotto *%APPDATA%\Microsoft\Excel\XLSTART* oppure registrato via HKCU\Software\Microsoft\Office<version>\Excel\Options\OPEN. Il framework Excel-XLL-Payload-Generator e il progetto EXCELntDonut (entrambi open source su GitHub) semplificano la generazione di XLL weaponizzati contenenti shellcode.
Per i VSTO add-in, il red teamer deve creare un manifest firmato (o abusare della trust chain locale) e registrare il componente sotto HKCU\Software\Microsoft\Office<app>\Addins<ProgID> con i valori Manifest, LoadBehavior=3 e FriendlyName. Il tool Officepurge e i template VSTO di Visual Studio (gratuito nella edizione Community) sono la strada più pulita.
Per Outlook, sfruttato da LunarMail e LunarLoader, la registrazione COM avviene sotto HKCU\Software\Microsoft\Office\Outlook\Addins<Name> e non richiede privilegi amministrativi. Un add-in Outlook è particolarmente prezioso in engagement lunghi perché la maggior parte degli utenti tiene il client aperto per l'intera giornata lavorativa, garantendo esecuzione continuativa del beacon.
Durante un engagement autorizzato, testate sempre in una VM isolata con snapshot: un errore in DllMain può crashare Word ripetutamente e rivelare la vostra presenza al primo tentativo di apertura da parte dell'utente target. Considerate anche la firma del codice: gli ambienti hardened con GPO che bloccano unsigned add-ins richiedono l'uso di certificati self-signed installati preventivamente nel trust store utente.
Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?
Accedi alle lezioni gratuite e segui il percorso corretto fin dal primo passo