⬇ Download sample (sample.zip)

packed-stub — PE

bbb3c83e13e0f849cb23a51e41d67d51f3a7fc07a3cf5084d5b7f1cb05c4e6c5
PE · packed-stub · zlib-stub
packedzlib-stubempty-importshigh-entropycustom-packerunknown-hashpe32zlib-stub
SUSPICIOUS
65
confidence

关键事实

MD5
e88344ccd7ce6dc2b5b2e6b61f2bb4ef
SHA256
bbb3c83e13e0f849cb23a51e41d67d51f3a7fc07a3cf5084d5b7f1cb05c4e6c5
大小
24272
7.0979
格式
PE
语言
C/C++
编译器
MSVC
加壳
zlib-stub
架构
i386

该样本为 32 位 Windows PE 可执行文件(24KB),编译时间戳为 2017-10-22,采用 MSVC 编译器生成,Rich header 可验证其工具链来源。样本具有显著加壳特征:导入表完全为空,.rdata 节区熵值高达 7.444,且嵌入了完整的 zlib inflate 解压存根——包含 Chris Anderson 快速解码实现的全…

脱壳尝试(VPS 本地静态)

状态:仅碎片(zlib-static-noise)— 非主载荷

来源大小类型SHA256导入 DLL
zlib@.text+0x1d39/wbits=-15380rawc52e9997eb6f8153…
zlib@.rdata+0x1bd4/wbits=-15427raw743943588aa01dcf…
zlib@.text+0xa39/wbits=-15133raw21fd8d817a57c8d0…

section .rdata raw_size=12800 but only 10960 bytes readable on disk (truncated/virtual);section .data raw_size=512 but only 0 bytes readable on disk (truncated/virtual);section .rsrc raw_size=29184 but only 0 bytes readable on disk (truncated/virtual);section .reloc raw_size=1024 but only 0 bytes readable on disk (truncated/virtual);需运行时在 VirtualAlloc/OEP 处 dump

§4 结构 / 熵

.text
6.58
.rdata
7.44
.data
0.00
.rsrc
0.00
.reloc
0.00
节名VSizeRawSize
.text11987122886.584
.rdata12330128007.444
.data828512
.rsrc2880829184
.reloc5901024

证据:PE 文件包含 5 个节区,结构分析如下:

| 节区 | 虚拟大小 | 原始大小 | 熵值 | 特征标志 |

|------|---------|---------|------|--------|

| .text | 11,987 | 12,288 | 6.584 | 0x60000020 (R/X) |

| .rdata | 12,330 | 12,800 | 7.444 | 0x40000040 (R)…

§5 反汇编与行为流程

基于本地 Capstone 反汇编与 behavior_flow 推断的执行链路(带「推断」标记的步骤为基于汇编模式的推测,其余为直接反汇编证据):

01. PE 加载:操作系统加载 PE 映像至内存,控制权转移至入口点(Entry Point)。入口处为标准栈帧建立:push ebp; mov ebp, esp。
02. 栈空间分配(反汇编证据):mov eax, 0x12ac 后 call 0x3a0——该调用位于入口早期,0x12ac(4,780 字节)的立即数很可能是 __alloca_probe 或类似栈分配函数调用,为后续解压缓冲区预留约 4.7KB 的栈空间。
03. 安全检查(反汇编证据):mov eax, [0x408000]; xor eax, ebp; mov [ebp-4], eax——读取全局安全 Cookie,与 EBP 异或后存入栈帧。这是 MSVC /GS 编译选项…
01. 操作系统加载 PE 映像,控制权转至入口点
02. 入口附近机器码(本地转储): 558becb8ac120000e893030000a10080400033c58945fc568b350440400057ff…
03. 检测到加壳/保护线索:zlib-stub(confidence=72)— 存根可能先解压/解密载荷
04. 导入表为空 → 推断运行时动态解析 API(LoadLibrary/GetProcAddress 或手工 PEB 遍历)
05. (以上为 VPS 本地静态行为流程,不依赖外部沙箱)
地址指令
0x0000push ebp
0x0001mov ebp, esp
0x0003mov eax, 0x12ac
0x0008call 0x3a0
0x000dmov eax, dword ptr [0x408000]
0x0012xor eax, ebp
0x0014mov dword ptr [ebp - 4], eax
0x0017push esi
0x0018mov esi, dword ptr [0x404004]
0x001epush edi
0x001fcall esi
0x0021mov edi, eax
0x0023test edi, edi
0x0025je 0x1c7
0x002blea eax, [ebp - 0x1250]
0x0031push eax
0x0032mov dword ptr [ebp - 0x1250], 0
0x003ccall esi
0x003epush eax
0x003fcall dword ptr [0x404050]
0x0045mov esi, eax
0x0047test esi, esi
0x0049je 0x1c7
0x004fcmp dword ptr [ebp - 0x1250], 1

