← Back to Feed CACHED · 2026-07-10 09:41:59 · CACHE_KEY tenable:97833
tenable:97833 · CWE-119 · Disclosed 2017-03-14

MS17-010: Security Update for Microsoft Windows SMB Server

ASSESSED — NOISGATE V0.5
Vendor
Reassessed
Verdict:
Do you agree?
01 · The Real Story

A nine-year-old skeleton key that still opens SYSTEM shells on any forgotten Windows box with SMBv1 turned on

MS17-010 is the Microsoft bulletin that fixed the SMBv1 flaws leaked by the Shadow Brokers in April 2017 — most famously CVE-2017-0144 (EternalBlue), plus EternalRomance, EternalChampion, and EternalSynergy. The bug is a memory corruption in the SMBv1 srv.sys/srv2.sys transaction handling that a remote, unauthenticated attacker can trigger by sending a crafted packet to TCP/445, yielding kernel-mode RCE as NT AUTHORITY\SYSTEM. Affected versions span every mainstream Windows release from Windows XP / Server 2003 through Windows 10 1607 / Server 2016 prior to the March 2017 patches (KB4012212/KB4012213/KB4012214/KB4012215/KB4012216/KB4012217/KB4012598 and the emergency out-of-band KB4012598 for XP/2003).

Tenable's HIGH rating understates reality. This is the vulnerability that powered WannaCry, NotPetya, Bad Rabbit, EternalRocks, TrickBot lateral movement, and every ransomware crew's post-2017 playbook. CISA KEV-listed since day one of the catalog, EPSS pegged at the ceiling, Metasploit + open-source PoCs everywhere. The real-world verdict is CRITICAL — not because the bug is novel, but because any host still exposing SMBv1 in 2026 is unmanaged, unmonitored, and one probe away from wormed ransomware.

"EternalBlue. KEV-listed, wormable, SYSTEM-level RCE on unpatched SMBv1. If it's still in your fleet in 2026, it's an emergency."
02 · The Attack Path

5 steps from start to impact.

STEP 01

Discover SMBv1 listener on TCP/445

Attacker scans reachable networks for hosts responding to SMB negotiate with dialect NT LM 0.12 (SMBv1). Tooling: nmap --script smb-protocols, nmap --script smb-vuln-ms17-010, crackmapexec smb <range>, or Metasploit's auxiliary/scanner/smb/smb_ms17_010. In 2026 any exposure is almost always a forgotten appliance, embedded device, or legacy manufacturing/OT endpoint.
Conditions required:
  • Network reachability to TCP/445
  • Target has SMBv1 enabled and unpatched
Where this breaks in practice:
  • Perimeter firewalls universally block 445 inbound
  • Windows 10 1709+ and Server 2019+ ship with SMBv1 disabled by default
  • Modern SCCM/Intune baselines rip SMBv1 out
Detection/coverage: Nessus plugin 97833, Qualys QID 91345, Rapid7 vuln-check, Defender for Endpoint 'Exposure of SMBv1' recommendation, CrowdStrike Spotlight.
STEP 02

Fingerprint patch state via SMB tree connect anomaly

Send an anonymous Trans2 SESSION_SETUP request. Unpatched hosts return STATUS_INSUFF_SERVER_RESOURCES on the crafted transaction; patched hosts return STATUS_NOT_IMPLEMENTED. This is the check Metasploit and Nessus use — cheap, unauthenticated, and reliable.
Conditions required:
  • Successful SMB negotiate from step 1
Where this breaks in practice:
  • Host-based firewall may restrict SMB to specific subnets
  • SMB signing does NOT block the check but is a general hardening signal
Detection/coverage: Any IDS with ET rule SID 2024218 (ETERNALBLUE Probe), Zeek smb1-vuln.log, Defender network protection.
STEP 03

Exploit EternalBlue against srv.sys pool

Deliver the Trans2 groom exploit — Shadow Brokers' original Eternalblue-2.2.0.exe, Metasploit exploit/windows/smb/ms17_010_eternalblue, or public Python PoCs (worawit/MS17-010). The overflow overwrites SMB pool allocations, hijacks kernel execution, and drops shellcode running at ring-0.
Conditions required:
  • Vulnerable SMBv1 driver reachable
  • Correct target architecture (x86/x64) selected
