munkasirhaque0x1/Malware-Analysis-Tool
GitHub: munkasirhaque0x1/Malware-Analysis-Tool
这是一个基于Python的静态恶意软件分析工具,用于快速提取威胁指标并生成检测规则。
Stars: 2 | Forks: 0
# 🛡️ 恶意软件分析工具
.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) 文件。
## 👨💻 开发者
**一个强大的基于 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)
│ └──
### 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规则, 云安全监控, 反编译, 哈希计算, 域名提取, 威胁情报, 威胁猎杀, 开发者工具, 恶意软件分析, 批量处理, 数字取证, 文件分析, 注册表分析, 熵分析, 网络安全, 自动化脚本, 逆向工具, 防御性安全, 隐私保护, 静态分析