目标:快速搭建多协议蜜罐,记录攻击行为,入门蜜罐实践
🎯 实验目标
搭建 TCP / HTTP / HTTPS / SSH / Telnet / FTP 的低交互蜜罐
捕获和记录攻击输入
了解异步架构 asyncio 的多协议处理方式
学习 JSONL 格式日志记录与分析
🛠 环境准备
Python 3.11+ 🐍
系统:Linux / Windows / macOS
端口:非特权端口(避免 root)
1 python multi_protocol_honeypot.py --host 0.0.0.0 --log honeypot_sessions.jsonl --generate-cert
⚠️ --generate-cert 用于 HTTPS 自签名证书
📡 测试示例 TCP 测试
Telnet 测试
FTP 测试
📄 日志示例 1 2 3 4 5 6 7 8 9 10 11 12 13 { "session_id" : "3f6e0d4a-1234-5678-9abc-abcdef123456" , "protocol" : "telnet" , "remote_ip" : "127.0.0.1" , "remote_port" : 50232 , "login" : "test" , "password" : "<captured>" , "inputs" : [ { "ts" : "2025-09-26T12:00:01+00:00" , "input" : "whoami" } , { "ts" : "2025-09-26T12:00:05+00:00" , "input" : "exit" } ] , "raw_base64" : "dGVzdF9sb2dpbgpwd2QK..." }
✅ 每条会话包含:协议类型、远端 IP、输入记录、原始数据
📊 日志解析示例 1 2 3 4 5 6 7 import jsonwith open ("honeypot_sessions.jsonl" ) as f: for line in f: entry = json.loads(line) if entry["protocol" ] == "telnet" : print (entry["remote_ip" ], entry["login" ], len (entry["inputs" ]))
可以统计攻击来源 IP 🌍
分析常用命令和密码尝试 🔑
🔚 总结
低交互蜜罐易于部署
JSONL 格式便于批量分析
适合入门攻击行为记录和日志分析