Back to Intelligence

BlueHammer (CVE-2026-33825): Eight-Stage Windows Defender Privilege Escalation Chain — OTX Pulse Analysis & Enterprise Detection Pack

SA
Security Arsenal Team
October 22, 2026
11 min read

AlienVault OTX has published a pulse covering BlueHammer (CVE-2026-33825), an eight-stage local privilege-escalation chain targeting the Windows Defender Antimalware Platform prior to version 4.18.26030.3011. Originally documented by Qualys, this is not a theoretical vulnerability — it is a fully weaponized escalation primitive that converts a standard-user foothold into NT AUTHORITY\SYSTEM and, via offline SAM parsing and SAMR operations, a path to full domain compromise.

The attack chain is notable for its living-off-the-land character. BlueHammer does not rely on a single memory corruption bug. Instead, it orchestrates legitimate Windows internals — CloudFilter callbacks, batch opportunistic locks (oplocks), object-manager symbolic links, Defender's own update RPC interface, and SAMR protocol abuse — into a deterministic escalation sequence. Because the chain abuses the Defender platform itself, the very tool organizations trust for endpoint protection becomes the escalation vehicle.

The objective is unambiguous: credential theft and identity dominance. Post-escalation stages target LSASS and the SAM hive, enabling pass-the-hash lateral movement. The OTX tags (pass-the-hash, lsass credential theft, domain compromise) confirm the pulse authors see this as an identity-attack enabler — the kind of primitive ransomware affiliates and initial access brokers prize, because any commodity loader that lands as a standard user can pair with BlueHammer for instant elevation.

While no named threat actor has claimed the chain, the presence of a public proof-of-concept hash in OTX means weaponization by criminal tooling pipelines is a matter of when, not if. Treat every unpatched endpoint as exposed.

Threat Actor / Malware Profile

Adversary attribution: Unknown. The pulse does not tie BlueHammer to a named APT or criminal group. However, the exploitation methodology is consistent with post-exploitation frameworks used by ransomware affiliates and red-team tooling that has historically leaked into criminal channels.

Distribution method: BlueHammer requires pre-existing code execution as a standard user. It is a second-stage component. Expected delivery pairings include phishing droppers, cracked-software loaders, SEO-poisoned installers, and post-compromise deployment by hands-on-keyboard operators. Security teams should hunt for it wherever initial-access telemetry already fires.

Payload behavior (the eight-stage chain):

  1. Initial execution in a standard-user context
  2. Abuse of CloudFilter callbacks (cloud file sync filter driver) to influence file resolution
  3. Batch oplock manipulation to stall file handles and win race conditions
  4. Object-manager symbolic link redirection to swap trusted paths for attacker-controlled ones
  5. Invocation of Defender's update RPC interface to coerce the antimalware service into processing attacker-positioned files
  6. Defender, running as SYSTEM, executes the planted payload — escalation achieved
  7. Offline SAM hive parsing to extract local account password hashes
  8. SAMR protocol operations for account enumeration/manipulation, staging pass-the-hash lateral movement toward domain compromise

C2 communication: None inherent — this is a local escalation chain, not an implant. Network indicators will come from whatever payload is executed post-elevation (e.g., pass-the-hash SMB/RPC traffic, \PIPE\ lateral movement, or a follow-on beacon).

Persistence mechanism: Not built-in. Persistence is established by the operator after SYSTEM access is obtained — commonly via service creation, scheduled tasks, or Defender exclusion abuse. Critically, an attacker with SYSTEM can also tamper with or blind the very Defender instance they abused, so post-exploitation Defender state must be treated as untrusted.

Anti-analysis techniques: The chain's core evasion is architectural — it routes execution through a signed, trusted Microsoft binary (MsMpEng.exe), which defeats application-allowlisting and reputation-based detection. The use of oplock races and symlink redirection also complicates sandbox reproduction, since many analysis environments do not emulate cloud sync filter drivers.

IOC Analysis

The pulse carries three indicators:

IndicatorTypeOperational Use
8846f7eaee8fb117ad06bdd830b7586cFileHash-MD5Block list / EDR hash ban — likely the public PoC or exploit loader
f4ffef4204880031a6a532ff5c1b5686e6a301c365f492071c1d462fa5b6b4a0FileHash-SHA256Primary pivot — cross-reference against VirusTotal, MalwareBazaar, and your EDR's file inventory
CVE-2026-33825CVEVulnerability management pivot — correlate against Defender platform version inventory

