X-Abhishek-X/malware-deobfuscator
GitHub: X-Abhishek-X/malware-deobfuscator
基于LLM的恶意软件去混淆工具,支持IOC提取和MITRE ATT&CK自动映射。
Stars: 0 | Forks: 0
# 恶意软件去混淆器
由 LLM 驱动的恶意软件分析工具,可自动去混淆脚本、提取 IOC 并将行为映射到 MITRE ATT&CK。
向其输入一段经过混淆的 PowerShell 下载器、Python 反向 shell、VBA 宏或 JavaScript 加载器,即可获得:
- **去混淆后的代码**(带有语义化的变量名)
- **恶意软件行为的通俗语言摘要**
- **逐步执行流程**
- **IOC**(IP、域名、URL、哈希、文件路径、注册表键)
- **MITRE ATT&CK 映射**(包含置信度评分和证据)
- **风险评分**(0-100)
## 架构
```
┌──────────────────────────────────────────────────────────┐
│ CLI (Typer + Rich) │
├────────────────┬────────────────┬────────────────────────┤
│ IOC Extractor │ MITRE Mapper │ LLM Backend │
│ (regex-based) │ (signature) │ (OpenAI / Ollama) │
├────────────────┴────────────────┴────────────────────────┤
│ Analysis Pipeline (merger) │
├──────────────────────────────────────────────────────────┤
│ Report Generator (JSON / Rich TUI) │
└──────────────────────────────────────────────────────────┘
```
该工具运行**两个独立的分析过程**:
1. **确定性分析** — 正则表达式提取 IOC + 基于签名的 MITRE 映射(无需 API,即时完成)
2. **LLM 驱动分析** — 将代码发送到 GPT-4o-mini 或本地 Ollama 模型进行深度分析
结果将与作为基准事实的静态分析合并。LLM 用于补充,但绝不会覆盖确定性分析的结果。
## 快速开始
```
# 克隆
git clone https://github.com/X-Abhishek-X/malware-deobfuscator.git
cd malware-deobfuscator
# 安装
pip install -e .
# 设置 API key
cp .env.example .env
# 使用 OpenAI key 编辑 .env(或配置 Ollama)
# 分析样本
deobfuscate analyze samples/obfuscated_powershell.ps1
# 仅提取 IOC(无需 API key,离线)
deobfuscate extract-iocs samples/obfuscated_python.py
# 批量分析目录
deobfuscate scan-dir samples/ -o reports/
# 输出为 JSON
deobfuscate analyze samples/obfuscated_powershell.ps1 --json
# 使用本地 Ollama 模型
deobfuscate analyze sample.ps1 -b ollama -m llama3.1
```
## 示例输出
```
╭──────────────────────────────────────────────────────────────╮
│ MALWARE DEOBFUSCATION REPORT │
│ SHA-256: a1b2c3d4e5... │
│ Language: PowerShell | Model: gpt-4o-mini │
│ Risk Score: 85/100 │
╰──────────────────────────────────────────────────────────────╯
╭─ Summary ────────────────────────────────────────────────────╮
│ PowerShell dropper that downloads a payload from │
│ 192.168.45.231, persists via registry run key, disables │
│ Windows Defender, executes the payload hidden, exfiltrates │
│ system info to a C2 server, and self-deletes. │
╰──────────────────────────────────────────────────────────────╯
Execution Flow
1. Constructs download URL via char-code concatenation
2. Downloads payload to %TEMP%\svchost.exe
3. Sets registry run key for persistence
4. Disables Defender real-time monitoring
5. Executes payload with hidden window
6. Collects systeminfo and hostname
7. Exfiltrates data via POST to C2
8. Deletes itself
┏━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ IOC Type ┃ Value ┃
┡━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ IPv4 │ 192.168.45.231 │
│ Domains │ evil-c2.xyz │
│ URLs │ https://evil-c2.xyz/beacon?h=... │
│ File Paths │ %TEMP%\svchost.exe │
│ Registry Keys │ HKCU\...\CurrentVersion\Run │
└────────────────┴──────────────────────────────────┘
┏━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━┳━━━━━━┓
┃ ATT&CK ID ┃ Technique ┃ Tactic ┃ Conf ┃
┡━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━╇━━━━━━┩
│ T1059.001 │ PowerShell │ Execution │ high │
│ T1547.001 │ Registry Run Keys │ Persistence │ high │
│ T1562.001 │ Disable Security Tools │ Defense Evasion │ high │
│ T1027 │ Obfuscated Files │ Defense Evasion │ med │
│ T1071.001 │ Web Protocols │ Command & Control│ high │
│ T1041 │ Exfil Over C2 Channel │ Exfiltration │ med │
│ T1070.004 │ File Deletion │ Defense Evasion │ med │
└────────────┴───────────────────────────┴──────────────────┴──────┘
```
## 命令
| 命令 | 描述 | 需要 API Key |
|---------|-------------|:---:|
| `analyze ` | 完整 LLM + 静态分析 | 是 |
| `extract-iocs ` | 仅正则提取 IOC | 否 |
| `scan-dir ` | 批量分析目录 | 是 |
| `version` | 显示版本 | 否 |
## 支持的语言
- PowerShell (.ps1)
- Python (.py)
- JavaScript (.js)
- VBA/VBScript (.vbs, .vba)
- Bash (.sh)
- Batch (.bat, .cmd)
## LLM 后端
### OpenAI (默认)
```
export OPENAI_API_KEY=sk-...
export OPENAI_MODEL=gpt-4o-mini # or gpt-4o for better results
```
### Ollama (本地, 私有)
```
# 安装 Ollama:https://ollama.ai
ollama pull llama3.1
export LLM_BACKEND=ollama
export OLLAMA_MODEL=llama3.1
```
## Docker
```
docker build -t malware-deobfuscator .
docker run --rm -e OPENAI_API_KEY=sk-... malware-deobfuscator analyze /samples/test.ps1
```
## 工作原理
1. **加载** — 读取样本文件并计算 SHA-256 哈希
2. **静态 IOC 提取** — 10 多个正则表达式模式提取 IP、域名、URL、哈希、文件路径、注册表键、电子邮件
3. **基于签名的 MITRE 映射** — 27 种技术签名,包含关键词匹配和置信度评分
4. **LLM 分析** — 完整代码被发送到 LLM,配合结构化提示词强制输出包含去混淆代码、执行流程、IOC 和 ATT&CK 映射的 JSON
5. **合并** — 静态结果作为基准事实;LLM 结果进行补充。取 IOC 的并集,保留最高置信度的 MITRE 映射
6. **报告** — 丰富的终端输出或 JSON 文件
## 测试样本
`samples/` 目录包含 4 个**已去敏**的教学样本:
- `obfuscated_powershell.ps1` — 字符编码 URL 构建器、注册表持久化、Defender 规避
- `obfuscated_python.py` — Base64 反向 shell、crontab 持久化、二阶段下载器
- `obfuscated_vba.vbs` — ActiveX 下载器、计划任务持久化、XMLHTTP 数据窃取
- `obfuscated_js.js` — 十六进制编码字符串、编码的 PowerShell、Discord webhook 数据窃取
这些样本可用于安全测试,并演示了现实世界中的混淆模式。
## 开发
```
pip install -e ".[dev]"
pytest tests/ -v
ruff check src/
```
## 许可证
MIT
标签:AI风险缓解, Cloudflare, CMS安全, CTF工具, DAST, DLL 劫持, DNS 反向解析, IOC提取, IPv6, IP 地址批量处理, JavaScript, LLM评估, MITRE ATT&CK, Ollama, OpenAI, OpenCanary, Petitpotam, PowerShell, Python, VBA, 云资产清单, 代码去混淆, 内存规避, 大语言模型, 威胁情报, 开发者工具, 恶意软件分析, 搜索语句(dork), 攻击映射, 无后门, 无线安全, 漏洞搜索, 特征提取, 网络信息收集, 网络安全, 脚本分析, 自动化分析, 请求拦截, 跨站脚本, 逆向工具, 逆向工程, 隐私保护, 风险评分