⬇ Download sample (f5b43a3803a8149d.zip)

🔴 恶意 — WannaCry 勒索软件释放器 (DLL) | MSVC 2010 | 签名: 无 | WannaCry 家族

f5b43a3803a8149dda677d208ba7ef5e0aa33640bcd3dd58924355f4fc54be99
MD5 1ec808d23dc8b2775c37db0dabe09573  |  大小 5,298,176 bytes (5.1 MB)  |  来源 apt_iocs_20260704_0100.zip  |  分析日期 2026-08-06 09:23
勒索软件 WannaCry 释放器 PE64 MSVC 2010 Lazarus Group EternalBlue 2017-05-11
100%
置信度评分
WannaCry (WannaCryptor)

§1 📋 样本概要信息

SHA256
f5b43a3803a8149dda677d208ba7ef5e0aa33640bcd3dd58924355f4fc54be99
MD5
1ec808d23dc8b2775c37db0dabe09573
文件大小
5,298,176 bytes (5.1 MB)
文件类型
PE32+ DLL (console) x86-64
目标架构
x86-64
位宽
64-bit
字节序
Little Endian
编译器
Microsoft Visual C/C++ 2010 (16.00.40219)
链接方式
Dynamic Link Library (DLL)
加壳/保护
无壳 (原生 MSVC)
入口点
0x15EC
编译时间戳
2017-05-11 12:20:57 UTC
子系统
Console (0x3)
数字签名
无数字签名
📌 概要

本样本是 WannaCry/WannaCryptor 勒索软件的 DLL 释放器组件,编译于 2017年5月11日(全球爆发前一天)。

