Ki1shan/FTP-Honeypot

GitHub: Ki1shan/FTP-Honeypot

一个具备 MITRE ATT&CK 自动映射、威胁评分和会话重放能力的多线程 FTP 蜜罐,专为蓝队培训和 SOC 演练场景设计。

Stars: 0 | Forks: 0

# 🍯 FTP 蜜罐 ![Python](https://img.shields.io/badge/python-3.8+-blue) ![License](https://img.shields.io/badge/license-MIT-green) ![Status](https://img.shields.io/badge/status-active-brightgreen) ![MITRE](https://img.shields.io/badge/MITRE-ATT%26CK-red) ![Use Case](https://img.shields.io/badge/use--case-SOC%20Training-orange) ## ⚠️ 免责声明 本工具**仅**适用于以下用途: - 授权的安全研究和威胁情报 - 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大屏, 会话重放, 协议模拟, 威胁情报, 威胁评分, 子域名变形, 安全培训, 安全运营中心, 库, 应急响应, 开发者工具, 攻击行为分析, 无后门, 端点防护, 红队行动, 网络安全, 网络安全审计, 网络映射, 蓝队演练, 蜜罐技术, 隐私保护