munkasirhaque0x1/Malware-Analysis-Tool

GitHub: munkasirhaque0x1/Malware-Analysis-Tool

这是一个基于Python的静态恶意软件分析工具,用于快速提取威胁指标并生成检测规则。

Stars: 2 | Forks: 0

# 🛡️ 恶意软件分析工具
**一个强大的基于 Python 的恶意软件分析工具包,用于威胁狩猎、IOC 提取和 YARA 规则生成。** 专为网络安全研究人员和分析师打造。 [功能特性](#-features) • [安装说明](#-installation) • [使用方法](#-usage) • [输出示例](#-output-samples) • [开发者信息](#-developer)
## ⚠️ 免责声明 (此处应放置免责声明的具体内容) ## 📌 概述 **恶意软件分析工具**是一个基于 Python 的静态分析工具包,可帮助安全研究人员快速、高效地分析可疑文件。它提供两种模式: - 🖥️ **图形界面模式** (`malware_analyzer.py`) — 一个简洁的、基于 Tkinter 的桌面界面,用于手动逐文件分析。 - ⚡ **命令行模式** (`automated_malware_analyzer.py`) — 一个强大的命令行工具,用于自动化批量分析并生成完整报告。 无论您是分析单个文件还是整个文件夹的恶意软件样本,该工具都能在数秒内提取关键的威胁情报。 ## ✨ 功能特性 ### 🔍 核心分析能力 | 功能 | 图形界面模式 | 命令行模式 | |---|:---:|:---:| | 文件哈希计算 (MD5, SHA1, SHA256) | ✅ | ✅ | | 熵分析与混淆检测 | ✅ | ✅ | | IP 地址提取 | ✅ | ✅ | | 域名提取(严格,低误报率) | ✅ | ✅ | | URL 提取 | ✅ | ✅ | | 可疑字符串检测 | ❌ | ✅ | | Windows 注册表指标检测 | ✅ | ✅ | | PE 文件分析(导入表、节、时间戳) | ❌ | ✅ | | 为每个文件自动生成 YARA 规则 | ✅ | ✅ | | 使用现有 YARA 规则进行扫描 | ❌ | ✅ | | 批量文件/文件夹扫描 | ❌ | ✅ | | 导出 TXT 报告 | ❌ | ✅ | | 导出 PDF 报告 | ❌ | ✅ | ### 🧠 可检测内容 - **打包/加密的恶意软件** — 通过高熵值检测(阈值:7.5) - **C2 通信指标** — 嵌入文件中的可疑 IP 和域名 - **恶意 URL** — 硬编码的下载链接或信标 URL - **持久化机制** — Windows 注册表 `CurrentVersion\Run` 键 - **可疑命令** — `cmd.exe`、`powershell`、`base64`、`/bin/bash`、`wget`、`curl`、`netcat` - **PE 元数据** — Windows 可执行文件的编译时间戳、DLL 导入、节名称 ## 📁 项目结构 ``` Malware-Analysis-Tool/ │ ├── 📄 malware_analyzer.py # GUI-based manual analyzer (Tkinter) ├── 📄 automated_malware_analyzer.py # CLI-based automated batch analyzer ├── 📄 base64_exec_rule.yar # YARA detection rule ├── 📄 README.md # Project documentation ├── 📄 README_environment.txt # Quick environment setup reference ├── 📄 .gitignore # Git ignore rules │ ├── 📁 yara_rules/ # Auto-generated YARA rules (created on run) │ └── .yara │ ├── 📄 automated_analysis_report.txt # Output TXT report (created on run) └── 📄 automated_analysis_report.pdf # Output PDF report (created on run) ``` ## ⚙️ 安装说明 ### 前置条件 - Kali Linux / Ubuntu (推荐) - Python 3.8 或更高版本 - pip3 ### 步骤 1 — 克隆仓库 ``` git clone https://github.com/munkasirhaque0x1/Malware-Analysis-Tool.git cd Malware-Analysis-Tool ``` ### 步骤 2 — 创建虚拟环境 ``` sudo apt install python3-venv -y python3 -m venv malwareenv source malwareenv/bin/activate ``` ### 步骤 3 — 安装依赖项 ``` pip install yara-python pefile psutil fpdf pynput requests ``` ### 依赖项概览 | 包名 | 用途 | |---|---| | `yara-python` | YARA 规则编译与扫描 | | `pefile` | PE (Windows 可执行文件) 解析 | | `fpdf` | PDF 报告生成 | | `psutil` | 系统/进程监控 | | `requests` | 基于网络的查询(未来功能) | | `pynput` | 输入监控支持 | | `tkinter` | 图形用户界面(Python 内置) | ## 🚀 使用方法 ### 🖥️ 图形界面模式 — 手动分析器 ``` python3 malware_analyzer.py ``` **如何使用:** 1. 运行上述命令 2. 图形界面窗口将自动打开 3. 点击 **"选择要分析的文件"** 4. 选择一个或多个可疑文件 5. 结果将立即显示在输出框中 **图形界面输出示例:** ``` Analyzing: /path/to/suspicious.exe File Size: 21681344 bytes Entropy: 7.78 (High - Possibly Obfuscated) MD5: 35c7e1235e12192e403f47cae2c8f893 SHA1: 3603a9a9a24a0cf7f8d0761f7a7da4f136bdceca SHA256: 529de3168220c0a8784e19499bfcb84a3fb47001f2175a53b2e8477ece9e97b5 IP Addresses: None Domains: github.com, chromium.googlesource.com URLs: https://chromium.googlesource.com/a/external/github.com/llvm/llvm-project Registry Indicators: None YARA Rule Saved: yara_rules/suspicious_exe.yara ``` ### ⚡ 命令行模式 — 自动化批量分析器 ``` # 首先激活 virtual environment source malwareenv/bin/activate # 分析单个文件 python3 automated_malware_analyzer.py suspicious_file.exe # 同时分析多个文件 python3 automated_malware_analyzer.py file1.exe file2.dll file3.py # 分析整个文件夹的 samples python3 automated_malware_analyzer.py /path/to/samples/ # 使用自定义 YARA rule 进行扫描 python3 automated_malware_analyzer.py sample.exe --yara-rule my_rules.yar # 跳过 PDF 报告生成 python3 automated_malware_analyzer.py sample.exe --no-pdf ``` ## 📄 输出示例 ### 终端输出(命令行模式) ``` [*] Analyzing 1 file(s)... ====================================================================== File : /samples/malware.exe File Size : 524288 bytes Entropy : 7.92 WARNING HIGH - Possibly Obfuscated/Packed MD5 : d41d8cd98f00b204e9800998ecf8427e SHA1 : da39a3ee5e6b4b0d3255bfef95601890afd80709 SHA256 : e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 IPs : 192.168.1.100, 10.0.0.5 Domains : malicious-c2.com, update-service.net URLs : http://malicious-c2.com/payload/download Suspicious : cmd.exe, powershell, base64 Registry : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run YARA Rule : yara_rules/malware_exe.yara YARA Scan : MATCHED: Base64_Exec_Detection PE Timestamp: 2023-04-15 08:32:11 UTC PE Sections : .text | VSize: 409600 | RawSize: 409600 .data | VSize: 65536 | RawSize: 65536 PE Imports : kernel32.dll: CreateProcess, VirtualAlloc, WriteProcessMemory ====================================================================== [+] TXT report saved: automated_analysis_report.txt [+] PDF report saved: automated_analysis_report.pdf [✓] Done. 1 file(s) analyzed. ``` ### 生成的报告 - 📄 `automated_analysis_report.txt` — 所有已分析文件的纯文本完整报告 - 📄 `automated_analysis_report.pdf` — 用于文档记录/分享的格式化 PDF 报告 - 📁 `yara_rules/.yara` — 为每个已分析文件生成的独立 YARA 规则文件 ## 🧪 YARA 规则 ### 自动生成的示例规则 ``` rule AutoGen_suspicious_exe { meta: author = "Auto YARA Generator" description = "Auto-generated YARA rule for suspicious.exe" date = "2025-05-17" strings: $header = { 4d 5a 90 00 03 00 00 00 04 00 00 00 ff ff 00 00 } condition: $header } ``` ### 内置检测规则 (`base64_exec_rule.yar`) ``` rule Base64_Exec_Detection { meta: author = "Malware-Analysis-Tool" description = "Detects base64-encoded execution attempts" strings: $b64_exec = /[A-Za-z0-9+\/]{20,}={0,2}/ ascii $shell = "shell" nocase $exec = "exec(" nocase condition: $b64_exec and ($shell or $exec) } ``` ## 🔒 支持的文件类型 | 文件类型 | 是否支持 | |---|:---:| | Windows 可执行文件 (.exe, .dll) | ✅ | | Python 脚本 (.py) | ✅ | | 批处理文件 (.bat, .cmd) | ✅ | | Shell 脚本 (.sh) | ✅ | | JSON / XML / 文本文件 | ✅ | | 共享库文件 (.so, .dylib) | ✅ | | 任何二进制文件 | ✅ | ## 🛠️ 工作原理 ``` Input File(s) │ ▼ ┌─────────────────────────────────────┐ │ File Pre-processing │ │ • Read bytes • Get file size │ └─────────────────┬───────────────────┘ │ ┌────────────┼────────────┐ ▼ ▼ ▼ ┌─────────┐ ┌─────────┐ ┌──────────┐ │ Hash │ │Entropy │ │ IOC │ │ MD5 │ │Analysis │ │Extractor │ │ SHA1 │ │ │ │IPs/URLs │ │ SHA256 │ │Obfusc.? │ │Domains │ └─────────┘ └─────────┘ └──────────┘ │ │ │ └────────────┼────────────┘ ▼ ┌────────────────────────┐ │ YARA Processing │ │ • Auto-generate rule │ │ • Scan with rules │ └────────────┬───────────┘ │ ▼ ┌────────────────────────┐ │ Report Output │ │ • Terminal display │ │ • TXT report │ │ • PDF report │ └────────────────────────┘ ``` ## 🤝 贡献指南 欢迎贡献!以下是参与方式: 1. Fork 本仓库 2. 创建一个新分支:`git checkout -b feature/your-feature-name` 3. 进行更改并提交:`git commit -m "添加:你的功能"` 4. 推送到你的分支:`git push origin feature/your-feature-name` 5. 开启一个 **Pull Request** 请确保您的代码遵循简洁的编码规范并包含注释。 ## 📜 许可证 本项目采用 **MIT 许可证**。 完整详情请参阅 [LICENSE](LICENSE) 文件。 ## 👨‍💻 开发者
### Md. Munkasir Haque **网络安全爱好者 | 恶意软件研究员 | Python 开发者** *"安全不是一个产品,而是一个过程。"* 🔐 热衷于威胁情报、恶意软件分析以及构建防御性安全工具。 目前在 Kali Linux 领域学习和成长于网络安全领域。 ### 🤝 联系我 💼 **LinkedIn** — [linkedin.com/in/munkasirhaque0x1](https://www.linkedin.com/in/munkasirhaque0x1/)
**⭐ 如果您觉得这个工具有用,请在 GitHub 上给它一个星标!⭐** 由 **Md. Munkasir Haque** ❤️ 制作
标签:DAST, DInvoke, DNS信息、DNS暴力破解, GUI应用, IOC提取, IP提取, URL提取, YARA规则, 云安全监控, 反编译, 哈希计算, 域名提取, 威胁情报, 威胁猎杀, 开发者工具, 恶意软件分析, 批量处理, 数字取证, 文件分析, 注册表分析, 熵分析, 网络安全, 自动化脚本, 逆向工具, 防御性安全, 隐私保护, 静态分析