Iscriviti al webinar gratuito del 12 Maggio per diventare Forensic Analyst! Scopri di più
Corso Ethical Hacker: accedi alla promozione fino al 30 Aprile! Scopri di più
La tecnica Template Injection sfrutta un meccanismo legittimo dei formati documentali — il riferimento a template esterni — per trasformarlo in un vettore di download ed esecuzione di codice malevolo. Quando un utente apre un file OOXML (.docx, .xlsx, .pptx) o RTF, l'applicazione Office risolve automaticamente il riferimento al template indicato nei metadati interni del documento, scaricando la risorsa dalla URL specificata. Un attaccante può sostituire quel riferimento con un indirizzo sotto il proprio controllo, facendo sì che il payload venga recuperato solo al momento dell'apertura: il documento in sé non contiene macro, script o indicatori statici evidenti, risultando pulito alla scansione iniziale.
Questa tecnica si colloca nella tattica Defense Evasion (TA0005), perché il suo scopo primario è aggirare i controlli di sicurezza che analizzano i documenti alla ricerca di contenuto attivo. Un secondo scenario d'uso riguarda il Forced Authentication: iniettando una URL SMB o HTTPS, il documento forza il sistema della vittima a inviare credenziali NTLM verso un server controllato dall'avversario.
Con 7 gruppi APT, 2 software, 2 campagne documentate e 4 mitigazioni censite, T1221 rappresenta una tecnica trasversale, adottata sia da gruppi sponsorizzati da stati sia da attori moderatamente sofisticati che assemblano tool open source.
L'iniezione di template si replica in laboratorio con strumenti minimi. Il flusso base prevede tre fasi: creazione del documento esca, hosting del template malevolo e verifica della callback.
Preparazione del template malevolo. Serve un file .dotm (template Word con macro) ospitato su un server HTTP controllato. Per il lab, un semplice listener Python è sufficiente:
python3 -m http.server 8080
Questo servirà il file .dotm dalla directory corrente. La macro nel template può contenere un semplice comando di callback — in ambito red team, una shell Empire o Cobalt Strike, in lab un banale calc.exe per confermare l'esecuzione.
Iniezione nel documento OOXML. Un file .docx è un archivio ZIP. Basta decomprimerlo, modificare il file word/_rels/settings.xml.rels e alterare l'attributo Target della relazione di tipo attachedTemplate con la URL del proprio server. Poi si ricomprime il tutto:
unzip documento.docx -d doc_esploso
All'interno di word/_rels/settings.xml.rels, il nodo Relationship con tipo attachedTemplate va modificato sostituendo il valore Target con l'indirizzo del listener. Dopo la modifica:
cd doc_esploso && zip -r ../documento_malevolo.docx .
Phishery per il Forced Authentication. Il tool open source Phishery (open source) è stato usato in campagne reali da DarkHydrus. Permette di iniettare automaticamente una URL di template remoto in un documento Word esistente, semplificando il processo e orientandolo alla raccolta di credenziali NTLM. In combinazione con Responder (open source), si intercettano gli hash NTLMv2 quando la vittima apre il documento e il sistema tenta l'autenticazione SMB verso il server dell'attaccante.
Variante RTF. Per i file RTF l'approccio è diverso: si manipola il control word \*\template inserendo la URL malevola direttamente nel testo RTF con un editor esadecimale o tramite script. Strumenti come oletools (open source), in particolare il modulo rtfobj, consentono sia di analizzare che di comprendere la struttura dei file RTF prima dell'iniezione.
Per la validazione, si monitora il listener HTTP: al momento dell'apertura del documento, si deve osservare la richiesta GET per il template. Sul lato Forced Authentication, Responder cattura gli hash sul listener SMB. È raccomandabile eseguire questi test in un ambiente isolato con macchine virtuali snapshot-based, senza connettività verso reti di produzione.
Scarica la guida gratuita e segui il percorso corretto fin dal primo passo