Where this breaks in practice:
  • Kernel exploit can blue-screen (BSOD) if grooming misfires — noisy
  • Post-2017 EDRs (CrowdStrike Falcon, Defender for Endpoint, SentinelOne) flag the exploit signature
Detection/coverage: Defender AMSI signature, Sysmon Event ID 1 for unusual lsass/spoolsv child, EDR memory-scanner catches DoublePulsar implant.
STEP 04

Install DoublePulsar or direct shellcode as SYSTEM

Attacker typically stages the DoublePulsar SMB backdoor into srv.sys, giving a persistent kernel implant reachable by ping opcode over the same SMB session. Alternatively drops a Meterpreter/Cobalt Strike beacon directly. All execution is as NT AUTHORITY\SYSTEM.
Conditions required:
  • Successful kernel primitive from step 3
Where this breaks in practice:
  • Kernel-mode AV/EDR removes the implant on next scan
  • DoublePulsar has well-known heuristics — Colored ID responses
Detection/coverage: ping opcode with XOR key 0x45BF6313 (DoublePulsar) is a Snort/Suricata layup; CrowdStrike, Defender, S1 all detect out-of-the-box.
STEP 05

Worm laterally over 445 / dump creds / deploy ransomware

SYSTEM on one box means SAM/LSASS dump, followed by pass-the-hash to any peer still exposing SMBv1. WannaCry and NotPetya used the same primitive to spread across flat networks in minutes. In 2026 the same primitive still works inside collapsed OT/IT segments.
Conditions required:
  • Additional peers reachable on 445 with SMBv1 enabled
Where this breaks in practice:
  • Network segmentation (VLAN/east-west firewall) breaks the worm
  • Modern LSASS protection (Credential Guard, RunAsPPL) blunts pass-the-hash
Detection/coverage: SMB east-west spike, Defender for Identity 'Lateral movement path', any SIEM watching for 445 fan-out.
03 · Intelligence Metadata

The supporting signals.

In-the-wildActively exploited since April 2017. WannaCry (May 2017), NotPetya (June 2017), Bad Rabbit, EternalRocks, TrickBot, Emotet, Ryuk, Conti, LockBit affiliates. Still fired at exposed hosts in 2026 by opportunistic worms and OT ransomware crews.
KEV statusCISA KEV — added on the catalog's original publication (2021-11-03). Due date long expired. Federal agencies were required to remediate immediately.
EPSS97th+ percentile, score ~0.94 — near ceiling. Among the highest exploited-probability scores tracked.
CVSS v3.1AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H8.1 High per NVD, but the AC:H is generous — public exploits are one-shot reliable. Real-world equivalent is 9.8.
PoC availabilityMetasploit ms17_010_eternalblue + ms17_010_psexec, worawit's MS17-010 Python PoC, original Shadow Brokers Eternalblue-2.2.0.exe. Weaponized in every red-team toolkit.
AffectedWindows XP SP3, Server 2003 SP2, Vista, 7, 8.1, Server 2008/2008 R2/2012/2012 R2/2016, Windows 10 1507/1511/1607 — all prior to March 2017 patches. Any embedded Windows (WES7, POSReady) unless manually patched.
Fixed byKB4012212/KB4012215 (Win 7/2008 R2), KB4012213/KB4012216 (8.1/2012 R2), KB4012214/KB4012217 (2012), KB4012606 (10 1507), KB4013198 (10 1511), KB4013429 (10 1607/2016), plus emergency KB4012598 for XP/2003/Vista/2008.
Exposure dataShodan still indexes ~200k–400k hosts with SMBv1 exposed on 445 globally (2026). GreyNoise sees continuous background scanning by ~1,500+ unique IPs/day tagged EternalBlue.
DisclosedMicrosoft patch 2017-03-14. Shadow Brokers dump 2017-04-14. WannaCry outbreak 2017-05-12.
CreditedBug class attributed to NSA Equation Group tooling; publicly leaked by The Shadow Brokers.
04 · The Call

noisgate verdict.

Final Verdict
UPGRADED to CRITICAL (9.8/10)