How SOC teams should operationalize these:

  • Hash-based detection is a floor, not a ceiling. Public PoC hashes are trivially recompiled and repacked. Use the hashes for retro-hunts ("has this binary ever executed here?") and for EDR block rules, but anchor primary detection on behavior — oplock creation against Defender directories, suspicious MsMpEng.exe child processes, and SAM hive access.
  • The CVE is your most actionable indicator. Query your asset inventory for Defender platform versions below 4.18.26030.3011. Every unpatched endpoint is a pre-positioned escalation path for any standard-user compromise.
  • Feed integration: Pull this OTX pulse into your TIP (MISP, OpenCTI, ThreatConnect) via the OTX API and auto-push hash indicators to EDR block policies. AlienVault USM Anywhere and Sentinel native OTX connectors both support direct pulse ingestion.
  • Tooling for decoding/pivoting: VirusTotal Enterprise for hash reputation, MISP for correlation, sigcheck/Get-FileHash for local verification, and the Qualys reference write-up for stage-by-stage engineering context.

Detection Engineering

YAML
---
title: BlueHammer CVE-2026-33825 — Suspicious Oplock and Symlink Activity Against Defender Paths
id: 7c2a1f4e-9b3d-4e1a-a5c6-2f8d9e0b1a23
status: experimental
description: Detects handle/oplock and object-manager symlink manipulation targeting Windows Defender platform directories, consistent with BlueHammer stages 2-4 (CloudFilter callbacks, batch oplocks, object-manager symlinks)
references:
  - https://blog.qualys.com/product-tech/2026/10/21/bluehammer-cve-2026-33825-windows-defender-privilege-escalation
author: Security Arsenal Threat Intel
date: 2026/10/22
logsource:
  category: file_event
  product: windows
detection:
  selection_target:
    TargetFilename|contains:
      - '\ProgramData\Microsoft\Windows Defender\'
      - '\Program Files\Windows Defender\'
      - '\MsMpEng.exe'
      - '\MpSigStub.exe'
  selection_actor:
    Image|endswith:
      - '\cmd.exe'
      - '\powershell.exe'
      - '\pwsh.exe'
      - '\rundll32.exe'
      - '\wscript.exe'
      - '\cscript.exe'
      - '\mshta.exe'
  condition: selection_target and selection_actor
falsepositives:
  - Legitimate Defender platform updates (MpSigStub execution)
  - Enterprise management tooling touching Defender directories
level: high
tags:
  - attack.privilege_escalation
  - attack.t1068
  - attack.t1036
---
title: BlueHammer Post-Exploitation — LSASS or SAM Hive Access by Non-System Process
id: 3d8b5c2f-1a7e-4f6b-9c2d-8e4a6b0d3f15
status: experimental
description: Detects suspicious access to LSASS memory or the SAM hive consistent with BlueHammer post-escalation credential theft stages (offline SAM parsing, LSASS credential theft)
references:
  - https://blog.qualys.com/product-tech/2026/10/21/bluehammer-cve-2026-33825-windows-defender-privilege-escalation
author: Security Arsenal Threat Intel
date: 2026/10/22
logsource:
  category: process_access
  product: windows
detection:
  selection_lsass:
    TargetImage|endswith: '\lsass.exe'
    GrantedAccess|contains:
      - '0x1010'
      - '0x1410'
      - '0x1438'
      - '0x143a'
      - '0x1fffff'
  filter_legit:
    SourceImage|endswith:
      - '\MsMpEng.exe'
      - '\svchost.exe'
      - '\wininit.exe'
      - '\csrss.exe'
      - '\services.exe'
  condition: selection_lsass and not filter_legit
falsepositives:
  - Legitimate EDR/AV products accessing LSASS for monitoring
  - System backup and forensic tooling
level: critical
tags:
  - attack.credential_access
  - attack.t1003.001
  - attack.t1003.002
---
title: BlueHammer Post-Exploitation — SAMR Account Enumeration and Pass-the-Hash Artifacts
id: 9e4d7a1b-6c3f-4a2e-b8d5-1f7c3e9a2b48
status: experimental
description: Detects SAMR protocol abuse and anomalous NTLM logon patterns consistent with pass-the-hash lateral movement following BlueHammer SYSTEM escalation
references:
  - https://blog.qualys.com/product-tech/2026/10/21/bluehammer-cve-2026-33825-windows-defender-privilege-escalation
author: Security Arsenal Threat Intel
date: 2026/10/22
logsource:
  product: windows
  service: security
detection:
  selection_samr:
    EventID: 4661
    ObjectServer: 'Security Account Manager'
  selection_ntlm_ptm:
    EventID: 4624
    LogonType: 3
    AuthenticationPackageName: 'NTLM'
    LmPackageName: 'NTLMv1'
  condition: 1 of selection_*
