Ki1shan/FTP-Honeypot
GitHub: Ki1shan/FTP-Honeypot
一个具备 MITRE ATT&CK 自动映射、威胁评分和会话重放能力的多线程 FTP 蜜罐,专为蓝队培训和 SOC 演练场景设计。
Stars: 0 | Forks: 0
# 🍯 FTP 蜜罐





## ⚠️ 免责声明
本工具**仅**适用于以下用途:
- 授权的安全研究和威胁情报
- SOC 培训和蓝队演练
- 受控的实验环境
- 教育与网络安全培训目的
**未经明确许可,请勿在未授权的系统或公共基础设施上部署。**
## 概述
FTP 蜜罐是一个 SOC 级别的欺骗平台,它模拟一个易受攻击的 FTP 服务器,以捕获、分类和分析真实的攻击者行为。每一次交互都会自动映射到 MITRE ATT&CK 技术,按威胁级别进行评分,并以结构化的 JSON/CSV 格式记录日志,用于 SIEM 集成和应急响应培训。
## 架构
```
┌─────────────────────────────────────────────────────────┐
│ FTP HONEYPOT │
├─────────────────────────────────────────────────────────┤
│ │
│ ┌───────────────────────────────────────────────────┐ │
│ │ FTP SERVER (port 21) │ │
│ │ Multi-threaded, full protocol emulation │ │
│ │ USER, PASS, LIST, RETR, STOR, DELE, MKD... │ │
│ └───────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌───────────────────────────────────────────────────┐ │
│ │ ATTACK DETECTOR │ │
│ │ Brute force detection (sliding window) │ │
│ │ Suspicious command classification │ │
│ │ Reconnaissance behavior analysis │ │
│ └───────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌───────────────────────────────────────────────────┐ │
│ │ MITRE ATT&CK MAPPER │ │
│ │ T1110 Brute Force → Credential Access │ │
│ │ T1059 Scripting → Execution │ │
│ │ T1070.004 File Deletion → Defense Evasion │ │
│ │ T1048 Exfiltration → Exfiltration │ │
│ │ T1083 Dir Discovery → Discovery │ │
│ └───────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌───────────────────────────────────────────────────┐ │
│ │ SOC LOGGER │ │
│ │ events.jsonl → structured event log │ │
│ │ alerts.jsonl → alert stream with MITRE refs │ │
│ │ sessions.json → full session tracking │ │
│ │ export_*.csv → SIEM-ready CSV exports │ │
│ └───────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌───────────────────────────────────────────────────┐ │
│ │ SOC DASHBOARD (Rich terminal UI) │ │
│ │ Live stats, top attackers, recent alerts │ │
│ │ Refreshes every 5 seconds │ │
│ └───────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────┘
```
## 功能特性
### 🖧 FTP 服务器模拟
- 完整的 FTP 协议支持 — `USER`、`PASS`、`LIST`、`RETR`、`STOR`、`DELE`、`MKD`、`CWD`、`PWD`、`QUIT`、`RNFR`、`RNTO`、`PORT`
- 多线程 — 处理多个并发的攻击者连接
- 每次会话随机生成伪造文件系统(8-12 个文件,3-5 个目录) — 对攻击者而言看起来很真实
- 在执行 `RETR` 时提供伪造文件内容 — 让攻击者保持更长时间的互动
- 可通过 `config.json` 配置凭据
### 🎯 MITRE ATT&CK 映射
每个命令和行为都会被自动映射:
| 命令 / 行为 | MITRE ID | 技术 | 战术 |
|-------------------|----------|-----------|--------|
| 暴力破解登录 | T1110 | Brute Force | Credential Access |
| DELE / DELETE / RM | T1070.004 | File Deletion | Defense Evasion |
| WGET / CURL / RETR | T1048 | Exfiltration Over Alt Protocol | Exfiltration |
| STOR / PUT | T1074 | Data Staged | Collection |
| LIST / DIR / LS | T1083 | File and Directory Discovery | Discovery |
| RNFR / RNTO | T1074 | Data Staged | Collection |
| MKD / MKDIR | T1083 | File and Directory Discovery | Discovery |
| 可疑命令 | T1059 | Command and Scripting Interpreter | Execution |
| 凭据破解成功 | T1003 | OS Credential Dumping | Credential Access |
| 侦察模式 | T1018 | Remote System Discovery | Discovery |
### 🚨 攻击检测
- **暴力破解检测** — 滑动窗口计数器(可配置阈值 + 时间窗口)
- **可疑命令检测** — `DELETE`、`WGET`、`CURL`、`NMAP`、`SQL`、`EXEC`、`SHUTDOWN`、`KILL` 等。
- **侦察行为** — 检测来自同一 IP 的重复枚举模式
- **威胁评分** — 每个会话的威胁评分为 LOW(+1)、MEDIUM(+5)、HIGH(+10)、CRITICAL(+25)
### 📊 SOC 日志与导出
- `events.jsonl` — 每次连接、登录尝试、命令均记录有 IP + 时间戳 + 会话 ID
- `alerts.jsonl` — 包含完整 MITRE ATT&CK 引用的告警流
- `sessions.json` — 完整的会话状态,包含完整的命令历史记录
- `export_*.csv` — 按需生成或关闭时自动导出适配 SIEM 的 CSV
- `export_*.json` — 用于调查的完整 JSON 导出
### 🖥️ SOC 仪表盘 (Rich 终端 UI)
- 实时统计 — 活跃会话、独立攻击者、总告警数
- Top 攻击者表格 — 按威胁评分排名
- 最近告警表格 — 包含 MITRE ID、威胁级别、源 IP
- 每 5 秒自动刷新
- 如果未安装 Rich,可优雅降级为纯文本显示
### 🔄 会话重放
- 通过会话 ID 重放任意攻击会话
- 显示带有 MITRE 映射和威胁级别的完整命令时间线
- 非常适合 SOC 培训和应急响应演练
## 安装说明
```
git clone https://github.com/Ki1shan/FTP-Honeypot.git
cd FTP-Honeypot
pip install rich
```
## 使用说明
### 启动蜜罐
```
python main.py
```
### CLI 命令(无需运行服务器即可进行分析)
```
python main.py cli sessions # List all captured sessions
python main.py cli alerts # Show all alerts with MITRE refs
python main.py cli summary # Incident response summary
python main.py cli export # Export logs to JSON + CSV
python main.py cli replay:SESSION_ID # Replay a specific attack session
```
## 配置 (`config.json`)
```
{
"ftp": {
"host": "0.0.0.0",
"port": 21,
"timeout": 30
},
"detection": {
"brute_force_threshold": 5,
"brute_force_window_seconds": 300,
"recon_command_threshold": 5,
"recon_unique_threshold": 3
},
"logging": {
"log_dir": "honeypot_logs",
"export_on_exit": true
},
"honeypot": {
"file_count_min": 8,
"file_count_max": 12,
"valid_usernames": ["admin", "root", "ftp", "anonymous"],
"valid_passwords": ["admin", "pass", "password", "123456"]
}
}
```
## 示例输出
**实时告警(检测到暴力破解):**
```
[ALERT] HIGH: Brute force attack detected from 192.168.1.9
[MITRE] T1110 - Brute Force (Credential Access)
```
**告警日志条目 (`alerts.jsonl`):**
```
{
"timestamp": "2026-04-04T13:23:06.958208",
"level": "HIGH",
"category": "BRUTE_FORCE",
"source_ip": "192.168.1.9",
"session_id": "C2853055",
"description": "Brute force attack detected from 192.168.1.9",
"mitre": {
"id": "T1110",
"name": "Brute Force",
"tactic": "Credential Access"
},
"details": { "attempts": 5 }
}
```
**应急响应摘要:**
```
============================================================
INCIDENT RESPONSE SUMMARY
============================================================
Total Attacks: 12
Unique Attackers: 4
Total Alerts: 8
High/Critical: 5
Medium: 2
Low: 1
Top Attacker IP: 192.168.1.9
Top Threat Score: 87
------------------------------------------------------------
MITRE ATT&CK Tactics Detected:
- Credential Access
- Defense Evasion
- Discovery
============================================================
```
## 使用场景
- **SOC 培训** — 用于蓝队演练的真实攻击者模拟
- **威胁情报** — 捕获并分析真实的攻击者 TTPs
- **SIEM 测试** — 使用结构化的 JSON/CSV 验证日志摄取管道
- **应急响应培训** — 用于 IR 演练的会话重放
- **网络安全研究** — 研究 FTP 相关的攻击模式
## 作者
**Kishan N**
攻防安全工程师 | SOC 工程 | 威胁检测
构建此 FTP 蜜罐旨在弥合攻击性知识与防御性工程之间的差距 — 将攻击者行为转化为可操作的威胁情报。
## 许可证
MIT License — 详情请参见 `LICENSE` 文件。
*以欺骗作为防御。每个攻击者都会给你带来启发。*
标签:Cloudflare, FTP服务器, FTP蜜罐, JSON/CSV格式, MITRE ATT&CK, Python, SIEM集成, SOC仪表盘, SOC大屏, 会话重放, 协议模拟, 威胁情报, 威胁评分, 子域名变形, 安全培训, 安全运营中心, 库, 应急响应, 开发者工具, 攻击行为分析, 无后门, 端点防护, 红队行动, 网络安全, 网络安全审计, 网络映射, 蓝队演练, 蜜罐技术, 隐私保护