SwezyDev/Triage-Fetch
GitHub: SwezyDev/Triage-Fetch
一款轻量级 Telegram 机器人,用于自动监控 tria.ge 平台上的新恶意软件样本并向用户实时推送结构化分析报告与安全编码的样本文件。
Stars: 3 | Forks: 0
🛡️ Triage-Fetch 🛡️
Leave a ⭐ if you like this Repository
# 🚀 项目概述
**Triage-Fetch** 是一款恶意软件情报自动化工具,用于监控 [Triage](https://tria.ge) API 以获取新检测到的恶意软件样本。它会自动获取详细的分析报告,提取关键指标,并实时将其发送至 Telegram。
该应用程序作为持久化监听器运行,会持续轮询 Triage 以获取与您配置的条件(恶意软件家族和/或标签)相匹配的新样本,然后通过结构化报告和原始样本文件,经 Telegram 处理并分发分析数据。
## ✨ 功能
- 🔍 **自动化恶意软件监控** — 持续轮询 Triage API 以获取与您的过滤器匹配的新样本。
- 📊 **综合分析提取** — 自动拉取并提取:
- 恶意软件家族及类型
- SHA256 和文件哈希
- 文件大小和元数据
- 威胁评分和分类
- YARA 规则匹配
- C2 地址和网络指标
- 行为分析结果
- 📤 **Telegram 集成** — 直接将格式化的分析报告发送到您的 Telegram:
- 向个人聊天的直接消息
- 支持论坛主题的群组消息
- 包含详细元数据的 HTML 格式报告
- 💾 **本地报告存储** — 自动保存:
- 纯文本分析报告
- 包含提取数据的 JSON 配置文件
- XOR 加密的恶意软件样本(`.malware` 扩展名)
- 🎯 **灵活的过滤机制** — 通过以下方式配置检测:
- 恶意软件家族(例如 `xworm`、`emotet` 等)
- 自定义标签
- 威胁评分阈值
- 🤖 **Bot 命令处理器** — 实时 Telegram 命令:
- `/get
` — 按需获取特定样本
- 💾 **持久化跟踪** — 自动记录已处理的样本:
- 将恶意软件哈希存储在 `seen_hashes.db` 中
- 防止在重启后重复处理
- 重启后无缝恢复监控
- ⏱️ **可配置轮询** — 调整轮询间隔和每次轮询的最大结果数
- 🎨 **精美的 CLI** — 带有时间戳和状态指示符的彩色终端输出
## 🧭 工作原理
1. **配置**:在 `config.json` 中设置您的 Triage API 密钥、Telegram bot token 和过滤条件
2. **启动监听器**:运行 `python main.py`
3. 该工具将:
- 查询 Triage API 以获取匹配过滤器的样本
- 将当前样本标记为基准线(不会重新处理现有样本)
- 进入监控模式,按您配置的间隔进行轮询
- 自动处理任何新样本并通过 Telegram 进行报告
- 处理传入的 bot 命令以进行按需分析
4. **接收更新**:在您的个人 Telegram 聊天和/或群组中获取通知
## 🧰 环境要求
- 🐍 Python **3.9+**
- 📦 依赖项:
```
pip install requests colorama
```
- 🌐 网络连接
- 🔑 **Triage API 密钥(研究者许可)**([在 tria.ge 创建账户](https://tria.ge/signup/researcher))
- 🤖 **Telegram Bot Token**([通过 @BotFather 创建](https://t.me/BotFather))
## ⚙️ 配置
编辑 `config.json` 以配置应用程序:
```
{
"triage": {
"api_key": "your_triage_api_key_here",
"malware_family": ["xworm", "emotet"],
"malware_tags": ["trojan", "ransomware"],
"poll_interval": 30,
"max_results": 50
},
"telegram": {
"bot_token": "your_telegram_bot_token_here",
"chat_id": "your_personal_chat_id",
"group_id": "your_group_chat_id",
"topic_id": "forum_topic_id_optional"
}
}
```
**配置选项:**
- `api_key` — 您的 Triage API 身份验证 token
- `malware_family` — 按恶意软件家族名称过滤(字符串或列表)
- `malware_tags` — 按标签过滤(数组)
- `poll_interval` — API 轮询之间的秒数(默认:30)
- `max_results` — 每次轮询的最大结果数(默认:50)
- `bot_token` — 您的 Telegram bot token(从 @BotFather 获取)
- `chat_id` — 您的个人 Telegram 聊天 ID(可选,用于直接消息)
- `group_id` — 目标群组聊天 ID(可选,用于群组通知)
- `topic_id` — 群组内的论坛/主题 ID(可选,用于主题消息)
## 📁 仓库结构
```
├─ fetcher/ ➔ Core application modules
│ ├─ banner.py ➔ CLI banner and startup display
│ ├─ bot.py ➔ Telegram bot command handler (/get commands)
│ ├─ config.py ➔ Configuration file loader
│ ├─ formatter.py ➔ Data extraction and formatting utilities
│ ├─ sniper.py ➔ Automate something with the fetched C2s
│ ├─ telegram.py ➔ Telegram Bot API integration
│ └─ triage.py ➔ Triage API client (search, download, fetch)
├─ scripts/ ➔ Utility scripts for sample management
│ ├─ decode_sample.py ➔ Python Script to decode .malware files
│ ├─ delete_db.bat ➔ Windows batch script to delete the entire Seen Hashes Database
│ ├─ delete_db.sh ➔ Linux/macOS shell script to delete the entire Seen Hashes Database
│ ├─ delete_reports.bat ➔ Windows batch script to delete reports folder
│ └─ delete_reports.sh ➔ Linux/macOS shell script to delete reports folder
├─ config.json ➔ Configuration file (Triage API key, Telegram token, ...)
├─ main.py ➔ Main application logic and listener loop
├─ LICENSE ➔ MIT License file
└─ README.md ➔ This file
```
## 🚀 用法
### 1. 安装依赖项
```
pip install requests colorama
```
### 2. 配置凭证
```
# 编辑 config.json 并包含你的:
# - Triage API key
# - Telegram bot token
# - 用于通知的 Chat IDs
# - 获取 Configurations
```
### 3. 运行应用程序
```
python main.py
```
### 4. Telegram 命令
运行后,与您的 Telegram bot 进行交互:
```
/get # Fetch a specific sample on-demand
```
## 🛠️ 脚本与实用工具
`scripts/` 文件夹包含用于管理报告和样本的辅助实用工具:
### `decode_sample.py`
将 XOR 加密的 `.malware` 文件解码回其原始二进制格式。
**用法:**
```
# Linux/macOS
python ./scripts/decode_sample.py "reports/xworm/abc123.../filename.malware"
# Windows
python .\scripts\decode_sample.py "reports\xworm\abc123...\filename.malware"
```
**它的作用:**
- 接收 `.malware` 文件作为输入
- 使用密钥 `0xAA` 对其进行 XOR 解码(反转下载时应用的加密)
- 输出原始二进制文件(不带 `.malware` 扩展名)
- 示例:`filename.malware` → `filename.exe`
### `delete_reports.sh` / `delete_reports.bat`
在确认提示下安全删除所有下载的报告和样本。
**用法:**
```
# Linux/macOS
./scripts/delete_reports.sh
# Windows
.\scripts\delete_reports.bat
```
**它的作用:**
- 删除前提示确认
- 永久删除整个 `reports/` 文件夹及其所有内容
- 适用于清理或重新开始
- 需要手动确认(按 Ctrl+C 取消)
### `delete_db.sh` / `delete_db.bat`
在确认提示下安全删除您的已知哈希数据库。
**用法:**
```
# Linux/macOS
./scripts/delete_db.sh
# Windows
.\scripts\delete_db.bat
```
**它的作用:**
- 删除前提示确认
- 永久删除整个 `seen_hashes.db` 文件
- 适用于清理或重新开始
- 需要手动确认(按 Ctrl+C 取消)
## 📋 数据输出
该应用程序为报告创建结构化的目录层级:
```
reports/
├─ /
│ ├─ /
│ │ ├─ report.txt ➔ Plain text analysis report
│ │ ├─ config.json ➔ Extracted metadata (JSON)
│ │ └─ .malware ➔ XOR-encrypted sample
│ └─ /
│ └─ ...
```
每份报告包含:
- **元数据**:文件信息、哈希、威胁评分
- **检测**:YARA 规则、家族分类
- **网络**:C2 地址、域名、IP
- **行为**:API 调用、进程分析
- **时间戳**:提交和分析日期
## 📺 预览
[](https://www.youtube.com/watch?v=9iOe6xlAo5Y)
## 🔐 安全说明
- ✅ 该应用程序使用密钥 `0xAA` 对下载的样本进行 XOR 加密(防止意外执行)
- 🔒 API 密钥通过 HTTPS 安全地传输到 Triage
- 📌 Telegram token 应保密,并在泄露后进行轮换
## ⚖️ 许可证
基于 **MIT 许可证** 分发。更多信息请参见 `LICENSE`。
## 📝 备注
- 此工具专为**网络安全研究人员和威胁情报专业人员**设计
- 仅监控来自 Triage 的**公开可用**恶意软件分析数据
- 遵守 Triage API 的速率限制和轮询间隔
- 除您的本地系统和已配置的 Telegram 聊天外,不会存储或传输任何数据
## 🚨 免责声明
本项目**仅供合法的网络安全研究和威胁情报目的使用**。用户有责任遵守所有适用的法律法规。严禁未经授权访问系统或滥用 API。作者不对滥用此工具承担任何责任。标签:DAST, Python, Telegram机器人, 威胁情报, 开发者工具, 恶意软件分析, 无后门, 自动化监控, 逆向工具