反汇编引擎:capstone

§7 深度行为(静态)

无高危 API 静态映射(常见于空导入加壳样本)

基于静态特征的能力推断(无社区动态行为记录,以下分析完全基于导入表缺失、字符串、反汇编与结构特征):

证据

- 导入表为空 -> 所有 API 必须运行时动态解析,暗示样本刻意隐藏其真实功能依赖。

- 反汇编显示两级函数指针调用(0x404004 和 0x404050)——典型的 LoadLibrary/GetProcAddress 运行时绑定模式。

- .rdata 节区熵值 7.444 + 嵌入的 zlib inflate 实现 -> 真实载荷被压缩存储。

- 字符串中无任何 C2、URL、IP、路径、注册表项、互斥体名或命令行参数 -…

§2 情报交叉

社区无先验命中(查找已完成)

多引擎情报查询:对该 SHA256 哈希进行多引擎情报平台查询,返回状态为「未收录」——该哈希不在已知样本语料库中。所有引擎均未产生任何检测结果(malicious=0, suspicious=0),无流行威胁分类标签,无历史命名记录。查询通道正常,非密钥或配额问题。

社区沙箱查询:同样返回「未收录」状态,该哈希无任何社区沙箱分析报告。无…

§8 判定要点

多维度综合判定

| 维度 | 观测 | 论证 | 权重 |

|------|------|------|------|

| 静态加壳 | 空导入表 + .rdata 熵 7.444 + zlib inflate 存根 | 典型恶意软件加壳特征,正常软件无此模式 | 高 |

| 动态 API 解析 | 入口两级函数指针调用 | 刻意隐藏 API 依赖,规避静态检测 | 中 |

| 情报交叉 | 多引擎 0 检出、社区沙箱无记录 | 非误报(无害文件通常不会被刻意加壳);但无外部确认 | 低 |

| 字符串分析 | 仅 zlib 错误字符串,无 C2/IP/路径 | 真实配置可能已压…

§9 ATT&CK

T1027.002
Software Packing
zlib-stub 定制加壳器(confidence=72),导入表完全为空,.rdata 节区熵值 7.444,嵌入完整 zlib inflate 解压实现(Chris Anderson Fast decoding 代码)及 18 条错误诊断字符串

§13 IOC

§14 结论与处置

最终判定:可疑(Suspicious),置信度 65/100

该样本为 32 位 Windows PE 文件,经 MSVC 编译,采用 zlib-stub 定制加壳器保护——导入表完全为空,.rdata 节区存储高熵压缩载荷,.text 节区中的存根代码通过运行时动态 API 解析实现 LoadLibrary/GetProcAddress 模式。嵌入的完整 inflate 解压实现(含 18 条错误诊断字符串)与 Chris Anderson 的 Fast decoding 算法吻合。

社区多引擎情报…

  1. 立即隔离:将样本哈希(MD5/SHA256)加入端点黑名单,阻止执行
  2. 运行时动态分析:提交至可控 Windows 沙箱运行,在内存中 dump OEP 后的解压载荷
  3. 狩猎查询:使用三个解压产物哈希在内部样本库回溯搜索同类加壳样本
  4. 网络监控:在边界部署针对该样本可能发起的出站 DNS/HTTPS 信标监控
  5. YARA 规则:基于嵌入式 zlib inflate 错误字符串编写检测规则,狩猎同加壳方案样本
  6. 端点加固:启用 AppLocker/WDAC 阻止未知 PE 从用户可写目录启动
  7. 时间戳 IOC 回溯:以编译时间戳 2017-10-22 为锚点检索历史入侵事件