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), 攻击映射, 无后门, 无线安全, 漏洞搜索, 特征提取, 网络信息收集, 网络安全, 脚本分析, 自动化分析, 请求拦截, 跨站脚本, 逆向工具, 逆向工程, 隐私保护, 风险评分