Macro nei Template di Office: Office Template Macros (T1137.001)

Ogni volta che Word o Excel si avvia, il primo gesto silenzioso dell'applicazione è caricare un template di base — un file che definisce stili, layout e, potenzialmente, codice VBA. La tecnica Office Template Macros sfrutta esattamente questo meccanismo: un avversario inserisce una macro malevola nel template predefinito dell'applicazione, ottenendo così l'esecuzione automatica di codice a ogni apertura del programma.

La tecnica si colloca nella fase di Persistence (TA0003), quella in cui l'attaccante ha già conquistato l'accesso iniziale e lavora per mantenerlo attraverso riavvii, logoff e aggiornamenti. Il vettore è elegante nella sua semplicità: Word carica sempre Normal.dotm, Excel può essere configurato per caricare PERSONAL.XLSB dalla directory XLSTART, e un registro di sistema — la chiave GlobalDotName — permette di redirigere il caricamento verso un file arbitrario, anche remoto.

L'impatto pratico è documentato: 1 gruppo APT noto, 2 famiglie di malware associate e 2 mitigazioni raccomandate. Si tratta di numeri contenuti che non devono ingannare: la superficie d'attacco coincide con la base installata di Microsoft Office, presente in centinaia di milioni di endpoint aziendali. La persistenza tramite template è particolarmente insidiosa perché non richiede privilegi elevati, non genera servizi o task pianificati visibili e sopravvive ai normali cicli di aggiornamento del software.


Il modo più diretto per simulare questa tecnica in laboratorio è lavorare direttamente sul file Normal.dotm di Word. L'obiettivo è iniettare una macro VBA nel template in modo che venga eseguita automaticamente all'avvio dell'applicazione, replicando il comportamento documentato per MuddyWater.

La prima fase consiste nel localizzare il template. Su un sistema Windows con Office installato, il percorso standard è C:\Users\<username>\AppData\Roaming\Microsoft\Templates\Normal.dotm. Per Excel, la directory di riferimento è C:\Users\<username>\AppData\Roaming\Microsoft\Excel\XLSTART\ — se il file PERSONAL.XLSB non esiste, basta crearlo.

Per l'iniezione manuale, apri Word, premi Alt+F11 per accedere all'editor VBA, seleziona il progetto Normal nel riquadro di sinistra e inserisci un modulo con una subroutine AutoExec() o AutoOpen(). Un proof-of-concept sicuro per il lab:

Sub AutoExec()

  • Shell "calc.exe"* End Sub

Salva, chiudi e riapri Word: la calcolatrice comparirà, confermando la persistenza.

Per un approccio red team più realistico, Cobalt Strike (a pagamento) offre un workflow integrato: il modulo Office macro genera payload VBA che possono essere inseriti in un template Excel con trust delle macro forzato a livello di registro. La chiave da impostare è:

reg add "HKCU\Software\Microsoft\Office\16.0\Excel\Security" /v VBAWarnings /t REG_DWORD /d 1 /f

Il valore 1 indica "abilita tutte le macro senza notifica", disattivando di fatto il prompt di sicurezza per l'utente corrente.

Per simulare l'hijack tramite GlobalDotName, la modifica è altrettanto diretta:

reg add "HKCU\Software\Microsoft\Office\16.0\Word\Options" /v GlobalDotName /t REG_SZ /d "C:\Temp\evil.dotm" /f

Questo forza Word a caricare il template dalla posizione specificata. In ambiente di test, posiziona un .dotm contenente la macro di PoC nel percorso indicato e verifica che Word lo carichi al prossimo avvio.

Un'alternativa open source è EvilClippy (open source), un tool .NET che consente di manipolare documenti Office a livello binario, nascondendo il codice VBA dal visualizzatore macro standard. Per il nostro scenario, è utile per iniettare macro in un template pre-esistente da riga di comando senza aprire Office:

EvilClippy.exe -s hidden_macro.vbs Normal.dotm

Ricorda di ripristinare il template originale e le chiavi di registro al termine dell'esercizio. Un file Normal.dotm pulito può essere rigenerato semplicemente rinominando quello corrente e riavviando Word.


Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?

Scarica la guida gratuita e segui il percorso corretto fin dal primo passo

We use cookies

Utilizziamo i cookie sul nostro sito Web. Alcuni di essi sono essenziali per il funzionamento del sito, mentre altri ci aiutano a migliorare questo sito e l'esperienza dell'utente (cookie di tracciamento). Puoi decidere tu stesso se consentire o meno i cookie. Ti preghiamo di notare che se li rifiuti, potresti non essere in grado di utilizzare tutte le funzionalità del sito.