timeframe: 15m
falsepositives:
  - Legacy applications forcing NTLMv1 authentication
  - Domain admin tools performing legitimate SAMR queries
level: high
tags:
  - attack.lateral_movement
  - attack.t1550.002
  - attack.t1087
KQL — Microsoft Sentinel / Defender
// BlueHammer (CVE-2026-33825) hunt — Defender exploitation + credential theft behaviors
// Hunt 1: Unpatched Defender platform versions in the estate
let VulnerableDefender = DeviceInfo
    | where TimeGenerated > ago(1d)
    | summarize arg_max(TimeGenerated, *) by DeviceId;
// Hunt 2: MsMpEng spawning unexpected child processes (post-RPC execution artifact)
let DefenderAbuse = DeviceProcessEvents
    | where TimeGenerated > ago(7d)
    | where InitiatingProcessFileName =~ "MsMpEng.exe"
    | where FileName !in~ ("MpCmdRun.exe", "MsSense.exe", "MpDefenderCoreService.exe", "conhost.exe")
    | project TimeGenerated, DeviceName, FileName, ProcessCommandLine, InitiatingProcessCommandLine, AccountName, SHA256;
// Hunt 3: Non-system processes touching the SAM hive
let SAMAccess = DeviceEvents
    | where TimeGenerated > ago(7d)
    | where ActionType == "FileCreated" or ActionType == "FileModified"
    | where FileName has_any ("SAM", "SYSTEM") and FolderPath has "system32\\config"
    | where InitiatingProcessFileName !in~ ("System", "MsMpEng.exe", "svchost.exe", "smss.exe", "csrss.exe")
    | project TimeGenerated, DeviceName, ActionType, FolderPath, InitiatingProcessFileName, InitiatingProcessCommandLine;
// Hunt 4: Known BlueHammer IoC hashes observed anywhere in process or file telemetry
let KnownHashes = dynamic(["f4ffef4204880031a6a532ff5c1b5686e6a301c365f492071c1d462fa5b6b4a0"]);
let HashHits = DeviceProcessEvents
    | where TimeGenerated > ago(30d)
    | where SHA256 in~ (KnownHashes) or MD5 =~ "8846f7eaee8fb117ad06bdd830b7586c"
    | project TimeGenerated, DeviceName, FileName, FolderPath, SHA256, MD5, ProcessCommandLine, AccountName;
union DefenderAbuse, SAMAccess, HashHits
| sort by TimeGenerated desc
PowerShell
# BlueHammer (CVE-2026-33825) IOC & Posture Hunt — Security Arsenal
# Run elevated on endpoints or deploy via RMM/SCCM. Outputs findings to CSV.

$report = @()

# --- 1. Defender platform version check (primary exposure indicator) ---
$mpStatus = Get-MpComputerStatus
$engineVer = $mpStatus.AMEngineVersion
$platformVer = $mpStatus.AMProductVersion
$vulnerable = $false
try {
    $vulnerable = ([version]$platformVer -lt [version]"4.18.26030.3011")
} catch { $vulnerable = $true }

$report += [PSCustomObject]@{
    Check   = "DefenderPlatformVersion"
    Finding = if ($vulnerable) { "VULNERABLE: $platformVer (< 4.18.26030.3011)" } else { "Patched: $platformVer" }
    Severity = if ($vulnerable) { "CRITICAL" } else { "Info" }
}

# --- 2. Known BlueHammer IoC hashes on disk (common staging paths) ---
$iocHashes = @(
    "8846f7eaee8fb117ad06bdd830b7586c",
    "f4ffef4204880031a6a532ff5c1b5686e6a301c365f492071c1d462fa5b6b4a0"
)
$searchPaths = @("$env:TEMP", "$env:USERPROFILE\Downloads", "C:\Users\Public", "$env:ProgramData")
foreach ($path in $searchPaths) {
    if (Test-Path $path) {
        Get-ChildItem -Path $path -Recurse -File -ErrorAction SilentlyContinue | ForEach-Object {
            try {
                $h = Get-FileHash -Path $_.FullName -Algorithm SHA256 -ErrorAction Stop
                if ($iocHashes -contains $h.Hash.ToLower()) {
                    $report += [PSCustomObject]@{ Check = "IoCHashMatch"; Finding = $_.FullName; Severity = "CRITICAL" }
                }
            } catch {}
        }
    }
}

