B0bTheSkull/honeynet

GitHub: B0bTheSkull/honeynet

一个基于 Python 的轻量级模块化蜜罐框架,通过模拟 SSH、HTTP、FTP 服务捕获攻击者凭据与行为,并检测多服务协调扫描,帮助安全团队积累真实威胁情报数据。

Stars: 0 | Forks: 0

# HoneyNet ![Python](https://img.shields.io/badge/python-3.8%2B-blue?style=flat-square&logo=python) ![License](https://img.shields.io/badge/license-MIT-green?style=flat-square) ![Educational](https://img.shields.io/badge/use-educational-orange?style=flat-square) ## 蜜罐 (Honeypots) | 服务 | 默认端口 | 捕获内容 | |---------|-------------|-----------------| | **SSH** | 2222 | 所有登录凭据、输入的 Shell 命令 | | **HTTP** | 8080 | 带凭据的登录尝试、敏感路径探测 | | **FTP** | 2121 | 登录凭据、文件访问尝试、命令 | 所有三个服务都会将日志记录到同一个集中式 JSON 日志文件中。 ## 安装 ``` git clone https://github.com/B0bTheSkull/honeynet.git cd honeynet pip install -r requirements.txt mkdir -p logs ``` ## 用法 ``` # 启动所有蜜罐(使用 config.yaml) python honeynet.py # 自定义 config file python honeynet.py --config my_config.yaml # 分析 event log python honeynet.py --analyze # 分析特定 log file python honeynet.py --analyze --log logs/honeynet.json ``` ## 配置 ``` log_file: "logs/honeynet.json" honeypots: ssh: enabled: true port: 2222 banner: "SSH-2.0-OpenSSH_8.9p1 Ubuntu-3ubuntu0.6" http: enabled: true port: 8080 ftp: enabled: true port: 2121 banner: "220 FTP Server Ready" alerts: multi_service_window: 60 # seconds ``` ## 日志输出示例 实时控制台输出(带颜色): ``` [14:32:01] [SSH] 185.220.101.45:52341 → CONNECTION [14:32:03] [SSH] 185.220.101.45:52341 → LOGIN ATTEMPT | u=root p=123456 [14:32:04] [SSH] 185.220.101.45:52341 → SHELL COMMAND | cmd=whoami [14:32:04] [SSH] 185.220.101.45:52341 → SHELL COMMAND | cmd=cat /etc/passwd [14:33:01] [HTTP] 185.220.101.45:51234 → LOGIN ATTEMPT | u=admin p=password [14:33:02] [HTTP] 185.220.101.45:51234 → SENSITIVE FILE PROBE | path=/.env [!] COORDINATED SCAN DETECTED 185.220.101.45 hit 2 honeypot services: SSH, HTTP This indicates automated multi-service scanning. ``` JSON 日志格式: ``` { "timestamp": "2024-08-22T14:32:03.841234", "honeypot": "SSH", "source_ip": "185.220.101.45", "source_port": 52341, "event_type": "login_attempt", "details": { "username": "root", "password": "123456", "method": "password" } } ``` ## 日志分析 ``` python honeynet.py --analyze ``` ``` ======================================================= HoneyNet Event Analysis — 1,247 total events ======================================================= By Honeypot: SSH: 891 HTTP: 312 FTP: 44 By Event Type: login_attempt: 847 connection: 234 sensitive_file_probe: 98 shell_command: 68 Top Source IPs: 185.220.101.45: 312 events 91.240.118.172: 187 events 203.0.113.88: 143 events Most Common Credentials Attempted: root:123456: 47x admin:admin: 38x root:root: 31x ubuntu:ubuntu: 28x root:password: 22x ``` ## 部署注意事项 - 在防火墙后运行 —— 仅暴露蜜罐端口 - 使用云 VPS(DigitalOcean、Linode 等)以获得最高的命中率 - SSH 蜜罐默认在端口 2222 上运行(在不需要真实 SSH 的 VPS 上可更改为 22) - 端口 8080 上的 HTTP 蜜罐可以放在 nginx 后面的 80 端口上 - 定期轮转和归档日志 ## MITRE ATT&CK 覆盖范围 HoneyNet 的诱饵可以捕获跨这些技术的攻击者行为。`logs/honeynet.json` 中的每个事件都是真实的对手活动,并映射到已记录的技术 —— 这既可用作检测规则的训练数据,也可作为威胁情报报告的证据。 | 蜜罐活动 | 战术 | 技术 | |---|---|---| | SSH 凭据尝试 | 凭据访问 | [T1110 — 暴力破解](https://attack.mitre.org/techniques/T1110/) | | FTP 凭据尝试 | 凭据访问 | [T1110 — 暴力破解](https://attack.mitre.org/techniques/T1110/) | | HTTP 登录尝试 | 凭据访问 | [T1110 — 暴力破解](https://attack.mitre.org/techniques/T1110/) | | 攻击者输入的 Shell 命令 | 执行 | [T1059.004 — Unix Shell](https://attack.mitre.org/techniques/T1059/004/) | | `whoami`, `id` | 侦察 | [T1033 — 系统所有者/用户发现](https://attack.mitre.org/techniques/T1033/) | | `cat /etc/passwd`、账户枚举 | 侦察 | [T1087.001 — 本地账户发现](https://attack.mitre.org/techniques/T1087/001/) | | HTTP 敏感文件探测(`.env`, `.git`) | 侦察 | [T1083 — 文件和目录发现](https://attack.mitre.org/techniques/T1083/) | | 协调的多服务扫描 | 侦察 | [T1595 — 主动扫描](https://attack.mitre.org/techniques/T1595/) | ## 路线图 - [ ] 高价值事件的 Email/Slack 告警 - [ ] 威胁情报集成(根据 abuse.ch 检查 IP) - [ ] 用于日志可视化的 Web 仪表板 - [ ] MySQL/Telnet 蜜罐模块 - [ ] GeoIP 丰富 ## 许可证 MIT
标签:CISA项目, FTP蜜罐, Homebrew安装, Honeypot, HTTP蜜罐, PFX证书, Python, SSH蜜罐, 凭据捕获, 协同扫描检测, 威胁情报, 密码管理, 开发者工具, 开源安全工具, 攻击检测, 无后门, 网络安全, 网络安全实验, 网络安全审计, 蜜罐, 证书利用, 诱饵系统, 进程注入, 逆向工具, 逆向工程平台, 隐私保护, 集中式日志