Endpoint Exploit and Service Crash Monitoring
An adversary is exploiting unpatched November 2026 vulnerabilities to gain access or elevate privileges, causing service crashes followed by anomalous child processes or suspicious RDP logins.
Based on research by Cisco Talos 2026-11-11 12 steps · 5 queries T1021.001 T1068 T1190 T1566
Brief
Why now
Microsoft's November 2026 security update addresses a significant number of vulnerabilities, including critical remote code execution (RCE) and local privilege escalation (LPE) flaws. As detailed in the Microsoft Patch Tuesday for November 2026 — Snort rules and prominent vulnerabilities report by Cisco Talos, several of these flaws target widely deployed services like MSMQ and the Windows Print Spooler. We publish this hunt to help practitioners identify where unpatched software is actively being exploited.
How the hunt flows
The hunt begins with scoping. It identifies hosts reporting the targeted November 2026 CVEs through vulnerability management telemetry. This narrows the field to the systems at greatest risk and sets the stage for behavioral monitoring.
Next, the hunt monitors early-stage instability signals. It runs parallel queries to find rare application crashes and service state changes. It looks for exceptions in critical binaries like mqsvc.exe or spoolsv.exe. Low-prevalence crashes on vulnerable hosts often indicate memory corruption attempts associated with RCE exploits.
If instability exists, the hunt pivots to follow-on signals. It searches for shells or LOLBins like cmd.exe or powershell.exe launched by the vulnerable parent processes. It also checks for new RDP sign-ins involving these hosts. This phase connects the initial service failure to successful post-exploitation execution.
Finally, the hunt uses an automated agent to evaluate the entire chain. The agent weighs the unpatched state against the observed instability and execution signs to reach a verdict. This correlation allows an analyst to confirm if a crash was a routine error or a confirmed exploitation event.
What the hunt cannot see
The hunt relies on endpoint telemetry. It cannot see activity on unmanaged hosts that lack a monitoring agent. Additionally, while the hunt monitors network connections on Port 1801 for MSMQ, it lacks visibility into the specific RPC calls or internal payloads that would confirm a heap overflow without additional protocol-level logging.
Steps
-
Identify unpatched hosts
Query · scopingScope the hunt to hosts reporting the targeted November 2026 CVEs.
reads hb_vulnerability_findingsqlSELECT device_uid, cve_uid, severity, first_seen FROM hb_vulnerability_finding WHERE instr(',' || '{{vulnerable_cves}}' || ',', ',' || cve_uid || ',') > 0What a hit looks like. A list of vulnerable devices. Absence does not mean they are safe, only that they have been scanned and reported.
-
Rare application crashes
Query · baselineFind rare crashes in vulnerable applications that may indicate memory-corruption exploit attempts.
reads hb_application_errorsqlSELECT app_name, device_hostname, exception_code, COUNT(*) AS crash_count, MIN(time) AS first_crash FROM hb_application_error WHERE time >= datetime('now', '-{{lookback_days}} days') AND instr(',' || '{{critical_apps}}' || ',', ',' || LOWER(app_name) || ',') > 0 AND ('{{scope_hosts}}' = '' OR instr(',' || '{{scope_hosts}}' || ',', ',' || device_hostname || ',') > 0) GROUP BY app_name, device_hostnameWhat a hit looks like. Rare crashes (low host count) for vulnerable services like mqsvc.exe or spoolsv.exe.
-
Service state changes
Query · triageMonitor for unexpected stops or crashes in critical Windows services targeted by privilege escalation CVEs.
reads hb_service_activitysqlSELECT device_hostname, service_name, service_state, time FROM hb_service_activity WHERE time >= datetime('now', '-{{lookback_days}} days') AND instr(',' || '{{critical_apps}}' || ',', ',' || LOWER(service_name) || ',') > 0 AND ('{{scope_hosts}}' = '' OR instr(',' || '{{scope_hosts}}' || ',', ',' || device_hostname || ',') > 0)What a hit looks like. Service stops occurring near crash events or suspicious software installation logs.
-
Early stage read
Agent triageEvaluate if observed crashes and service events indicate likely exploitation of the unpatched estate.
-
Anomalous child processes
Query · detection candidateDetect shells or LOLBins launched by vulnerable services, indicative of successful code execution.
reads hb_process_activitysqlSELECT device_hostname, parent_process_name, process_name, process_cmd_line, user_name, time FROM hb_process_activity WHERE time >= datetime('now', '-{{lookback_days}} days') AND instr(',' || '{{critical_apps}}' || ',', ',' || LOWER(parent_process_name) || ',') > 0 AND instr(',' || '{{post_exploit_binaries}}' || ',', ',' || LOWER(process_name) || ',') > 0 AND ('{{scope_hosts}}' = '' OR instr(',' || '{{scope_hosts}}' || ',', ',' || device_hostname || ',') > 0)What a hit looks like. System services or Office apps spawning shells. This is high-confidence evidence of exploitation.
-
Suspicious RDP sign-ins
Query · enrichmentIdentify lateral movement originating from or targeting likely beachheads.
reads hb_auth_signinsqlSELECT device_hostname, dst_endpoint_hostname, actor_user_name, logon_type, src_endpoint_ip, time FROM hb_auth_signin WHERE time >= datetime('now', '-{{lookback_days}} days') AND logon_type IN ('Remote Interactive', 'Network') AND ('{{scope_hosts}}' = '' OR instr(',' || '{{scope_hosts}}' || ',', ',' || device_hostname || ',') > 0 OR instr(',' || '{{scope_hosts}}' || ',', ',' || dst_endpoint_hostname || ',') > 0)What a hit looks like. New or unexpected sign-ins involving hosts that previously showed exploitation signals.
-
Follow-on stage read
Agent triageCorrelate early instability with follow-on execution to reach a final verdict.
-
Route on verdict
DecisionRoute to containment or review based on the agent's full-chain analysis.
-
Isolate compromised host
Response actionHalt the attack and prevent further lateral movement.
-
Analyst triage and close-out
Analyst taskManually confirm the threat chain and document findings.
-
Patching verification
Analyst taskEnsure all identified vulnerable systems are patched to prevent re-exploitation.
Coverage
Scenario coverage
| Stage | Covered | How, or why not |
|---|---|---|
| Client-Side Initial Access T1190 · T1566 |
Yes | crash-prevalence |
| Exploitation of Remote Services T1190 · T1210 |
Yes | anomalous-child-processes, crash-prevalence |
| Local Privilege Escalation T1068 |
Yes | service-instability |
| Identity and Infrastructure Compromise T1021.001 |
Yes | suspicious-logons |
Blind spots
- Needs Complete endpoint agent coverage. A host without an agent provides no crash or process telemetry, making it a blind spot for behavioral analysis. It would answer whether unmanaged hosts are vulnerable and exploited.
- Needs hb_network_connection with rpc_interface_uuid. General socket monitoring on Port 1801 shows connectivity but not the specific MSMQ operations that would indicate a heap overflow exploit. It would answer whether exploitation is occurring via specific MSMQ RPC calls.
Parameters & data
Parameters
| Parameter | Type | Default | What it is |
|---|---|---|---|
critical_apps | list[path] | outlook.exe, winword.exe, excel.exe, mqsvc.exe, spoolsv.exe, msiexec.exe | Process names vulnerable to RCE or privilege escalation. |
lookback_days | number | 14 | Days of history to examine for behavior. |
post_exploit_binaries | list[path] | cmd.exe, powershell.exe, bitsadmin.exe, certutil.exe, schtasks.exe | Common shell and LOLBin executables used after exploitation. |
scope_hosts | list[host] | — | Optional host filter; leave empty for whole fleet. |
vulnerable_cves | list[string] | CVE-2026-109459, CVE-2026-124194, CVE-2026-118146, CVE-2026-113752, CVE-2026-105501, CVE-2026-116714 | CVE identifiers from the November 2026 update. |
Telemetry
| Source | Category | Telemetry |
|---|---|---|
| Endpoint telemetry (hb_ surfaces) | endpoint | endpoint |
| Identity / sign-in telemetry | identity | identity |
Source
---
analysis: A single detection rule might alert on a known shell spawn from spoolsv.exe,
but this hunt connects unpatched vulnerability state to stability signals (crashes)
and then to execution, providing the full context required to distinguish an exploit
from general system instability.
blind_spots:
- id: telemetry-gaps
question: whether unmanaged hosts are vulnerable and exploited
requires: Complete endpoint agent coverage
risk: A host without an agent provides no crash or process telemetry, making it
a blind spot for behavioral analysis.
- id: msmq-rpc-visibility
question: whether exploitation is occurring via specific MSMQ RPC calls
requires: hb_network_connection with rpc_interface_uuid
risk: General socket monitoring on Port 1801 shows connectivity but not the specific
MSMQ operations that would indicate a heap overflow exploit.
stage: remote-service-exploitation
coverage:
- stage: client-side-exploitation
status: covered
steps:
- crash-prevalence
- stage: remote-service-exploitation
status: covered
steps:
- anomalous-child-processes
- crash-prevalence
- stage: local-privilege-escalation
status: covered
steps:
- service-instability
- stage: identity-infrastructure-compromise
status: covered
steps:
- suspicious-logons
guardrails:
claims: no_unsupported
evidence: citation_required
missing_data: not_benign
telemetry: untrusted
hunt:
applicability: campaign-specific
handoff: keep-as-periodic-hunt
justification: The November 2026 update addresses over 1,300 vulnerabilities, including
multiple high-severity RCEs and EoPs. Verifying the absence of behavioral exploitation
signs is critical for prioritizing remediation.
methodology: model-assisted
trigger: intel-report
hypothesis: An adversary is exploiting unpatched November 2026 vulnerabilities to
gain access or elevate privileges, causing service crashes followed by anomalous
child processes or suspicious RDP logins.
labels:
- hunt
- attack.t1190
- attack.t1566
- attack.t1068
- attack.t1021.001
- execution
- initial access
- lateral movement
- privilege escalation
name: Endpoint Exploit and Service Crash Monitoring
parameters:
critical_apps:
default:
- outlook.exe
- winword.exe
- excel.exe
- mqsvc.exe
- spoolsv.exe
- msiexec.exe
description: Process names vulnerable to RCE or privilege escalation.
type: list[path]
lookback_days:
default: '14'
description: Days of history to examine for behavior.
type: number
post_exploit_binaries:
default:
- cmd.exe
- powershell.exe
- bitsadmin.exe
- certutil.exe
- schtasks.exe
description: Common shell and LOLBin executables used after exploitation.
type: list[path]
scope_hosts:
default: []
description: Optional host filter; leave empty for whole fleet.
type: list[host]
vulnerable_cves:
default:
- CVE-2026-109459
- CVE-2026-124194
- CVE-2026-118146
- CVE-2026-113752
- CVE-2026-105501
- CVE-2026-116714
description: CVE identifiers from the November 2026 update.
from:
kind: article
observed: '2026-11-11'
ref: https://blog.talosintelligence.com/microsoft-patch-tuesday-for-november-2026/
type: list[string]
provenance:
authors:
- name: Huntbase hunt generation
org: huntbase.io
generated:
by: huntbase-hunt-generation
from: https://blog.talosintelligence.com/microsoft-patch-tuesday-for-november-2026/
gates:
- dry-run
- lint
- critic
model: hb_google/gemini-3-flash-preview
rationale: The hunt starts with systems reporting the specific November 2026 CVEs
in hb_vulnerability_finding. Prioritize servers running MSMQ (Port 1801) or hosting
critical Office workloads.
references:
- name: "Microsoft Patch Tuesday for November 2026 \u2014 Snort rules and prominent\
\ vulnerabilities"
url: https://blog.talosintelligence.com/microsoft-patch-tuesday-for-november-2026/
related:
- hunt: azure-grafana-ssrf-monitoring
reason: Azure Managed Grafana exploitation (CVE-2026-114160) requires cloud API
activity monitoring, which is out of scope for this endpoint-focused behavioral
hunt.
relation: out-of-scope-alternative
scenario:
stages:
- name: Client-Side Initial Access
observables:
- outlook.exe
- winword.exe
- excel.exe
- CVE-2026-124194
- CVE-2026-110043
- CVE-2026-110047
- CVE-2026-118292
slug: client-side-exploitation
tactic: initial-access
techniques:
- T1190
- T1566
- name: Exploitation of Remote Services
observables:
- mqsvc.exe
- spoolsv.exe
- srvnet.sys
- Port 1801
- Port 445
- CVE-2026-109459
- CVE-2026-113825
- CVE-2026-118207
slug: remote-service-exploitation
tactic: execution
techniques:
- T1190
- T1210
- name: Local Privilege Escalation
observables:
- msiexec.exe
- spoolsv.exe
- AppXDeploymentServer
- CVE-2026-105501
- CVE-2026-113752
- CVE-2026-116714
slug: local-privilege-escalation
tactic: privilege-escalation
techniques:
- T1068
- name: Identity and Infrastructure Compromise
observables:
- Active Directory Domain Services
- Azure Managed Grafana
- CVE-2026-118146
- CVE-2026-118148
- CVE-2026-114160
slug: identity-infrastructure-compromise
tactic: lateral-movement
techniques:
- T1021.001
summary: The November 2026 Microsoft security update addresses over 1300 vulnerabilities,
including critical remote code execution (RCE) flaws in Office, Exchange, and
core Windows services like MSMQ and SMB. A spoofing vulnerability in Outlook is
being exploited in the wild, while critical authorization bypasses in Active Directory
and Azure Managed Grafana pose significant infrastructure risks.
severity: high
targets:
analyst:
name: Tier-2 analyst
role: analyst
endpoint:
category: endpoint
name: Endpoint telemetry (hb_ surfaces)
telemetry:
- endpoint
hunter:
agent: true
name: Hunt agent
identity:
category: identity
name: Identity / sign-in telemetry
telemetry:
- identity
tlp: clear
type: investigation
---
# Endpoint Exploit and Service Crash Monitoring
This hunt targets critical vulnerabilities disclosed in the November 2026 Patch Tuesday update. It monitors for evidence of exploitation in two primary phases: early signals of instability (application crashes and service state changes) and follow-on malicious activity (unauthorized shell execution and lateral movement). The hunt uses a phased flow to connect the presence of unpatched software with behavioral indicators of compromise, allowing an agent to weigh the full attack chain.
## vulnerable-inventory
<!-- Identify unpatched hosts -->
Scope the hunt to hosts reporting the targeted November 2026 CVEs.
```sqlite target=endpoint role=scoping params=(vulnerable_cves=vulnerable_cves)
~~~yaml
expected: A list of vulnerable devices. Absence does not mean they are safe, only
that they have been scanned and reported.
reads:
- cve_uid
- device_uid
- first_seen
- severity
silence: not_evidence_of_absence
source: hb_vulnerability_finding
verified: dry-run
verified_at: '2026-11-11'
~~~
SELECT device_uid, cve_uid, severity, first_seen FROM hb_vulnerability_finding WHERE instr(',' || '{{vulnerable_cves}}' || ',', ',' || cve_uid || ',') > 0
```
## early-signals
<!-- Monitor early stage signals -->
parallel:
- → crash-prevalence
- → service-instability
join: → early-triage
## crash-prevalence
<!-- Rare application crashes -->
Find rare crashes in vulnerable applications that may indicate memory-corruption exploit attempts.
```sqlite target=endpoint role=baseline params=(lookback_days=lookback_days, critical_apps=critical_apps, scope_hosts=scope_hosts)
~~~yaml
baseline:
compare: first_seen
window: '{{lookback_days}}d'
expected: Rare crashes (low host count) for vulnerable services like mqsvc.exe or
spoolsv.exe.
prevalence:
by: device_hostname
key:
- app_name
rare_below: 5
reads:
- app_name
- device_hostname
- exception_code
- time
silence: not_evidence_of_absence
source: hb_application_error
verified: dry-run
verified_at: '2026-11-11'
~~~
SELECT app_name, device_hostname, exception_code, COUNT(*) AS crash_count, MIN(time) AS first_crash FROM hb_application_error WHERE time >= datetime('now', '-{{lookback_days}} days') AND instr(',' || '{{critical_apps}}' || ',', ',' || LOWER(app_name) || ',') > 0 AND ('{{scope_hosts}}' = '' OR instr(',' || '{{scope_hosts}}' || ',', ',' || device_hostname || ',') > 0) GROUP BY app_name, device_hostname
```
## service-instability
<!-- Service state changes -->
Monitor for unexpected stops or crashes in critical Windows services targeted by privilege escalation CVEs.
```sqlite target=endpoint role=triage params=(lookback_days=lookback_days, critical_apps=critical_apps, scope_hosts=scope_hosts)
~~~yaml
expected: Service stops occurring near crash events or suspicious software installation
logs.
reads:
- device_hostname
- service_name
- service_state
- time
silence: not_evidence_of_absence
source: hb_service_activity
verified: dry-run
verified_at: '2026-11-11'
~~~
SELECT device_hostname, service_name, service_state, time FROM hb_service_activity WHERE time >= datetime('now', '-{{lookback_days}} days') AND instr(',' || '{{critical_apps}}' || ',', ',' || LOWER(service_name) || ',') > 0 AND ('{{scope_hosts}}' = '' OR instr(',' || '{{scope_hosts}}' || ',', ',' || device_hostname || ',') > 0)
```
## early-triage
<!-- Early stage read -->
```agent target=hunter
cite: required
context:
- vulnerable-inventory
- crash-prevalence
- service-instability
max_iterations: 4
objective: Determine if the crashes and service instability on vulnerable hosts align
with the exploitation of November 2026 vulnerabilities.
success_criteria: A per-host verdict of instability vs. exploitation attempt.
tools:
- endpoint
- identity
```
## follow-on-signals
<!-- Monitor follow-on activity -->
parallel:
- → anomalous-child-processes
- → suspicious-logons
join: → full-chain-analysis
## anomalous-child-processes
<!-- Anomalous child processes -->
Detect shells or LOLBins launched by vulnerable services, indicative of successful code execution.
```sqlite target=endpoint role=detection-candidate params=(lookback_days=lookback_days, critical_apps=critical_apps, post_exploit_binaries=post_exploit_binaries, scope_hosts=scope_hosts)
~~~yaml
expected: System services or Office apps spawning shells. This is high-confidence
evidence of exploitation.
reads:
- device_hostname
- parent_process_name
- process_cmd_line
- process_name
- time
- user_name
silence: not_evidence_of_absence
source: hb_process_activity
verified: dry-run
verified_at: '2026-11-11'
~~~
SELECT device_hostname, parent_process_name, process_name, process_cmd_line, user_name, time FROM hb_process_activity WHERE time >= datetime('now', '-{{lookback_days}} days') AND instr(',' || '{{critical_apps}}' || ',', ',' || LOWER(parent_process_name) || ',') > 0 AND instr(',' || '{{post_exploit_binaries}}' || ',', ',' || LOWER(process_name) || ',') > 0 AND ('{{scope_hosts}}' = '' OR instr(',' || '{{scope_hosts}}' || ',', ',' || device_hostname || ',') > 0)
```
## suspicious-logons
<!-- Suspicious RDP sign-ins -->
Identify lateral movement originating from or targeting likely beachheads.
```sqlite target=identity role=enrichment params=(lookback_days=lookback_days, scope_hosts=scope_hosts)
~~~yaml
expected: New or unexpected sign-ins involving hosts that previously showed exploitation
signals.
reads:
- actor_user_name
- device_hostname
- dst_endpoint_hostname
- logon_type
- src_endpoint_ip
- time
silence: not_evidence_of_absence
source: hb_auth_signin
verified: dry-run
verified_at: '2026-11-11'
~~~
SELECT device_hostname, dst_endpoint_hostname, actor_user_name, logon_type, src_endpoint_ip, time FROM hb_auth_signin WHERE time >= datetime('now', '-{{lookback_days}} days') AND logon_type IN ('Remote Interactive', 'Network') AND ('{{scope_hosts}}' = '' OR instr(',' || '{{scope_hosts}}' || ',', ',' || device_hostname || ',') > 0 OR instr(',' || '{{scope_hosts}}' || ',', ',' || dst_endpoint_hostname || ',') > 0)
```
## full-chain-analysis
<!-- Follow-on stage read -->
```agent target=hunter
cite: required
context:
- early-triage
- anomalous-child-processes
- suspicious-logons
max_iterations: 6
objective: Evaluate the combined evidence of unpatched vulnerabilities, service crashes,
anomalous processes, and sign-in activity to confirm successful exploitation.
success_criteria: A final verdict of malicious | suspicious for any host with confirmed
follow-on activity.
tools:
- endpoint
- identity
```
## route
<!-- Route on verdict -->
if~: "the full-chain-analysis verdict is malicious for at least one host" (confidence: high, judge=hunter)
then: → contain-host
indeterminate: → analyst-review
unavailable: → analyst-review (blind_spot: telemetry-gaps)
else: → patch-verification
## contain-host
<!-- Isolate compromised host -->
```action target=endpoint
~~~yaml
approval: required
~~~
Isolate the host via the EDR and capture a memory dump for forensic analysis.
```
→ analyst-review
## analyst-review
<!-- Analyst triage and close-out -->
```manual target=analyst
Review the full-chain analysis; confirm if the service crashes were related to the unpatched CVEs and subsequent behavior.
```
→ patch-verification
## patch-verification
<!-- Patching verification -->
```manual target=analyst
Confirm that the November 2026 security updates are applied to all systems listed in the initial scoping query.
```
→ end
Run it
Take this hunt into your environment.
Open it in Huntbase to run every step against your own connections, with Scout weighing the evidence and your analysts in command. Or take the open hunt.md file anywhere that reads the format.
Machine-drafted by huntbase-hunt-generation using hb_google/gemini-3-flash-preview, gated by dry-run, lint, critic, then reviewed by a person.