Persistenza via Template Office: Office Template Macros (T1137.001)
La tecnica T1137.001 - Office Template Macros rappresenta uno dei meccanismi di persistenza più eleganti nell'arsenale degli avversari che colpiscono ambienti Windows aziendali. Sfruttando il modo in cui le applicazioni Microsoft Office caricano i template di base ad ogni avvio, un attaccante può iniettare codice VBA (Visual Basic for Applications) che verrà eseguito automaticamente ogni volta che l'utente apre Word o Excel.
Collocata nella tattica TA0003 (Persistence), questa tecnica opera nella fase post-exploitation della kill chain, tipicamente dopo un initial access ottenuto tramite phishing o exploit. I due bersagli principali sono il template Normal.dotm di Word, presente per default nel profilo utente, e PERSONAL.XLSB di Excel, che invece va creato ma viene caricato automaticamente da XLSTART.
Una variante più sofisticata consiste nel manipolare la chiave di registro GlobalDotName, che permette di specificare un percorso arbitrario per il template globale, aprendo la strada al caricamento di file remoti o mascherati. Il vantaggio operativo per l'avversario è duplice: la persistenza sopravvive a riavvii e cambi credenziali, e l'esecuzione avviene sotto un processo legittimo firmato Microsoft (winword.exe, excel.exe), riducendo drasticamente la superficie di detection tradizionale basata su binari sospetti.
Dal punto di vista offensivo, la simulazione di T1137.001 in un esercizio red team richiede accesso al profilo utente della vittima e la capacità di scrivere nel percorso dei template. La catena base è deterministica e riproducibile in laboratorio.
Per Word, il target è il file:
C:\Users<username>\AppData\Roaming\Microsoft\Templates\Normal.dotm
Il payload VBA può essere iniettato programmaticamente aprendo il template con Word in modalità automation via PowerShell o COM, iniettando il modulo nella collezione VBProject.VBComponents e salvando. Un pattern classico utilizza l'evento Document_Open() oppure AutoExec() per innescare l'esecuzione ad ogni apertura successiva dell'applicazione.
Per Excel il percorso equivalente è:
C:\Users<username>\AppData\Roaming\Microsoft\Excel\XLSTART\PERSONAL.XLSB
Ogni file .xlsb o .xlsm posto in XLSTART viene caricato all'avvio di Excel, quindi non è nemmeno necessario sovrascrivere un template esistente — basta depositare il proprio.
Sul fronte tooling, gli operatori red team utilizzano tipicamente:
- MacroPack (freemium, versione Community open source e Pro a pagamento) per la generazione di documenti Office weaponizzati con offuscamento VBA
- Cobalt Strike (a pagamento) che, come indicato nei dati MITRE, dispone di funzionalità native per abusare di Excel Workbook abilitando la fiducia sulle macro tramite modifica del registro HKCU\Software\Microsoft\Office<version><app>\Security\VBAWarnings
- Empire e Covenant (open source) per generazione di payload VBA con stager HTTP/HTTPS
La variante avanzata sfrutta la chiave di registro GlobalDotName sotto HKCU\Software\Microsoft\Office<version>\Word\Options, che consente di puntare Word a un template arbitrario — anche su UNC path remoto. Perché GlobalDotName venga onorato, il template deve risiedere in una Trusted Location o essere marcato come Trusted Document; queste locations sono configurate sotto HKCU\Software\Microsoft\Office<version>\Word\Security\Trusted Locations.
Un ulteriore vettore consiste nel dirottare l'ordine di ricerca di Word 2016, che cerca Normal.dotm prima in *C:\Program Files (x86)\Microsoft Office\root\Office16* — piazzare qui un template richiede privilegi elevati ma garantisce persistenza system-wide. In laboratorio, testate sempre in VM isolata con snapshot pre-attacco e verificate il comportamento con Process Monitor (gratuito, Sysinternals) filtrando su Path contains Normal.dotm.
Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?
Accedi alle lezioni gratuite e segui il percorso corretto fin dal primo passo