← All hunts high TLP:CLEAR

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

  1. Identify unpatched hosts

    Query · scoping

    Scope the hunt to hosts reporting the targeted November 2026 CVEs.

    reads hb_vulnerability_findingsql
    SELECT device_uid, cve_uid, severity, first_seen FROM hb_vulnerability_finding WHERE instr(',' || '{{vulnerable_cves}}' || ',', ',' || cve_uid || ',') > 0

    What a hit looks like. A list of vulnerable devices. Absence does not mean they are safe, only that they have been scanned and reported.

  2. Rare application crashes

    Query · baseline

    Find rare crashes in vulnerable applications that may indicate memory-corruption exploit attempts.

    reads hb_application_errorsql
    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

    What a hit looks like. Rare crashes (low host count) for vulnerable services like mqsvc.exe or spoolsv.exe.

  3. Service state changes

    Query · triage

    Monitor for unexpected stops or crashes in critical Windows services targeted by privilege escalation CVEs.

    reads hb_service_activitysql
    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)

    What a hit looks like. Service stops occurring near crash events or suspicious software installation logs.

  4. Early stage read

    Agent triage

    Evaluate if observed crashes and service events indicate likely exploitation of the unpatched estate.

  5. Anomalous child processes

    Query · detection candidate

    Detect shells or LOLBins launched by vulnerable services, indicative of successful code execution.

    reads hb_process_activitysql
    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)

    What a hit looks like. System services or Office apps spawning shells. This is high-confidence evidence of exploitation.

  6. Suspicious RDP sign-ins

    Query · enrichment

    Identify lateral movement originating from or targeting likely beachheads.

    reads hb_auth_signinsql
    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)

    What a hit looks like. New or unexpected sign-ins involving hosts that previously showed exploitation signals.

  7. Follow-on stage read

    Agent triage

    Correlate early instability with follow-on execution to reach a final verdict.

  8. Route on verdict

    Decision

    Route to containment or review based on the agent's full-chain analysis.

  9. Isolate compromised host

    Response action

    Halt the attack and prevent further lateral movement.

  10. Analyst triage and close-out

    Analyst task

    Manually confirm the threat chain and document findings.

  11. Patching verification

    Analyst task

    Ensure all identified vulnerable systems are patched to prevent re-exploitation.

Coverage

Scenario coverage

StageCoveredHow, 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

ParameterTypeDefaultWhat it is
critical_appslist[path]outlook.exe, winword.exe, excel.exe, mqsvc.exe, spoolsv.exe, msiexec.exeProcess names vulnerable to RCE or privilege escalation.
lookback_daysnumber14Days of history to examine for behavior.
post_exploit_binarieslist[path]cmd.exe, powershell.exe, bitsadmin.exe, certutil.exe, schtasks.exeCommon shell and LOLBin executables used after exploitation.
scope_hostslist[host]—Optional host filter; leave empty for whole fleet.
vulnerable_cveslist[string]CVE-2026-109459, CVE-2026-124194, CVE-2026-118146, CVE-2026-113752, CVE-2026-105501, CVE-2026-116714CVE identifiers from the November 2026 update.

Telemetry

SourceCategoryTelemetry
Endpoint telemetry (hb_ surfaces)endpointendpoint
Identity / sign-in telemetryidentityidentity

Source

Download hunt.md Definition (JSON) An open hunt.md file; it runs anywhere that reads the format.
---
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.

Locked pack

Sign up to unlock

Pack contents are available to Huntbase users.