Adversaries may create or modify references in user document templates to conceal malicious code or force authentication attempts. For example, Microsoft’s Office Open XML (OOXML) specification defines an XML-based format for Office documents (.docx, xlsx, .pptx) to replace older binary formats (.doc, .xls, .ppt). OOXML files are packed together ZIP archives compromised of various XML files, referred to as parts, containing properties that collectively define how a document is rendered.[1]
Properties within parts may reference shared public resources accessed via online URLs. For example, template properties may reference a file, serving as a pre-formatted document blueprint, that is fetched when the document is loaded.
Adversaries may abuse these templates to initially conceal malicious code to be executed via user documents. Template references injected into a document may enable malicious payloads to be fetched and executed when the document is loaded.[2] These documents can be delivered via other techniques such as Phishing and/or Taint Shared Content and may evade static detections since no typical indicators (VBA macro, script, etc.) are present until after the malicious payload is fetched.[3] Examples have been seen in the wild where template injection was used to load malicious code containing an exploit.[4]
Adversaries may also modify the *\template
control word within an .rtf file to similarly conceal then download malicious code. This legitimate control word value is intended to be a file destination of a template file resource that is retrieved and loaded when an .rtf file is opened. However, adversaries may alter the bytes of an existing .rtf file to insert a template control word field to include a URL resource of a malicious payload.[5][6]
This technique may also enable Forced Authentication by injecting a SMB/HTTPS (or other credential prompting) URL and triggering an authentication attempt.[7][8][9]
ID | Name | Description |
---|---|---|
G0007 | APT28 |
APT28 used weaponized Microsoft Word documents abusing the remote template function to retrieve a malicious macro. [10] |
S0631 | Chaes |
Chaes changed the template target of the settings.xml file embedded in the Word document and populated that field with the downloaded URL of the next payload.[11] |
G0142 | Confucius |
Confucius has used a weaponized Microsoft Word document with an embedded RTF exploit.[12] |
G0079 | DarkHydrus |
DarkHydrus used an open-source tool, Phishery, to inject malicious remote template URLs into Microsoft Word documents and then sent them to victims to enable Forced Authentication.[13] |
G0035 | Dragonfly |
Dragonfly has injected SMB URLs into malicious Word spearphishing attachments to initiate Forced Authentication.[14] |
C0001 | Frankenstein |
During Frankenstein, the threat actors used trojanized documents that retrieved remote templates from an adversary-controlled website.[15] |
G0047 | Gamaredon Group |
Gamaredon Group has used DOCX files to download malicious DOT document templates and has used RTF template injection to download malicious payloads.[5] Gamaredon Group can also inject malicious macros or remote templates into documents already present on compromised systems.[16][17][18][19][20][21] |
G0100 | Inception |
Inception has used decoy documents to load malicious remote payloads via HTTP.[22] |
C0022 | Operation Dream Job |
During Operation Dream Job, Lazarus Group used DOCX files to retrieve a malicious document template/DOTM file.[23][24] |
G0081 | Tropic Trooper |
Tropic Trooper delivered malicious documents with the XLSX extension, typically used by OpenXML documents, but the file itself was actually an OLE (XLS) document.[25] |
S0670 | WarzoneRAT |
WarzoneRAT has been install via template injection through a malicious DLL embedded within a template RTF in a Word document.[12] |
ID | Mitigation | Description |
---|---|---|
M1049 | Antivirus/Antimalware |
Network/Host intrusion prevention systems, antivirus, and detonation chambers can be employed to prevent documents from fetching and/or executing malicious payloads.[7] |
M1042 | Disable or Remove Feature or Program |
Consider disabling Microsoft Office macros/active content to prevent the execution of malicious payloads in documents [26], though this setting may not mitigate the Forced Authentication use for this technique. |
M1031 | Network Intrusion Prevention |
Network/Host intrusion prevention systems, antivirus, and detonation chambers can be employed to prevent documents from fetching and/or executing malicious payloads.[7] |
M1017 | User Training |
Train users to identify social engineering techniques and spearphishing emails that could be used to deliver malicious documents. |
ID | Data Source | Data Component | Detects |
---|---|---|---|
DS0029 | Network Traffic | Network Connection Creation |
Monitor for newly constructed network connections that are sent or received by untrusted hosts. |
Network Traffic Content |
Monitor and analyze traffic patterns and packet inspection associated to protocol(s) that do not follow the expected protocol standards and traffic flows (e.g extraneous packets that do not belong to established flows, gratuitous or anomalous traffic patterns, anomalous syntax, or structure). Consider correlation with process monitoring and command line to detect anomalous processes execution and command line arguments associated to traffic patterns (e.g. monitor anomalies in use of files that do not normally initiate connections for respective protocol(s)). |
||
DS0009 | Process | Process Creation |
Analyze process behavior to determine if an Office application is performing actions, such as opening network connections, reading files, spawning abnormal child processes (ex: PowerShell), or other suspicious actions that could relate to post-compromise behavior. |