cod735/honeypot-project
GitHub: cod735/honeypot-project
一个基于 Cowrie 的 SSH 蜜罐分析系统,集成威胁情报丰富、MITRE ATT&CK 映射和实时 SOC 仪表板,将攻击行为转化为可操作的安全洞见。
Stars: 0 | Forks: 0
# 蜜罐分析系统







**一个完整的防御性网络安全工具,用于捕获真实攻击者行为、丰富威胁情报、将攻击映射到 MITRE ATT&CK,并在实时 SOC 仪表板上可视化展示所有内容。**
*属于 [ShieldLog](https://github.com/cod735/shieldlog-siem) 统一安全平台的一部分。*

## 概述
蜜罐分析系统是一个独立的防御性安全工具,旨在引诱、捕获和分析真实世界的攻击者。它解析 Cowrie SSH 蜜罐日志,通过 AbuseIPDB 威胁情报数据库丰富每个攻击者 IP 的信息,将所有观察到的命令映射到 MITRE ATT&CK 框架,并在带有 Discord 告警功能的实时 Flask 仪表板中呈现所有内容。
作为独立安全工具组合的一部分构建 —— 每个工具都设计为最终通过 [ShieldLog SIEM](https://github.com/cod735/shieldlog-siem) REST API 集成到统一平台中。
## 功能特性
| 功能 | 描述 |
|---|---|
| **蜜罐日志解析** | 解析 Cowrie SSH 蜜罐 JSON 日志 — 登录、命令、文件下载 |
| **IP 威胁情报** | 通过 AbuseIPDB 丰富每个攻击者 IP 信息 — 国家、ISP、滥用评分、Tor 检测 |
| **MITRE ATT&CK 映射** | 自动将攻击者命令映射到 8 种战术的技术 |
| **实时 SOC 仪表板** | 实时 Flask 仪表板,包含图表、事件流、威胁情报和分析 |
| **Discord 告警** | 针对关键事件和每日摘要的即时 Discord 通知 |
| **IP 缓存** | 本地 JSON 缓存可防止冗余 API 调用并遵守速率限制 |
| **Systemd 服务** | 在 Linux 上作为具有自动重启功能的后台服务运行 |
| **ShieldLog 集成** | 位于端口 5003 的 REST API,用于与 ShieldLog SIEM 集成 |
## 仪表板
仪表板通过五个页面提供蜜罐活动的完整 SOC 风格视图:
- **概览** — 总事件数、唯一 IP 数、关键 IP 数、MITRE 技术、攻击时间轴图表
- **事件** — 完整的事件表,包含类型徽章、滥用评分、命令、国家
- **威胁情报** — 顶级攻击者 IP、国家、尝试的密码
- **MITRE ATT&CK** — 战术条形图、执行的顶级命令
- **分析** — 事件类型细分、威胁级别分布
## MITRE ATT&CK 覆盖范围
| 技术 ID | 名称 | 战术 |
|---|---|---|
| T1033 | System Owner/User Discovery | Discovery |
| T1082 | System Information Discovery | Discovery |
| T1016 | System Network Configuration Discovery | Discovery |
| T1057 | Process Discovery | Discovery |
| T1083 | File and Directory Discovery | Discovery |
| T1087 | Account Discovery | Discovery |
| T1110 | Brute Force | Credential Access |
| T1555 | Credentials from Files | Credential Access |
| T1059 | Command and Scripting Interpreter | Execution |
| T1222 | File and Directory Permissions Modification | Execution |
| T1021 | Remote Services | Lateral Movement |
| T1053 | Scheduled Task/Job | Persistence |
| T1098 | Account Manipulation | Persistence |
| T1136 | Create Account | Persistence |
| T1543 | Create or Modify System Process | Persistence |
| T1105 | Ingress Tool Transfer | Command & Control |
| T1095 | Non-Application Layer Protocol | Command & Control |
| T1070 | Indicator Removal | Defense Evasion |
| T1485 | Data Destruction | Defense Evasion |
| T1140 | Deobfuscate/Decode Files | Defense Evasion |
| T1560 | Archive Collected Data | Exfiltration |
| T1041 | Exfiltration Over C2 Channel | Exfiltration |
## 技术栈
| 工具 | 版本 | 用途 |
|---|---|---|
| Python | 3.12 | 核心语言 |
| Flask | 3.1 | Web 仪表板后端 |
| Flask-SocketIO | 5.3 | 实时仪表板更新 |
| Eventlet | 0.36 | 异步服务器 |
| Cowrie | — | SSH 蜜罐引擎(日志源) |
| AbuseIPDB API | v2 | IP 威胁情报 |
| MITRE ATT&CK | — | 技术映射框架 |
| Chart.js | 4.4 | 仪表板图表 |
| Discord Webhooks | — | 实时告警 |
| python-dotenv | — | 环境变量管理 |
| Requests | — | HTTP API 调用 |
## 项目结构
```
honeypot-project/
├── main.py # Entry point — CLI flags for all modes
├── requirements.txt # Python dependencies
├── install.sh # Linux installer + systemd setup
├── uninstall.sh # Clean uninstaller
├── .env # API keys (not committed)
│
├── parser/
│ ├── log_parser.py # Parse Cowrie JSON logs into events
│ ├── ip_enricher.py # AbuseIPDB IP threat enrichment + cache
│ ├── mitre_mapper.py # MITRE ATT&CK regex-based mapping (22 rules)
│ └── pipeline.py # Full analysis pipeline (parse → enrich → map)
│
├── dashboard/
│ ├── app.py # Flask + SocketIO backend, REST API, log watcher
│ └── templates/
│ └── index.html # SOC dashboard frontend (Chart.js, dark theme)
│
├── alerts/
│ └── discord_alert.py # Discord webhook alerts + daily summaries
│
├── logs/ # Drop Cowrie JSON log files here
├── data/
│ └── ip_cache.json # Local AbuseIPDB cache
└── samples/ # Dashboard screenshot
```
## 安装说明
### 前置条件
- Ubuntu / Debian Linux (或 WSL2)
- Python 3.10+
- 一个免费的 [AbuseIPDB](https://www.abuseipdb.com/) 账户用于获取 API 密钥
- 一个包含 Webhook URL 的 Discord 服务器(可选,用于告警)
### 选项 A — 自动安装(推荐)
```
git clone https://github.com/cod735/honeypot-project.git
cd honeypot-project
sudo bash install.sh
```
安装程序将:
1. 创建 Python 虚拟环境
2. 从 `requirements.txt` 安装所有依赖项
3. 创建所需的目录(`logs/`、`data/`、`samples/`)
4. 如果不存在则生成 `.env` 模板
5. 安装并启用 systemd 服务
6. 可选择立即启动服务
### 选项 B — 手动安装
```
git clone https://github.com/cod735/honeypot-project.git
cd honeypot-project
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
nano .env
```
### 配置 API 密钥
编辑您的 `.env` 文件:
```
# 在 https://www.abuseipdb.com/ 获取免费 key
ABUSEIPDB_API_KEY=your_key_here
# Discord: Server Settings → Integrations → Webhooks → Copy URL
DISCORD_WEBHOOK_URL=your_webhook_url_here
```
## 使用指南
### 运行所有内容(流水线 + 仪表板)
```
source venv/bin/activate
python main.py
```
### 模式
```
python main.py # Full pipeline + dashboard (default)
python main.py --dashboard # Dashboard only
python main.py --pipeline # Pipeline only — terminal output
python main.py --summary # Quick summary and exit
python main.py --no-alerts # Skip Discord alerts
```
### 通过 Systemd 服务
```
sudo systemctl start honeypot # Start
sudo systemctl stop honeypot # Stop
sudo systemctl status honeypot # Check status
sudo journalctl -u honeypot -f # View live logs
```
### 仪表板
```
http://localhost:5003
```
## 添加蜜罐日志
将 Cowrie JSON 日志文件放入 `logs/` 文件夹:
```
cp /path/to/cowrie/log/cowrie.json.2026-03-28 logs/
```
仪表板监视器每 5 秒轮询一次并自动获取新文件。无需重启。
预期的 Cowrie 日志格式(每行一个 JSON 对象):
```
{"eventid":"cowrie.login.failed","src_ip":"185.220.101.45","username":"root","password":"admin123","timestamp":"2026-03-28T10:23:05.111Z"}
{"eventid":"cowrie.command.input","src_ip":"185.220.101.45","input":"whoami","timestamp":"2026-03-28T10:23:11.444Z"}
```
## 示例发现(来自测试数据)
```
Total events : 10
Unique attacker IPs : 2
MITRE techniques : 2
Critical IPs : 1
Critical IP: 185.220.101.45
Country : Germany (DE)
ISP : Network for Tor-Exit traffic
Score : 100% — 98 reports
Tor Node : Yes
Tactics : Discovery
```
## REST API 端点
| 端点 | 描述 |
|---|---|
| `GET /api/summary` | 事件计数、唯一 IP 数、关键 IP 数、MITRE 技术 |
| `GET /api/events` | 包含威胁情报信息的最近 50 个事件 |
| `GET /api/top_ips` | 包含丰富数据的前 10 个攻击 IP |
| `GET /api/top_passwords` | 尝试次数最多的前 10 个密码 |
| `GET /api/top_commands` | 执行次数最多的前 10 个命令 |
| `GET /api/mitre` | MITRE ATT&CK 战术计数 |
| `GET /api/countries` | 攻击者国家细分 |
| `GET /api/timeline` | 按小时分组的事件(最近 24 小时) |
## 与 ShieldLog SIEM 集成
此工具通过其位于 `localhost:5003` 的 REST API 接入 [ShieldLog SIEM](https://github.com/cod735/shieldlog-siem) 平台。ShieldLog 将蜜罐事件与来自 [PacketSentinel](https://github.com/cod735/PacketSentinel) 的网络告警以及来自 [SysVigilant](https://github.com/cod735/SysVigilant) 的文件完整性事件关联起来,以实现统一的威胁检测。
## 展示的技能
- 防御性安全工具开发和蜜罐概念
- 日志解析和从 Cowrie 提取结构化数据
- 威胁情报 API 集成 (AbuseIPDB)
- MITRE ATT&CK 框架 — 通过正则规则进行技术映射
- 全栈 Web 开发 — Flask 后端 + JS 前端
- 使用 Flask-SocketIO + Eventlet 的实时数据
- Discord webhook 告警和每日摘要
- Systemd 服务配置和 Linux 部署
- API 缓存以遵守速率限制
- Python 3.12 — 模块化、整洁的项目架构
## 作者
**Abbas Khan**
- GitHub: [@cod735](https://github.com/cod735)
- 项目: [honeypot-project](https://github.com/cod735/honeypot-project)
### 其他项目
| 项目 | 描述 |
|---|---|
| [ShieldLog SIEM](https://github.com/cod735/shieldlog-siem) | 具有 18 条 MITRE ATT&CK 检测规则的 Flask SIEM |
| [PacketSentinel](https://github.com/cod735/PacketSentinel) | 具有 SOC 仪表板的实时网络流量监视器 |
| [SysVigilant](https://github.com/cod735/SysVigilant) | 具有 VirusTotal 集成的跨平台文件完整性监视器 |
## 许可证
MIT 许可证 — 可免费使用、修改和分发。
*作为统一防御安全平台的一部分构建 — ShieldLog + PacketSentinel + SysVigilant + Honeypot*
标签:AbuseIPDB, Chart.js, Cloudflare, Discord机器人, DNS 解析, Flask, HTTP/HTTPS抓包, HTTP工具, IP信誉分析, MITRE ATT&CK, Python, SOC仪表盘, SSH蜜罐, 威胁情报, 开发者工具, 态势感知, 攻击行为分析, 无后门, 日志解析, 网络信息收集, 网络安全, 网络安全审计, 网络测绘, 蜜罐系统, 证书伪造, 进程注入, 隐私保护