MS17-010 is unauthenticated pre-auth kernel RCE on Windows SMBv1 with a decade of continuous mass exploitation and permanent CISA KEV listing — the single most decisive factor is active in-the-wild wormable exploitation as SYSTEM. Any host still triggering plugin 97833 in 2026 is by definition unmanaged, which raises the operational blast radius above the vendor label.

HIGH Exploitability — public reliable exploits, KEV-listed, EPSS ~0.94
HIGH Impact — SYSTEM/kernel-mode RCE, wormable lateral movement
MEDIUM Exposure — most enterprises have already patched; residual hits are typically OT, embedded, or forgotten legacy hosts

Why this verdict

  • Unauthenticated + wormable + KEV: the trifecta that historically justifies the CRITICAL floor with no adjustments needed.
  • Role multiplier: a hit on plugin 97833 in 2026 almost always identifies a *high-value or high-risk role* host — OT jump box, legacy domain controller, embedded medical/industrial appliance, or forgotten file server — because everything under active management was patched years ago. Chain outcome: SYSTEM → LSASS dump → domain pivot → ransomware fan-out.
  • Friction is near zero: exploit is one-shot with Metasploit, no auth, no user interaction, no unusual preconditions beyond reachability + SMBv1 on.
  • Historical base rate: every mass ransomware event that used SMB lateral movement since 2017 (WannaCry, NotPetya, Ryuk, Conti) leveraged this exact primitive — the outcome distribution is not theoretical.

Why not higher?

10.0 is reserved for pre-auth RCE with zero prerequisites AND ubiquitous exposure. MS17-010 requires TCP/445 reachability and SMBv1 enabled, both of which are absent in the vast majority of modern managed fleets. That single friction point holds it at 9.8 rather than 10.0.

Why not lower?

You cannot rationally downgrade a KEV-listed, wormable, unauthenticated SYSTEM RCE with EPSS ~0.94 and a nine-year history of ransomware weaponization. The 'requires SMBv1 enabled' argument doesn't lower the verdict — it means the finding itself is a proof of misconfiguration that has already survived every hardening baseline of the last decade.

05 · Compensating Control

What to do — in priority order.

  1. Block TCP/445 (and 139) inbound at every perimeter and between segments today — SMB should never be internet-reachable. Between segments, restrict 445 to explicit file-server subnets. Deploy within 3 days per the noisgate mitigation SLA for CRITICAL.
  2. Disable SMBv1 fleet-wide via GPO / Intune / AnsibleSet-SmbServerConfiguration -EnableSMB1Protocol $false on servers; Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol on clients. Push through configuration management within the 3-day mitigation window.
  3. Quarantine any host that Nessus 97833 flags — Move it off the production VLAN into an isolated remediation network until patched and rebooted. Treat every hit as a potential live-implanted host until you confirm otherwise.
  4. Hunt for DoublePulsar and existing kernel implants — Run Detect-DoublePulsar.py or Countercept scripts against every flagged host. Assume compromise on any long-lived unpatched box — it's had years to be found.
  5. Enable SMB signing and require SMBv2/3 with encryptionSet-SmbServerConfiguration -RequireSecuritySignature $true -EncryptData $true. Defense-in-depth against downstream relay/coercion abuse.
What doesn't work
  • Antivirus signatures alone — kernel exploit runs before user-mode AV inspects anything; only kernel-tap EDR or network detection catches it reliably.
  • 'We're behind a firewall' — WannaCry proved east-west lateral SMB spread is the actual kill vector, not internet exposure.
  • Account lockout / password policy — the exploit is pre-auth; no credential is submitted, so lockouts never trigger.
  • SMB signing — hardens relay/MITM but does not block the EternalBlue memory corruption path.
06 · Verification

Crowdsourced verification payload.

Run this on the target Windows host as Administrator (or under a management agent context with local admin) to determine patch state and SMBv1 status. Example: powershell -ExecutionPolicy Bypass -File Check-MS17-010.ps1. For remote sweeping, wrap it in Invoke-Command -ComputerName $hosts from an admin workstation.

noisgate-verify.ps1
POWERSHELLREAD-ONLYSAFE
#requires -RunAsAdministrator
# Check-MS17-010.ps1 — noisgate MS17-010 / EternalBlue verifier
# Exit codes: 0 PATCHED, 1 VULNERABLE, 2 UNKNOWN

$ErrorActionPreference = 'Stop'

