mahamabbas171/malware-analysis-ghidra-static
GitHub: mahamabbas171/malware-analysis-ghidra-static
该项目记录了在 Kali Linux 上使用 Ghidra 对一个加壳 Windows PE 恶意软件样本进行纯静态逆向分析的完整流程与发现。
Stars: 0 | Forks: 0
# 恶意软件分析报告 – 使用 Ghidra 进行静态逆向工程
这是一个静态恶意软件分析项目,演示了在 Kali Linux 上使用 Ghidra 对加壳/混淆的 Windows PE 二进制文件进行逆向工程的过程,包括代码探索、控制流分析、字符串分析、IOC 提取和 MITRE ATT&CK 映射。
## 概述
本项目记录了在 **Kali Linux** 上使用 **Ghidra** 对可疑恶意软件二进制文件进行的静态分析。其目标是对从 MalwareBazaar 获取的恶意软件样本进行逆向工程,了解其行为,识别入侵指标(IOC),并将调查结果记录在结构化的技术报告中。本次仅进行了静态分析——**从未执行**该恶意软件,从而确保了整个调查过程中的系统安全。
## 目标
- 使用 Ghidra 的静态分析功能对恶意软件样本进行逆向工程。
- 识别二进制文件使用的加壳、混淆和反分析技术。
- 探索二进制文件的代码结构、控制流和可用函数。
- 提取入侵指标(IOC),如文件哈希、字符串和导入的 API。
- 将观察到的行为映射到相关的 MITRE ATT&CK 技术。
- 生成适合安全文档的结构化、专业的分析报告。
## 使用的技术
| 组件 | 详情 |
|---|---|
| 操作系统 | Kali Linux (VirtualBox) |
| 分析工具 | Ghidra |
| 分析类型 | 静态分析(无执行) |
| 网络连接 | 分析期间已禁用 |
| 样本来源 | MalwareBazaar (abuse.ch) |
## 恶意软件样本概述
| 属性 | 值 |
|---|---|
| 文件名 | `b50512b00c36e0f7f827b74f7bdaadaae775c48029e8be4da2b2eb3a17.exe` |
| 文件类型 | Windows Portable Executable (PE) |
| 架构 | PE32 |
| 分析状态 | 已加壳 / 混淆 |
该恶意软件样本已成功导入到 Ghidra 项目工作区中。活动项目中显示了该文件名,确认已加载正确的二进制文件进行分析。
## 分析过程
### 1. 初始侦察
将样本导入 Ghidra 并启动分析后,项目窗口显示了一条 **"Packed Database Cache"** 消息。结合无可读字符串、符号有限以及加密的 API 使用情况,这强烈表明该二进制文件已加壳或混淆——这是一种用于隐藏恶意代码和规避逆向工程的常用技术。
### 2. 代码探索
该恶意软件在 **CodeBrowser** 中打开以进行进一步检查,并审查了 **Symbol Tree** 以识别可用的函数。由于混淆,自动恢复的有意义的函数名极少或没有——这与旨在隐藏二进制文件逻辑的加壳或代码混淆行为一致。
### 3. 控制流与反编译器分析
使用 Ghidra 的 **Decompiler** 检查了恶意软件的入口点和可用代码段。尽管可以看到汇编指令,但由于加壳,无法清晰地重构高级逻辑,这表明控制流被故意混淆,符合反静态分析的设计。
### 4. 字符串分析
在 **Defined Strings** 窗口中搜索了可读字符串,例如 URL、IP 地址、文件路径或注册表项。未找到任何可读字符串,这证实了该恶意软件可能加密或隐藏了其字符串——这是混淆的进一步证据。
### 5. 导入与 API 分析
审查了 **Imports** 部分,以识别恶意软件使用的 Windows API 函数。系统级 API 的存在暗示了潜在的危险功能,如文件操作或进程交互,尽管仅靠静态分析无法完全确定其确切行为。
## 截图
| 描述 | 截图 |
|---|---|
| 导入 Ghidra 项目的恶意软件样本 |  |
| Ghidra 项目工作区概述 |  |
| Packed Database Cache 指示器 |  |
| CodeBrowser 中的 Symbol Tree |  |
| CodeBrowser 函数视图 |  |
| Decompiler 控制流输出 |  |
| Defined Strings 窗口 |  |
| 导入 / API 分析 |  |
## 入侵指标(IOC)
| 指标类型 | 值 |
|---|---|
| 文件名 | `b50512b00c36e0f7f827b74f7bdaadaae775c48029e8be4da2b2eb3a17.exe` |
| SHA-256 哈希 | 参考自 MalwareBazaar |
| URL / IP | 未检测到(已加壳的二进制文件) |
| 字符串 | 无可见字符串 |
## MITRE ATT&CK 映射
| 技术 ID | 描述 |
|---|---|
| [T1027](https://attack.mitre.org/techniques/T1027/) | 混淆 / 加壳的二进制文件 |
| [T1140](https://attack.mitre.org/techniques/T1140/) | 反混淆或解码文件或信息(潜在) |
## 持久化机制
通过静态分析未发现任何持久化机制——例如注册表自启动项或计划任务。这一局限性归因于该恶意软件的加壳特性,这限制了对恶意软件完整行为的可见性。
## 影响评估
根据静态分析,该恶意软件似乎是故意混淆的,旨在隐藏其真实行为。虽然无法完全确定其确切的 payload,但观察到的特征——加壳、无字符串以及隐藏的控制流——强烈表明了其恶意意图。
## 结论
本项目演示了如何使用 Ghidra 进行静态恶意软件分析。样本 `b50512b00c36e0f7f827b74f7bdaadaae775c48029e8be4da2b2eb3a17.exe` 被确认已加壳和混淆,从而阻碍了对其内部逻辑的完整可见性。尽管如此,加壳、无字符串和隐藏的控制流等关键指标强烈表明了其与规避性恶意软件设计相符的恶意行为。
## 参考资料
- [MalwareBazaar – abuse.ch](https://bazaar.abuse.ch/)
- [Ghidra – 美国国家安全局 (NSA)](https://ghidra-sre.org/)
- Varonis Ghidra 逆向工程指南
标签:DAST, DNS 反向解析, Ghidra, 云安全监控, 云资产清单, 安全研究报告, 恶意软件分析, 攻陷指标提取, 逆向工程, 静态分析