← All posts

Process Lineage Analysis: Catching LOLBin Abuse and Living-off-the-Land Attacks

Your attacker didn't drop custom malware. They used PowerShell, certutil, and mshta — tools that were already on the machine. Here's how parent-child process analysis exposes living-off-the-land techniques that traditional antivirus completely misses.

The most dangerous attacks don't involve malware at all. They use the tools Windows ships with — PowerShell, certutil, mshta, rundll32, regsvr32 — to achieve their objectives. The technique is called "Living off the Land" (LOL), and the binaries used are called LOLBins (Living off the Land Binaries). MITRE ATT&CK catalogs dozens of these, and they share one critical property: antivirus won't flag them because they're legitimate, signed Microsoft executables.

So how do you catch an attacker using your own tools against you? You don't look at what is running — you look at who started it. That's process lineage analysis: examining the parent-child relationships between running processes to identify chains that should never exist.

Why Parent-Child Relationships Matter

Every process on Windows has a parent — the process that created it. When you double-click Notepad from Explorer, the chain is explorer.exe → notepad.exe. That's normal. When you open PowerShell from the Start menu, it's explorer.exe → powershell.exe. Also normal.

But when Microsoft Word spawns PowerShell? That's winword.exe → powershell.exe — a classic indicator of macro-based malware. When a browser spawns cmd.exe? That's chrome.exe → cmd.exe — possibly a drive-by compromise. When WMI spawns a command interpreter? That's lateral movement.

The individual processes are all legitimate. PowerShell is legitimate. Word is legitimate. The relationship is what's suspicious. This is the fundamental insight behind process lineage analysis: context reveals intent.

The 12 Suspicious Lineage Patterns

WinSentinel's Process Lineage Audit checks every running process against 12 empirically-derived rules, each mapped to a specific MITRE ATT&CK technique. Here are the most critical:

Critical: Office → Script Engine

If Word, Excel, PowerPoint, or Outlook spawns cmd.exe, powershell.exe, wscript.exe, cscript.exe, or mshta.exe, you almost certainly have a malicious macro executing. This maps to T1204.002 (User Execution: Malicious File) and is the #1 initial access vector for phishing attacks.

# What this looks like in process tree:
winword.exe (PID 5832)
  └─ cmd.exe (PID 9014)
       └─ powershell.exe (PID 9128)
            └─ certutil.exe (PID 9256)  ← downloading payload

# This is a textbook phishing chain:
# 1. User opens malicious .docm attachment
# 2. Macro launches cmd.exe
# 3. cmd spawns powershell to download staged payload
# 4. certutil decodes/downloads the real malware

Critical: Browser → Script Engine

Chrome, Edge, Firefox, or Brave spawning cmd.exe or powershell.exe indicates T1189 (Drive-by Compromise). The user visited a malicious page that exploited a browser vulnerability to gain code execution. Unlike Office macros, the user didn't even need to open a file — they just visited a URL.

Critical: Script Engine → Network Utility

When powershell.exe or wscript.exe spawns certutil, bitsadmin, or curl, the attacker is retrieving a second-stage payload. This is T1105 (Ingress Tool Transfer) — the moment the attacker transitions from "I have execution" to "I'm bringing in real tools." This is your last chance to catch them before they establish persistence.

Critical: WMI → Execution Engine

wmiprvse.exe spawning cmd.exe, powershell.exe, or rundll32.exe is T1047 (Windows Management Instrumentation) — one of the most reliable indicators of lateral movement. An attacker on Machine A uses WMI to execute commands on Machine B without ever establishing an interactive session. The WMI provider host (wmiprvse.exe) is the process that handles the execution request.

# Lateral movement via WMI:
wmiprvse.exe (PID 1024)   ← WMI provider host
  └─ powershell.exe (PID 4492)
       └─ net.exe (PID 4510)  ← attacker enumerating network

Warning: LOLBin Proxy Execution

Several Windows binaries can be abused to execute arbitrary code while appearing legitimate in logs:

When these binaries appear with suspicious parents (cmd, powershell, wscript, or WMI), WinSentinel flags them. The binary itself isn't malicious — the context of who spawned it is.

Beyond Lineage: Orphaned Processes and Deep Nesting

Process lineage analysis doesn't stop at parent-child rules. WinSentinel checks two additional indicators:

Orphaned Processes

An orphaned process is one whose parent process no longer exists. While some orphaning is normal (the parent finishes its work and exits), a high count of orphaned processes can indicate:

# WinSentinel orphan detection:
[WARNING] Orphaned Processes Detected (14)
  Found 14 processes whose parent process no longer exists.
  Sample: suspicious-svc (PID 8812), helper64 (PID 9102), ...
  Review orphaned processes running from unusual locations.

Deep Interpreter Nesting

Legitimate automation rarely nests more than 2 levels of command interpreters. When you see 3 or more levels of cmd/powershell/wscript chained together, it's usually an obfuscation technique:

# Suspicious deep nesting:
cmd.exe
  └─ powershell.exe -enc [base64]
       └─ cmd.exe /c "..."
            └─ powershell.exe -nop -w hidden -c ...
                 └─ certutil.exe -urlcache -f ...

# Each layer decodes or deobfuscates the next command.
# The attacker is intentionally making analysis difficult.