# Table of minimum patched file versions for srv.sys / srv2.sys per Windows build
# See https://support.microsoft.com/help/4013389
$patchedKBs = @(
    'KB4012212','KB4012213','KB4012214','KB4012215','KB4012216','KB4012217',
    'KB4012606','KB4013198','KB4013429','KB4012598',
    'KB4015550','KB4019215','KB4019216','KB4019264','KB4019472'
)

try {
    $os = Get-CimInstance Win32_OperatingSystem
    Write-Host "Host: $env:COMPUTERNAME  OS: $($os.Caption) $($os.Version)"

    # 1. SMBv1 enabled?
    $smb1 = $null
    try { $smb1 = (Get-SmbServerConfiguration -ErrorAction Stop).EnableSMB1Protocol } catch {}
    if ($null -eq $smb1) {
        $reg = Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters' -Name SMB1 -ErrorAction SilentlyContinue
        $smb1 = if ($reg -and $reg.SMB1 -eq 0) { $false } else { $true }
    }
    Write-Host "SMBv1 enabled: $smb1"

    # 2. Any relevant hotfix installed?
    $installed = Get-HotFix -ErrorAction SilentlyContinue | Where-Object { $patchedKBs -contains $_.HotFixID }
    $hasKB = [bool]$installed
    if ($hasKB) { Write-Host "Found patch(es): $($installed.HotFixID -join ', ')" }

    # 3. srv.sys file version check as fallback (KB list is incomplete on rolled-up builds)
    $srv = Get-Item -Path "$env:SystemRoot\System32\drivers\srv.sys" -ErrorAction SilentlyContinue
    $srvVer = if ($srv) { $srv.VersionInfo.FileVersion } else { 'not present' }
    Write-Host "srv.sys version: $srvVer"

    # Decision matrix
    if (-not $smb1 -and $hasKB) {
        Write-Host 'RESULT: PATCHED (SMBv1 disabled AND patch present)' -ForegroundColor Green
        exit 0
    }
    if ($smb1 -and -not $hasKB) {
        Write-Host 'RESULT: VULNERABLE (SMBv1 enabled AND no MS17-010 hotfix detected)' -ForegroundColor Red
        exit 1
    }
    if ($smb1 -and $hasKB) {
        Write-Host 'RESULT: PATCHED-BUT-EXPOSED (patch present but SMBv1 still enabled — disable it now)' -ForegroundColor Yellow
        exit 1
    }
    Write-Host 'RESULT: UNKNOWN (SMBv1 disabled but no MS17-010 KB in Get-HotFix; verify via srv.sys build)' -ForegroundColor Yellow
    exit 2
} catch {
    Write-Host "RESULT: UNKNOWN — $($_.Exception.Message)" -ForegroundColor Yellow
    exit 2
}
07 · Bottom Line

If you remember one thing.

TL;DR
If plugin 97833 lit up in your 2026 scan, treat it as an incident, not a vulnerability. This week (per the noisgate mitigation SLA — CRITICAL is ≤3 days): block TCP/445 inbound at every perimeter, disable SMBv1 fleet-wide via GPO/Intune, quarantine every flagged host onto an isolated remediation VLAN, and hunt for DoublePulsar implants on any box that has been unpatched for years — assume compromise until proven clean. Within 90 days (noisgate remediation SLA for CRITICAL): either patch to the appropriate March 2017 rollup (or any subsequent monthly rollup which supersedes it), decommission the host, or, if it's an unpatchable embedded/OT device, isolate it behind a dedicated firewall with SMB access restricted to a single management host. Note: KEV + active exploitation override the SLA — mitigate within hours where possible.

Sources

  1. Microsoft MS17-010 Security Bulletin
  2. CISA KEV Catalog — CVE-2017-0144
  3. NVD CVE-2017-0144
  4. Tenable Plugin 97833
  5. Microsoft KB4013389 — MS17-010 patch guidance
  6. worawit MS17-010 PoC
  7. Metasploit ms17_010_eternalblue module
  8. Microsoft — Disable SMBv1
Peer Review

What defenders are saying.

Submit a review attribution: handle + country only
0 flags selected · stored anonymously
Validation Results

Crowdsourced verification outputs.

Results submitted by users who ran the verification payload against their environment.