RedHarlowCore/Winevar-Malware-Analysis
GitHub: RedHarlowCore/Winevar-Malware-Analysis
Winevar.exe 恶意软件的完整逆向工程分析报告,涵盖功能剖析、字符串解密方案还原及主机与网络维度的妥协指标。
Stars: 1 | Forks: 0
# Winevar.exe - 恶意软件分析与逆向工程报告
这是一份关于 **Winevar** 恶意软件的综合技术分析与妥协指标 报告。该样本结合了 **电子邮件蠕虫**、**下载器** 以及 **反分析/进程终结者** 威胁的特性。
## 🔬 样本信息
* **文件名:** `Winevar.exe`
* **文件类型:** PE32 (MS Windows 可执行文件),32 位 GUI
* **文件大小:** 89.34 KiB
* **编译器:** Microsoft Visual C/C++ (12.00.8168)
* **签名工具:** Windows Authenticode (2.0) [PKCS #7]
* **检测到附加数据:** 二进制 (偏移量 = `0x00016000`,大小 = `0x00559`)
### 🔑 加密哈希
* **MD5:** `e79d0b1a342712ea9b96104086149d65`
* **SHA-1:** `a10177aafebb035e104eb22d30bdacb3894e0e1e`
* **SHA-256:** `e68ebecd17bb8e91079bd4fe9bd24059a2bc007b4baac477127eda7c5d5c6706`
## 🛠️ 恶意软件功能与技术剖析
### 1. 社会工程学与反分析 (`MessageBoxA`)
在初始执行时,恶意软件会在内存中构建混淆字符串,并将其传递给自定义解密例程 (`sub_402840`)。它立即使用带有警告图标标志 `30h` 的 `MessageBoxA` 弹出虚假错误消息。
* **目的:** 诱骗受害者相信应用程序已崩溃或运行失败,而 payload 的执行则会在后台静默生成。
### 2. 环境收集与目标目录遍历
恶意软件会获取当前的活动目标目录,以进行自我植入或收集文件。
* 调用 `GetSystemDirectoryA` 来解析系统文件夹的路径(通常是 `C:\Windows\System32\`)。
* 实现了一个目录遍历函数 (`sub_401AB8`),该函数会验证路径是否以反斜杠 (`\`) 结尾,如果缺失则会动态追加。
* 使用 `_strcat` 追加通配符搜索模式字符串 `*`,准备通过 `FindFirstFileA` 和 `FindNextFileA` 搜索所有目标对象,以进行网络传播或扫描。
### 3. 自动化进程终结器与防御规避 (`EnumFunc`)
为了避免被分析并中和主机防御,该恶意软件利用窗口枚举函数充当自动化进程终止器。
* 使用 `EnumWindows` 回调例程 (`EnumFunc`) 主动查询运行中的窗口结构。
* 调用 `GetClassNameA` 和 `GetWindowTextA` 获取活动软件界面的名称,并使用 `_strcat` 将它们拼接起来。
* 将字符串传递给 `sub_4023A9`,以与硬编码的安全工具和分析平台(例如,任务管理器、调试器、防病毒解决方案)列表进行比对。
* 如果发现匹配项,它会通过 `OpenProcess` 请求绝对的执行控制权 `PROCESS_ALL_ACCESS` (`1F0FFFh`),并立即使用 `TerminateProcess` 发出强制终止序列。
### 4. 次级 Payload 下载器 (`URLDownloadToFileA`)
该恶意软件具有嵌入在 `loc_4011B3` 中的专用下载功能。
* 调用带有前缀字符串 `"WIN"` 的 `GetTempFileNameA`,在环境的临时存储库(例如 `WINxxxx.tmp`)中准备一个 payload 投递器目标文件。
* 将混淆的网络指针 payload 传递给 `sub_402840`,以解析命令与控制 服务器地址。
* 触发 `URLDownloadToFileA` (`urlmon.dll`),无需生成用户提示,即可无缝检索并将可执行 payload 直接保存到受害者的本地驱动器上。
### 5. 异步执行与系统持久化
* **线程生成:** 通过 `CreateThread` 生成系统执行通道,异步执行新获取的 payload。
* **执行优先级:** 通过 `SetThreadPriority` 设置优先级标记 `0FFFFFFFEh` (`THREAD_PRIORITY_HIGHEST`),强制提升执行优先度。
* **延时任务:** 采用隐藏窗口循环和事件钩子 (`SetTimer`),配置了不同的延迟间隔(例如 `400h` 和 `800h`),以不断重新运行检查循环和后台传播步骤。
* **注册表持久化:** 使用字符串循环解密注册表目标,以便在诸如 `Software\Microsoft\Windows\CurrentVersion\Run` 等持久化配置项中植入自定义的修改条目。
## 📊 妥协指标
### 基于主机的指标(文件与注册表)
| IoC 类别 | 值 / 路径 | 描述 |
| :--- | :--- | :--- |
| **目录目标** | `C:\Windows\System32\` | 恶意软件解析以进行结构化存储的系统目录。 |
| **文件创建名** | 以 `WIN` 开头的本地临时目录文件(例如 `WIN*.tmp`) | 通过 `GetTempFileNameA` 创建的临时投放器名称。 |
| **注册表配置项** | `HKCU\Software\Microsoft\Windows\CurrentVersion\Run` | 由该例程解密以实现系统持久化的目标键。 |
| **访问掩码** | `0x1F0FFF` (`PROCESS_ALL_ACCESS`) | 请求用于操纵其他进程的高度激进的进程访问权限。 |
### 基于网络的指标
| IoC 类别 | 技术属性 | 描述 |
| :--- | :--- | :--- |
| **API 调用** | `URLDownloadToFileA` (`urlmon.dll`) | 被触发以连接到外部 C2 架构并获取恶意文件。 |
| **加密的 C2 URL** | `"hsrm6*pwv,puh[gtda+_jg("` | 编译到二进制 payload 中的混淆网络字符串。 |
## 🧬 字符串解密方案 (`sub_402840`)
该样本实现了一种专有的混淆算法,该算法围绕字符串长度度量设计。汇编逻辑应用 `idiv` 操作,将字符串长度属性除以 **8** 以分离出特定的偏移量,随后在数学上利用这些偏移量将字符逐字节转换为明文字符串。
*本报告出于研究与教育记录目的生成。*
### 🔑 加密哈希
* **MD5:** `e79d0b1a342712ea9b96104086149d65`
* **SHA-1:** `a10177aafebb035e104eb22d30bdacb3894e0e1e`
* **SHA-256:** `e68ebecd17bb8e91079bd4fe9bd24059a2bc007b4baac477127eda7c5d5c6706`
## 🛠️ 恶意软件功能与技术剖析
### 1. 社会工程学与反分析 (`MessageBoxA`)
在初始执行时,恶意软件会在内存中构建混淆字符串,并将其传递给自定义解密例程 (`sub_402840`)。它立即使用带有警告图标标志 `30h` 的 `MessageBoxA` 弹出虚假错误消息。
* **目的:** 诱骗受害者相信应用程序已崩溃或运行失败,而 payload 的执行则会在后台静默生成。
### 2. 环境收集与目标目录遍历
恶意软件会获取当前的活动目标目录,以进行自我植入或收集文件。
* 调用 `GetSystemDirectoryA` 来解析系统文件夹的路径(通常是 `C:\Windows\System32\`)。
* 实现了一个目录遍历函数 (`sub_401AB8`),该函数会验证路径是否以反斜杠 (`\`) 结尾,如果缺失则会动态追加。
* 使用 `_strcat` 追加通配符搜索模式字符串 `*`,准备通过 `FindFirstFileA` 和 `FindNextFileA` 搜索所有目标对象,以进行网络传播或扫描。
### 3. 自动化进程终结器与防御规避 (`EnumFunc`)
为了避免被分析并中和主机防御,该恶意软件利用窗口枚举函数充当自动化进程终止器。
* 使用 `EnumWindows` 回调例程 (`EnumFunc`) 主动查询运行中的窗口结构。
* 调用 `GetClassNameA` 和 `GetWindowTextA` 获取活动软件界面的名称,并使用 `_strcat` 将它们拼接起来。
* 将字符串传递给 `sub_4023A9`,以与硬编码的安全工具和分析平台(例如,任务管理器、调试器、防病毒解决方案)列表进行比对。
* 如果发现匹配项,它会通过 `OpenProcess` 请求绝对的执行控制权 `PROCESS_ALL_ACCESS` (`1F0FFFh`),并立即使用 `TerminateProcess` 发出强制终止序列。
### 4. 次级 Payload 下载器 (`URLDownloadToFileA`)
该恶意软件具有嵌入在 `loc_4011B3` 中的专用下载功能。
* 调用带有前缀字符串 `"WIN"` 的 `GetTempFileNameA`,在环境的临时存储库(例如 `WINxxxx.tmp`)中准备一个 payload 投递器目标文件。
* 将混淆的网络指针 payload 传递给 `sub_402840`,以解析命令与控制 服务器地址。
* 触发 `URLDownloadToFileA` (`urlmon.dll`),无需生成用户提示,即可无缝检索并将可执行 payload 直接保存到受害者的本地驱动器上。
### 5. 异步执行与系统持久化
* **线程生成:** 通过 `CreateThread` 生成系统执行通道,异步执行新获取的 payload。
* **执行优先级:** 通过 `SetThreadPriority` 设置优先级标记 `0FFFFFFFEh` (`THREAD_PRIORITY_HIGHEST`),强制提升执行优先度。
* **延时任务:** 采用隐藏窗口循环和事件钩子 (`SetTimer`),配置了不同的延迟间隔(例如 `400h` 和 `800h`),以不断重新运行检查循环和后台传播步骤。
* **注册表持久化:** 使用字符串循环解密注册表目标,以便在诸如 `Software\Microsoft\Windows\CurrentVersion\Run` 等持久化配置项中植入自定义的修改条目。
## 📊 妥协指标
### 基于主机的指标(文件与注册表)
| IoC 类别 | 值 / 路径 | 描述 |
| :--- | :--- | :--- |
| **目录目标** | `C:\Windows\System32\` | 恶意软件解析以进行结构化存储的系统目录。 |
| **文件创建名** | 以 `WIN` 开头的本地临时目录文件(例如 `WIN*.tmp`) | 通过 `GetTempFileNameA` 创建的临时投放器名称。 |
| **注册表配置项** | `HKCU\Software\Microsoft\Windows\CurrentVersion\Run` | 由该例程解密以实现系统持久化的目标键。 |
| **访问掩码** | `0x1F0FFF` (`PROCESS_ALL_ACCESS`) | 请求用于操纵其他进程的高度激进的进程访问权限。 |
### 基于网络的指标
| IoC 类别 | 技术属性 | 描述 |
| :--- | :--- | :--- |
| **API 调用** | `URLDownloadToFileA` (`urlmon.dll`) | 被触发以连接到外部 C2 架构并获取恶意文件。 |
| **加密的 C2 URL** | `"hsrm6*pwv,puh[gtda+_jg("` | 编译到二进制 payload 中的混淆网络字符串。 |
## 🧬 字符串解密方案 (`sub_402840`)
该样本实现了一种专有的混淆算法,该算法围绕字符串长度度量设计。汇编逻辑应用 `idiv` 操作,将字符串长度属性除以 **8** 以分离出特定的偏移量,随后在数学上利用这些偏移量将字符逐字节转换为明文字符串。
*本报告出于研究与教育记录目的生成。*标签:DAST, DNS 反向解析, 云资产清单, 威胁情报, 开发者工具, 恶意软件分析, 搜索语句(dork), 端点可见性, 网络信息收集, 网络安全审计, 逆向工程