0xMsecurity/defuse
GitHub: 0xMsecurity/defuse
Defuse 是一个 Windows 恶意软件行为分析与自动化清除工具,通过检测可疑进程、注册表持久化和关联文件来彻底清除恶意软件。
Stars: 0 | Forks: 0
# 🛡️ Defuse – 恶意软件分析与清除项目
## 📌 概述
本项目致力于在受控环境中对基于 Windows 的恶意软件样本进行分析与清除。目标是了解恶意软件的行为,识别其持久化机制,并开发一个能够将其从系统中彻底清除的程序。
该解决方案被实现为一个行为驱动的清除工具,可根据其执行上下文和系统影响来检测并清除恶意软件。
## 项目结构
```
.
├── defuse.py
├── run_defuse.bat
├── requirements.txt
├── README.md
├── artifacts/
├── src/
│ └── defuse/
│ ├── cli.py
│ ├── config.py
│ ├── detection.py
│ ├── logging_utils.py
│ ├── models.py
│ ├── remediation.py
│ ├── reporting.py
│ ├── utils.py
│ └── windows_ops.py
└── tests/
└── test_utils.py
```
## ⚙️ 程序说明
开发的程序是一个 Windows 恶意软件清除工具,可执行自动化的检测与清理。
### 检测逻辑
它使用以下信号识别可疑活动:
1. 在 `C:\Users` 下用户可写位置(而非受信任的系统目录)运行的**实时可疑进程**。
2. 在以下必需键中的**注册表持久化**:
- `HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run`
- `HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce`
- `HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run`
- `HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce`
3. 在当前用户和所有用户启动目录中的**启动文件夹项**。
4. 在 `C:\Users` 下递归发现的**关联可执行文件副本**。
### 家族关联
该工具不仅依赖于精确的文件名。它会将名称标准化,以便将相关的变种视为同一恶意软件家族。
示例:
- `maltrack.exe` → `maltrack`
- `mal-track.exe` → `maltrack`
- `mal_track.exe` → `maltrack`
这使得它能够将 Downloads 中的原始释放器与 Documents 中生成的 payload 关联起来。
### 清除步骤
1. 检测可疑进程。
2. 枚举 Run 和 RunOnce 持久化。
3. 枚举可疑的启动项。
4. 使用标准化名称和哈希(如果可用)递归扫描 `C:\Users` 以查找相关可执行文件。
5. 终止可疑进程。
6. 移除注册表持久化值。
7. 删除启动项。
8. 从整个用户空间中删除关联的可执行文件。
9. 将证据报告写入 `artifacts/defuse_report.json`。
## 如何运行
### 前置条件
- Windows 10 或 11 虚拟机
- Python 3.10+
- 管理员命令提示符
### 安装
```
python -m pip install -r requirements.txt
```
### 执行
```
python defuse.py
```
或运行:
```
run_defuse.bat
```
### 🧹 清除工作流
程序执行以下操作:
1. 检测正在运行的可疑进程
2. 从执行路径中提取恶意软件身份
3. 终止恶意进程
4. 从以下位置移除持久化:
- HKCU\Software\Microsoft\Windows\CurrentVersion\Run
- HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce
- HKLM\Software\Microsoft\Windows\CurrentVersion\Run
- HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce
5. 递归扫描用户目录:
- Downloads
- Documents
- Desktop
- AppData
6. 使用标准化匹配识别相关的 payload
7. 删除所有关联的恶意文件
8. 生成清除报告
## 🧪 恶意软件分析演示
### 步骤 1 – 执行
恶意软件在 Windows 虚拟机内执行。
原始文件位置:
C:\Users\ehack\Downloads\mal-track.exe
### 步骤 2 – 观察到的行为(Procmon 分析)
使用 Process Monitor 和系统检查工具:
- 恶意软件生成了一个辅助可执行文件:
C:\Users\ehack\Documents\maltrack\maltrack.exe
- 创建了持久化机制:
HKCU\Software\Microsoft\Windows\CurrentVersion\Run
Value: Mal-Track → maltrack.exe
### 步骤 3 – 行为总结
恶意软件充当以下角色:
- 释放器(Downloads 中的初始可执行文件)
- payload(Documents 中执行的副本)
- 持久性威胁(基于注册表的自启动)
## 🧯 清除结果
运行开发工具后:
✔ 恶意进程已终止
✔ 注册表持久化已移除
✔ 启动项已清理
✔ Payload 已从 Documents 中移除
✔ 原始释放器已从 Downloads 中移除
✔ 用户目录中无残留项
## 📧 恶意软件缓解报告邮件
**To:** security@organization.com
**Subject:** 恶意软件分析报告:Fynloski 缓解措施
**尊敬的安全团队,**
我写信是为了报告在一次独立且受控的 Windows 环境中进行的网络安全实验室练习中,对确认为 *Fynloski* 的恶意软件样本进行的成功分析、遏制和清除。
## 总结
所分析的恶意软件表现出的行为与**基于释放器的感染链**以及**持久化机制**相一致。
从用户控制的目录(`Downloads`)执行后,该恶意软件将第二个 payload 部署到了另一个用户目录(`Documents`)中。随后,该 payload 作为独立的进程被执行,并通过在当前用户的启动配置下修改 Windows 注册表来维持持久化。
这种行为表现出了通常与后门或远程访问类恶意软件相关的特征,能够实现重复执行并可能导致长期的系统被攻陷。
## 观察到的详细行为
- 初始执行源自:
```
C:\Users\ehack\Downloads\mal-track.exe
```
- 创建并执行第二个 payload:
```
C:\Users\ehack\Documents\maltrack\maltrack.exe
```
- 通过注册表建立持久化:
```
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
Value Name: Mal-Track
```
- 持续执行 payload 进程以维持在系统上的驻留
## 缓解措施证明
开发的清除工具通过以下操作成功中和了该恶意软件:
- 识别并终止了活动的恶意进程(`maltrack.exe`)
- 移除了所有的持久化机制,涉及:
- HKCU\Software\Microsoft\Windows\CurrentVersion\Run
- HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce
- HKLM\Software\Microsoft\Windows\CurrentVersion\Run
- HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce
- 删除了部署在 Documents 目录中的 payload
- 定位并移除了 Downloads 目录中的原始释放器
- 对用户可访问的目录进行了递归扫描,确保没有残留或重复的 payload
- 验证了在采取清除措施后,没有活动的恶意进程或持久化条目残留
## 攻击者信息
恶意软件与以下 IP 地址进行了通信:
```
127.0.0.1
```
## 影响评估
如果在受控环境之外执行,此恶意软件可能会:
- 在系统重启后维持持久执行
- 实现未经授权的系统访问
- 促成数据窃取或监视
- 作为进一步恶意 payload 的后门
## ⚖️ 道德黑客报告
所有分析均在隔离的虚拟机中执行。恶意软件仅出于教育目的在此受控环境中运行。在此类环境之外运行恶意软件可能会导致系统被攻陷、数据丢失以及承担法律后果。
## 🎯 结论
本项目演示了完整的恶意软件分析和清除过程,确保了对活动 payload 和原始释放器的彻底移除,防止了再次感染。
## 👨💻 作者
- [@mohani](https://learn.reboot01.com/git/mohani)
标签:DAST, DNS 反向解析, Python, 恶意软件分析, 恶意软件清除, 无后门, 端点可见性, 逆向工具