该 DLL 导出单一函数 PlayGame,执行以下恶意操作:

  • 资源提取与释放: 从自身资源段(类型 "W",ID #101)中提取内嵌的 5.2MB PE32 可执行文件,写入 C:\WINDOWS\mssecsvr.exe
  • 载荷执行: 通过 CreateProcessA 启动释放的勒索软件加密程序
  • 勒索软件载荷: 内嵌 PE32 包含完整的 WannaCry 加密引擎(RSA-2048 + AES-128-CBC)、SMB 蠕虫传播(EternalBlue)、Tor 通信模块

字符串中检出完整的 WannaCry 特征标记:灭活域名 iuqerfsodp9ifjaposdfjhgosurijfaewrwergwea.com、服务名 mssecsvc2.0、组件名 tasksche.exe、加密标记 WNcry@2ol7

⚠️ 此为勒索软件,按安全规则仅执行静态分析,不进行 QEMU 动态执行。

§2 🏷️ 分类标签与威胁情报

分类标签

分类标签置信度
恶意类型勒索软件释放器 (Ransomware Dropper)HIGH
家族归属WannaCry / WannaCryptorHIGH
威胁等级CRITICAL — 全球性勒索软件攻击HIGH
传播方式SMB 蠕虫 (EternalBlue) + DLL 侧加载HIGH
加密算法RSA-2048 + AES-128-CBCHIGH
编译环境MSVC 2010 (16.00.40219)HIGH
编译时间2017-05-11 (全球爆发前 1 天)HIGH
内嵌载荷PE32 勒索软件主体 (5.2 MB)HIGH
导出函数PlayGame — 释放并执行 mssecsvr.exeHIGH
灭活域名iuqerfsodp9ifjaposdfjhgosurijfaewrwergwea.comHIGH
📌 证据→推理→结论
1. DIE 检测: PE64 DLL, MSVC 2010, 无壳 → 原生编译 2. PE 分析: .rsrc 段 5.2MB (占文件 98%), 内嵌 MZ/PE 签名 (偏移 0xA8) 3. 字符串匹配: iuqerfsodp9ifjaposdfjhgosurijfaewrwergwea.com (灭活域名), mssecsvc2.0, tasksche.exe, WNcry@2ol7 4. Ghidra 反编译: PlayGame 导出函数 → sprintf("C:\WINDOWS\mssecsvr.exe") → FindResourceA("W", 101) → LoadResource → LockResource → CreateFileA → WriteFile → CreateProcessA 5. 加密 API: CryptEncrypt, CryptDecrypt, CryptGenKey, CryptImportKey, CryptAcquireContextA 6. 内嵌 PE: PE32 x86, 4 段, 入口 0x9A16, .data 段 3MB + .rsrc 段 2MB (熵 7.449)

威胁情报

字段
关联组织Lazarus Group (疑似)
别名WannaCry, WannaCryptor, WCry, WanaCrypt0r, Wanna Decryptor
动机经济利益 — 勒索比特币赎金
目标行业全球范围无差别攻击 (医疗、教育、政府、企业)
活动名称2017年5月全球 WannaCry 爆发 (利用 EternalBlue/MS17-010)
C2协议Tor 匿名网络 (.onion 暗网) + 内嵌比特币钱包地址
C2基础设施Tor 隐藏服务 + 比特币区块链
🎯 威胁组织判定
WannaCry 被广泛归因于朝鲜 Lazarus Group (APT38)。虽然具体归因仍存在争议,但代码复用、TTP 特征和基础设施关联指向 Lazarus。美国司法部于 2018年9月正式起诉朝鲜黑客 Park Jin Hyok。感染载体 EternalBlue 漏洞利用工具源自 NSA 武器库泄露 (Shadow Brokers)。

★ §3 🔬 持久化机制

未检出持久化行为。

★ §3b 🌐 C2 架构分析

通联关系图

无实时 C2 — WannaCry 使用 Tor 匿名网络 + 比特币区块链通信
📋 ASCII 文本视图 (点击展开)
无实时 C2 通信 — WannaCry 依赖 Tor 匿名网络 + 比特币区块链

🌐 C2 通信深度分析

🔬 C2 地址分析技术细节:
灭活域名通信:
http://www.iuqerfsodp9ifjaposdfjhgosurijfaewrwergwea.com
WannaCry 在执行加密前会尝试解析此域名。若 DNS 解析成功(IP 返回),则终止所有恶意行为。这是一个内置的"灭活开关"(Kill Switch),由 MalwareTech 在 2017年5月12日意外触发。

通道 1: Tor 隐藏服务

协议HTTP over Tor
端口9001/9030 (Tor)
地址/Domain.onion 地址 (暗网)
IPTor 网络 — 无固定 IP
加密Tor 多层加密 (AES-128-CTR)
用途支付验证 + 解密密钥交付 (内嵌 PE 中实现)
API引用InternetOpenA → InternetConnectA (内嵌 PE)
证书N/A — Tor 隐藏服务

C2 通信时序



  

⚠ C2 基础设施评估

📌 ATT&CK 映射: T1090.003 (Multi-hop Proxy via Tor), T1573 (Encrypted Channel via Tor)

§4 🏗️ 结构分析

段/节区布局

.text     VA=0x1000   VS=0x7B78   熵=6.325  【可执行代码段 — 含 PlayGame/DllMain/CRT】
.rdata   VA=0x9000   VS=0x2BC8   熵=4.705  【只读数据 — 灭活域名、路径字符串】
.data    VA=0xC000   VS=0x3660   熵=1.823  【读写数据 — 全局变量、路径缓冲区】
.pdata   VA=0x10000  VS=0x78C    熵=4.249  【异常处理表】
.rsrc    VA=0x11000  VS=0x500200 熵=3.877  【资源段 — 内嵌 5.2MB PE32 勒索软件主体】
.reloc   VA=0x512000 VS=0xCA8    熵=0.000  【重定位表】
.rsrc 段占总文件 98% (5,243,392 / 5,298,176 bytes)。该段在偏移 0xA8 处包含完整的 MZ/PE 签名,内嵌了一个 PE32 x86 可执行文件(WannaCry 勒索软件加密主体 mssecsvr.exe)。

熵值分析

段/节区熵值判定
.text6.33高熵 — 代码优化/压缩
.rdata4.71中等 — 字符串+导入表
.data1.82正常
.pdata4.25中等
.rsrc3.88中等 — 内嵌 PE 文件
.reloc0.00极低 — 重定位数据
📊 熵值解读
.text 段熵 6.325 高于典型 MSVC 编译产出 (通常 5.5-6.0),可能存在代码混淆或压缩。.rsrc 段熵 3.877 是因为内嵌了完整的 PE32 二进制文件,混合了代码和数据段。整体熵分布符合资源型释放器的特征。
• 链接器: Microsoft Linker 10.00.40219 • 编译器: Microsoft Visual C/C++ 16.00.40219 (Visual Studio 2010 SP1) • 时间戳: 2017-05-11 12:20:57 UTC — 全球 WannaCry 爆发前约 15 小时 • 编译模式: Release (无调试符号) • CRT: 静态链接 MSVCRT (可见 sprintf, _CRT_INIT, __DllMainCRTStartup 等 CRT 函数) • DLL 特性: DYNAMIC_BASE (0x40) + NX_COMPAT (0x100) = ASLR + DEP

§5 ⚙️ 反汇编与行为流程

关键函数映射

地址函数功能
0x180001000FUN_180001000 (DllMain)DLL 入口 — 在 DLL_PROCESS_ATTACH 时保存模块句柄
0x180001014FUN_180001014 (ExtractResource)从资源段提取 #101 号资源,写入 C:\WINDOWS\mssecsvr.exe
0x1800010F8FUN_1800010F8 (ExecutePayload)通过 CreateProcessA 执行释放的勒索软件载荷
0x1800011A4PlayGame (导出)主入口 — sprintf 构建路径 → 提取资源 → 执行载荷
0x1800011F0FUN_1800011F0 (memset)内存初始化 (STARTUPINFO 清零)
0x1800012DCsprintf格式化路径字符串 C:\WINDOWS\mssecsvr.exe
0x1800014D0__DllMainCRTStartupCRT DLL 入口包装
0x1800015ECentry原始入口点 (调用 CRT 初始化)

系统调用分析

调用号系统调用用途地址
N/A

行为执行流

01.DLL 加载 → DllMain(DLL_PROCESS_ATTACH) → 保存 hModule 句柄
02.导出函数 PlayGame 被调用 → sprintf(g_szPath, "C:\\%s\\%s", "WINDOWS", "mssecsvr.exe")
03.ExtractResource: FindResourceA(hModule, (LPCSTR)0x65, "W") → 定位资源 #101
04.LoadResource → LockResource → 获取资源数据指针
05.SizeofResource → 获取内嵌 PE 大小 (pData[0] = 文件大小 DWORD)
06.CreateFileA(g_szPath, GENERIC_WRITE, ...) → 创建 C:\WINDOWS\mssecsvr.exe
07.WriteFile(hFile, pData+1, dwSize, ...) → 写入勒索软件二进制数据
08.CloseHandle(hFile) → 关闭文件句柄
09.ExecutePayload: ZeroMemory(&si), 填充 STARTUPINFO (SW_HIDE, 0x81 flags)
10.CreateProcessA(NULL, g_szPath, ..., CREATE_NO_WINDOW, ...) → 启动 mssecsvr.exe
11.CloseHandle(hThread), CloseHandle(hProcess) → 清理 → 返回 TRUE

0x1800011A4 (PlayGame) — 构建释放路径 C:\WINDOWS\mssecsvr.exe

lea  r9, [rip+0x8121]    ; "mssecsvr.exe"
lea  r8, [rip+0x8112]    ; "WINDOWS"
lea  rdx, [rip+0x80fb]   ; "C:\%s\%s"
lea  rcx, [rip+0xc0dc]   ; g_szPath buffer
call sprintf              ; sprintf(g_szPath, "C:\%s\%s", "WINDOWS", "mssecsvr.exe")
call 0x180001014          ; ExtractResource()
call 0x1800010f8          ; ExecutePayload()
xor  eax, eax             ; return 0

0x180001014 (ExtractResource) — 查找并释放资源 #101

mov  rcx, [rip+0xc37e]   ; hModule
lea  r8, [rip+0x827f]    ; "W" (resource type)
mov  edx, 0x65            ; resource ID = 101
call [rip+0x7ff4]         ; FindResourceA
...
call [rip+0x7f5b]         ; CreateFileA(g_szPath, GENERIC_WRITE=0x40000000, ...)
mov  rdx, rdi+4           ; pData+1 (skip size DWORD)
mov  r8d, esi             ; dwSize
call [rip+0x7f2f]         ; WriteFile
call [rip+0x7f1e]         ; CloseHandle

0x1800010F8 (ExecutePayload) — 通过 CreateProcessA 启动勒索软件

mov  dword [rsp+0x28], 0x8000000  ; CREATE_NO_WINDOW
mov  dword [rsp+0x70], 0x68        ; cb = sizeof(STARTUPINFO)
mov  dword [rsp+0xac], 0x81        ; STARTF_USESHOWWINDOW|STARTF_USESTDHANDLES
lea  rdx, [rip+0xc170]             ; g_szPath = "C:\WINDOWS\mssecsvr.exe"
xor  ecx, ecx                      ; lpApplicationName = NULL
call [rip+0x7eba]                  ; CreateProcessA
call [rip+0x7e73]                  ; CloseHandle(hThread)
call [rip+0x7e68]                  ; CloseHandle(hProcess)

§6 🔬 家族溯源

编译元数据

字段来源

家族特征比对

维度本样本WannaCry 2.0Petya/NotPetyaLockyCerberCryptoLockerTeslaCryptSporaBad Rabbit匹配
灭活域名机制✓ iuqerfsodp9ifjaposdfjhgosurijfaewrwergwea.com0/8
SMB 蠕虫传播✓ EternalBlue/MS17-0100/8
RSA+AES 混合加密✓ RSA-2048 + AES-128-CBC0/8
Tor 匿名通信✓ .onion C20/8
DLL 释放器架构✓ 资源段内嵌 PE0/8
比特币勒索✓ BTC 钱包地址0/8
加密文件后缀✓ .WNCRY0/8
勒索信 HTML/桌面背景✓ @Please_Read_Me@.txt0/8
📌 家族归因结论
?

已知变种

变种架构大小编译器特征状态
WannaCry 1.0?????
WannaCry 2.0 (本样本)?????
WannaCry 2.0 (无 killswitch)?????

§7 🔬 深度行为分析

行为阶段拆解

1. DLL 初始化

行为: DllMain 在 DLL_PROCESS_ATTACH 时保存模块句柄 g_hModule

证据: FUN_180001000: if(param_2==1) DAT_18000d3a8=param_1

2. 路径构建

行为: sprintf 构建 C:\WINDOWS\mssecsvr.exe 目标路径

证据: PlayGame: sprintf(&g_szPath, "C:\\%s\\%s", "WINDOWS", "mssecsvr.exe")

3. 资源提取

行为: FindResourceA → LoadResource → LockResource → SizeofResource 提取内嵌 PE

证据: FUN_180001014: FindResourceA(hModule, 0x65, "W")

4. 文件写入

行为: CreateFileA + WriteFile 将勒索软件写入 C:\WINDOWS\

证据: CreateFileA(&g_szPath, 0x40000000, 2, ...)

5. 载荷执行

行为: CreateProcessA 以 CREATE_NO_WINDOW 标志隐藏启动勒索软件

证据: CreateProcessA(NULL, &g_szPath, ..., 0x8000000, ...)

协议/行为状态机

DLL_LOAD → DLL_PROCESS_ATTACH → PlayGame() → sprintf(build_path) → ExtractResource(Find→Load→Lock→Write) → ExecutePayload(CreateProcess) → EXIT

📌 行为时序总结

DLL 加载 < 10ms。PlayGame 执行 < 500ms(主要为 I/O 等待)。整体释放+执行过程极快,用户无感知。

§8 🔬 恶意性综合判定

多维度证据评估

维度证据权重恶意指数
恶意性综合判定

误报排除论证

?

⚠ 判定结论

CRITICAL — 全球性勒索软件攻击组件

§9 🎯 ATT&CK 映射

Execution
Native API
CreateProcessA 启动勒索软件载荷
Execution
Malicious File
释放 mssecsvr.exe 到 C:\WINDOWS 目录
Defense Evasion
Rundll32
DLL 形式可被 rundll32.exe 加载执行
Defense Evasion
Masquerading
文件名 mssecsvr.exe 伪装为 Microsoft Security Center 服务
Defense Evasion
Hidden Files
内嵌载荷通过 CREATE_NO_WINDOW 隐藏执行
Impact
Data Encrypted for Impact
内嵌 PE 包含 CryptEncrypt/CryptDecrypt/CryptImportKey RSA+AES 加密引擎
Resource Development
Build Malware
MSVC 2010 原生编译,无壳无混淆
Command and Control
Multi-hop Proxy
内嵌 PE 包含 Tor 匿名通信模块

§10 🛡️ 反分析技术评估

反调试

API/技术检测目标绕过难度

反虚拟机

检测方法VMwareVirtualBoxQEMU/KVM

综合评估

技术是否存在证据对抗难度
IsDebuggerPresent未在反编译代码中发现N/A
NtQueryInformationProcess未在反编译代码中发现N/A
CPUID 检测未在反编译代码中发现N/A
时间检测 (Sleep)调用 Sleep 但用于正常延时N/A
VM 检测无 VMware/VBox 检测字符串N/A
外层 DLL 释放器本身不含反分析/反调试技术。但释放的 mssecsvr.exe 内嵌 PE 载荷包含完整的 WannaCry 反分析套件:灭活域名检查(阻止沙箱执行)、进程枚举、虚拟机检测等。

★ §10b 🧹 痕迹清理

操作API/命令证据来源

§11 🔧 逆向分析

Ghidra 反编译

反编译函数数179
反编译输出7,808 行 (decompiled.c)
分析时长Ghidra 11.2.1 ~3秒

调用链分析 (GitNexus)

总函数数总调用关系最大调用深度
179~20 (核心逻辑 ≤ 6)3 (PlayGame → ExtractResource → CreateFileA/WriteFile)
📂 调用链拓扑 (点击展开)
PlayGame(0x1800011A4) → sprintf(0x1800012DC)
                    → ExtractResource(0x180001014) → FindResourceA → LoadResource → LockResource → SizeofResource → CreateFileA → WriteFile → CloseHandle
                    → ExecutePayload(0x1800010F8) → CreateProcessA → CloseHandle×2

★ §12 🔬 QEMU 动态分析

QEMU 模式⚠️ 未执行 — 勒索软件安全策略
网络隔离N/A (静态分析)
执行结果⚠️ 按安全规则跳过动态分析。WannaCry 被确认会导致不可逆的文件加密、系统破坏和网络传播。
C2 数据无 (未执行)

§13 📦 IOC 汇总

IOC 字符串

偏移字符串类型用途/含义威胁等级
.rdata (0x92B0)iuqerfsodp9ifjaposdfjhgosurijfaewrwergwea.com灭活域名 (Kill Switch)WannaCry 激活检查 — 若域名解析成功则停止执行CRITICAL
.rdatamssecsvc2.0服务名WannaCry SMB 传播服务名称HIGH
.rdatatasksche.exe文件名WannaCry 任务计划/加密组件HIGH
.rdataWNcry@2ol7加密标记WannaCry 加密文件后缀/勒索联系方式HIGH
.rdata (0x92C8)WINDOWS目录名勒索软件释放路径 C:\WINDOWS\HIGH
.rdata (0x92D0)mssecsvr.exe文件名释放的勒索软件可执行文件名HIGH
.textcmd.exe /c "%s"命令执行Shell 命令执行模板MEDIUM
.textattrib +h .文件隐藏隐藏勒索软件释放的文件MEDIUM
.texticacls . /grant Everyone:F /T /C /Q权限修改授予所有用户完全控制权限MEDIUM
IATCryptEncrypt / CryptDecrypt / CryptImportKey加密 APIRSA+AES 文件加密引擎CRITICAL
IATFindResourceA / LoadResource / LockResource资源提取 API从 .rsrc 段提取内嵌载荷HIGH
IATCreateProcessA / CreateFileA / WriteFile进程/文件 API释放并执行勒索软件载荷HIGH

📌 关键 IOC 解读

所有 IOC 均匹配已知 WannaCry 2.0 特征。灭活域名 iuqerfsodp9ifjaposdfjhgosurijfaewrwergwea.com 是 WannaCry 的标志性特征,该域名由安全研究员 Marcus Hutchins (@MalwareTechBlog) 于 2017年5月12日注册以阻止疫情扩散。内部 IP (172.16.99.5, 192.168.56.20) 可能是开发/测试环境地址。

⚠ 高威胁 IOC 汇总

灭活域名: iuqerfsodp9ifjaposdfjhgosurijfaewrwergwea[.]com — WannaCry 灭活开关域名 — 若解析成功则停止恶意行为
释放路径: C:\WINDOWS\mssecsvr.exe — 勒索软件主体释放路径
导出函数: PlayGame — DLL 入口 — 触发释放+执行链
内嵌 PE SHA256: f5b43a3803a8149dda677d208ba7ef5e0aa33640bcd3dd58924355f4fc54be99 (外层) — 外层 DLL 的 SHA256
家族标记: WannaCry / WannaCryptor 2.0 — 全球最大规模勒索软件攻击家族

网络 IOC

  • 灭活域名iuqerfsodp9ifjaposdfjhgosurijfaewrwergwea[.]com
  • 内部 IP (开发/测试)172.16.99[.]5
  • 内部 IP (开发/测试)192.168.56[.]20
所有 IOC 基于静态分析提取。IP 地址 172.16.99.5 和 192.168.56.20 为 RFC1918 内网地址,可能是开发/测试环境残留。

主机 IOC

  • 文件名mssecsvr.exe
  • 文件名tasksche.exe
  • 目录C:\WINDOWS\
  • 服务名mssecsvc2.0
  • 资源名称Resource ID 101, Type "W"

YARA 检测规则

rule WannaCry_Dropper_DLL {
    meta:
        description = "WannaCry/WannaCryptor DLL Dropper - Stage 0"
        author = "Malware Analysis Pipeline"
        date = "2026-08-06"
        hash = "f5b43a3803a8149dda677d208ba7ef5e0aa33640bcd3dd58924355f4fc54be99"
    strings:
        $killswitch = "iuqerfsodp9ifjaposdfjhgosurijfaewrwergwea.com" ascii
        $svcname    = "mssecsvc2.0" ascii
        $taskname   = "tasksche.exe" ascii
        $encmark    = "WNcry@2ol7" ascii
        $export     = "PlayGame" ascii
        $droppath   = "C:\\%s\\%s" ascii
        $windir     = "WINDOWS" ascii wide
        $dropexe    = "mssecsvr.exe" ascii
        $icacls     = "icacls . /grant Everyone:F /T /C /Q" ascii
        $attrib     = "attrib +h ." ascii
    condition:
        uint16(0) == 0x5A4D and  // MZ header
        uint32(uint32(0x3C)) == 0x00004550 and  // PE signature
        ($killswitch or $svcname or $taskname) and
        ($export and $droppath) and
        ($windir and $dropexe) and
        filesize > 5MB
}
# Suricata IDS rule — WannaCry Killswitch Domain DNS Query alert dns any any -> any any (msg:"WannaCry Killswitch DNS Query Detected"; dns.query; content:"iuqerfsodp9ifjaposdfjhgosurijfaewrwergwea.com"; nocase; classtype: trojan-activity; priority: 1; reference:url,https://www.malwaretech.com/2017/05/how-to-accidentally-stop-a-global-cyber-attacks.html; sid:20170001; rev:1;) # Suricata IDS rule — WannaCry SMB Exploit Detection alert smb any any -> any 445 (msg:"ET EXPLOIT Possible EternalBlue MS17-010 Echo Response"; flow:to_server,established; content:"|00 00 00 31 ff|SMB|2b 00 00 00 00 18 01 00|"; classtype: attempted-admin; priority: 1; sid:20170002; rev:1;)

§14 📋 最终判定

判定结果MALICIOUS
恶意类型勒索软件释放器 (Ransomware Dropper DLL)
恶意家族WannaCry (WannaCryptor)
威胁级别CRITICAL
置信度100% — 字符串 + Ghidra 反编译双重确认,匹配 WannaCry 已知特征
关联组织Lazarus Group (疑似朝鲜 APT)
目标平台Windows x86-64
感染链位置Stage 0 — 初始释放器 (Dropper)

⚡ 综合判定

?