WinSentinel's depth analysis walks the full process tree and flags any chain with 3+ levels of nested interpreters. Each level of indirection is another barrier for incident responders — and a signal of adversary sophistication.

Safe Exclusions: Reducing False Positives

Not every suspicious-looking chain is an attack. WinSentinel maintains a set of known-safe parent-child combinations to minimize noise:

These exclusions are carefully curated. A rule is only added after confirming that the combination is consistently benign across enterprise deployments. False positive reduction is critical — if an alert fires on every machine, defenders learn to ignore it.

Real-World Attack Chains WinSentinel Catches

Scenario 1: Emotet-Style Phishing

outlook.exe → winword.exe → cmd.exe → powershell.exe

Triggered rules:
  [CRITICAL] Office Application Spawning Script Engine [T1204.002]
  [WARNING] Command Prompt Spawning PowerShell [T1059.001]

The user opened an email attachment in Outlook, which launched Word
with a .docm file containing a malicious macro. The macro spawned
cmd.exe, which launched PowerShell to download the Emotet dropper.

Scenario 2: Lateral Movement via WMI

wmiprvse.exe → cmd.exe → whoami.exe
                        → net.exe (net group "Domain Admins")
                        → powershell.exe (Invoke-WebRequest...)

Triggered rules:
  [CRITICAL] WMI Spawning Execution Engine [T1047]

Attacker on another machine used wmic to execute reconnaissance
commands on this endpoint. WMI provider host spawning cmd and
network enumeration tools is textbook lateral movement.

Scenario 3: Scheduled Task Persistence

svchost.exe (Task Scheduler) → mshta.exe → powershell.exe

Triggered rules:
  [WARNING] Scheduled Task Spawning Script Engine [T1053.005]
  [WARNING] Potential LOLBin Abuse: mshta [T1218.005]

Attacker created a scheduled task that runs mshta.exe with a URL
pointing to a remote HTA file. mshta downloads and executes the
script, which spawns PowerShell for the actual payload. Classic
multi-stage persistence that survives reboots.

Running a Process Lineage Audit

# Install WinSentinel:
dotnet tool install --global WinSentinel.Cli

# Run process lineage analysis:
winsentinel --audit --modules process-lineage

# Example output:
 Process Lineage Audit
 ──────────────────────────────────────────────────────
 [CRITICAL] Critical Process Lineage Violations (2)
   • outlook → powershell (PID 8412): Office Application
     Spawning Script Engine [T1204.002]
   • wmiprvse → cmd (PID 9018): WMI Spawning Execution
     Engine [T1047]

 [WARNING] Suspicious Process Lineage Patterns (3)
   • svchost → mshta (PID 5512): Scheduled Task Spawning
     Script Engine [T1053.005]
   • cmd → rundll32 (PID 6230): Potential LOLBin Abuse:
     rundll32 [T1218.011]
   • powershell → certutil (PID 7128): Potential LOLBin
     Abuse: certutil [T1140]

 [PASS] No Orphaned Processes
 [PASS] No Deep Interpreter Nesting

Each finding includes the full MITRE ATT&CK technique ID, the parent and child process names with PIDs, and remediation guidance including the PowerShell commands needed to terminate the suspicious chain.

Process Lineage vs. Traditional Detection

Here's why process lineage analysis catches what traditional tools miss:

From Detection to Prevention

Process lineage analysis is primarily a detection tool — it catches attacks in progress or after the fact. But the findings drive preventive action:

Fleet-Wide Lineage Monitoring

On a single machine, a process lineage audit gives you a point-in-time snapshot. Across a fleet, it gives you a threat detection capability. With WinSentinel Pro, every agent-equipped machine runs continuous lineage analysis and reports suspicious chains to the central dashboard:

# Fleet-wide process lineage summary (Pro):
winsentinel fleet status --filter process-lineage

Fleet Lineage Analysis (87 nodes reporting)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Critical chains:  3 across 2 nodes
Warning chains:  12 across 8 nodes
Orphaned procs:   2 nodes with high orphan counts
Deep nesting:     0 nodes flagged

Active Threats:
  DESKTOP-8XK2: outlook → cmd → powershell [T1204.002]
    First seen: 2026-06-07 09:14:22 UTC
    Action: Isolate endpoint, initiate IR

  SERVER-DB01: wmiprvse → cmd → whoami [T1047]
    First seen: 2026-06-07 11:02:15 UTC
    Action: Investigate lateral movement source

The fleet view transforms process lineage from "single machine forensics" into "enterprise threat detection." When the same suspicious pattern appears on multiple machines simultaneously, you're looking at an active intrusion — and you know exactly which machines are affected.

Getting Started

Run a process lineage audit right now:

dotnet tool install --global WinSentinel.Cli
winsentinel --audit --modules process-lineage

Every finding includes the MITRE ATT&CK technique ID, full parent-child chain, and actionable remediation steps. The free tier gives you complete process lineage analysis on any Windows machine — no agents, no cloud, no license required.

Your attacker already knows which LOLBins are on your machine. The question is whether you know how they're being used. Process lineage analysis turns Windows' built-in tools from a liability into a detection surface. For fleet-wide continuous monitoring with automated alerting, see WinSentinel Pro.