# --- 3. Suspicious symlinks near Defender directories (stage 3 artifact) ---
$defenderPaths = @("$env:ProgramData\Microsoft\Windows Defender", "$env:ProgramFiles\Windows Defender")
foreach ($dp in $defenderPaths) {
    if (Test-Path $dp) {
        Get-ChildItem -Path $dp -Recurse -Force -ErrorAction SilentlyContinue |
            Where-Object { $_.LinkType -ne $null } | ForEach-Object {
                $report += [PSCustomObject]@{ Check = "SuspiciousSymlink"; Finding = "$($_.FullName) -> $($_.Target)"; Severity = "HIGH" }
            }
    }
}

# --- 4. Unexpected child processes of MsMpEng in last 7 days (Event 4688) ---
$mpChildren = Get-WinEvent -FilterHashtable @{ LogName = 'Security'; Id = 4688; StartTime = (Get-Date).AddDays(-7) } -ErrorAction SilentlyContinue |
    Where-Object { $_.Message -match 'MsMpEng\.exe' } |
    Where-Object { $_.Message -notmatch 'MpCmdRun|MsSense|conhost' }
foreach ($evt in $mpChildren) {
    $report += [PSCustomObject]@{ Check = "MsMpEngChildProcess"; Finding = $evt.Message.Substring(0, [Math]::Min(300, $evt.Message.Length)); Severity = "HIGH" }
}

# --- 5. LSASS handle audit (Sysmon Event 10, if deployed) ---
$lsassAccess = Get-WinEvent -FilterHashtable @{ LogName = 'Microsoft-Windows-Sysmon/Operational'; Id = 10; StartTime = (Get-Date).AddDays(-7) } -ErrorAction SilentlyContinue |
    Where-Object { $_.Message -match 'lsass\.exe' -and $_.Message -notmatch 'MsMpEng|svchost|wininit' }
foreach ($evt in $lsassAccess) {
    $report += [PSCustomObject]@{ Check = "LSASSAccess"; Finding = $evt.TimeCreated.ToString() + " | " + $evt.Message.Substring(0, [Math]::Min(250, $evt.Message.Length)); Severity = "CRITICAL" }
}

# --- 6. Recent SAMR-heavy activity / NTLMv1 network logons (PtH artifacts) ---
$pthEvents = Get-WinEvent -FilterHashtable @{ LogName = 'Security'; Id = 4624; StartTime = (Get-Date).AddDays(-3) } -ErrorAction SilentlyContinue |
    Where-Object { $_.Message -match 'NtLmSsp' -and $_.Message -match 'NTLM V1' }
foreach ($evt in $pthEvents) {
    $report += [PSCustomObject]@{ Check = "PossiblePtH_NTLMv1"; Finding = $evt.TimeCreated.ToString(); Severity = "HIGH" }
}

$report | Export-Csv -Path ".\BlueHammer_Hunt_$(hostname)_$(Get-Date -Format 'yyyyMMdd').csv" -NoTypeInformation
$report | Format-Table -AutoSize

Response Priorities

Immediate (0–4 hours):

  • Push the MD5 8846f7eaee8fb117ad06bdd830b7586c and SHA256 f4ffef4204880031a6a532ff5c1b5686e6a301c365f492071c1d462fa5b6b4a0 to EDR block/quarantine policies and email/web gateway hash filters.
  • Force a Defender platform update across the estate — anything below 4.18.26030.3011 is exploitable by any standard-user compromise.
  • Deploy the Sigma rules above and run the KQL hunt retroactively for 30 days. Prioritize endpoints where MsMpEng.exe spawned unexpected children or where SAM hive access fired.

24 hours:

  • Because BlueHammer's endgame is LSASS/SAM credential theft and pass-the-hash, treat any confirmed exploitation as an identity incident: force password resets for all local accounts on affected hosts, and audit for NTLMv1 logons and anomalous type-3 authentications from those machines.
  • Invalidate cached credentials — clear lsass residual material by rebooting affected systems, and review KRBTGT exposure if any affected host is a domain controller or tier-0 asset.
  • Verify LAPS is deployed and rotating local admin passwords so stolen SAM hashes have no lateral value.

1 week (architecture hardening):

  • Enable Credential Guard and LSA Protection (RunAsPPL) to blunt LSASS dumping even if SYSTEM is achieved.
  • Enforce NTLMv2-only and disable NTLMv1 domain-wide; enable SMB signing to degrade pass-the-hash relay paths.
  • Implement application control (WDAC/AppLocker) to prevent unsigned standard-user binaries from reaching the stage-1 execution prerequisite — no initial code execution, no chain.
  • Automate Defender platform version compliance reporting into your vulnerability management cadence; this CVE class will recur.

Related Resources

Security Arsenal Incident Response Managed SOC & MDR Services AlertMonitor Threat Detection From The Dark Side Intel Hub

Is your security operations ready?

Get a free SOC assessment or see how AlertMonitor cuts through alert noise with automated triage.