多协议蜜罐初体验 🐝

多协议蜜罐初体验 🐝

目标:快速搭建多协议蜜罐,记录攻击行为,入门蜜罐实践


🎯 实验目标

  • 搭建 TCP / HTTP / HTTPS / SSH / Telnet / FTP 的低交互蜜罐
  • 捕获和记录攻击输入
  • 了解异步架构 asyncio 的多协议处理方式
  • 学习 JSONL 格式日志记录与分析

🛠 环境准备

  • Python 3.11+ 🐍
  • 系统:Linux / Windows / macOS
  • 端口:非特权端口(避免 root)
bash 复制代码
python multi_protocol_honeypot.py --host 0.0.0.0 --log honeypot_sessions.jsonl --generate-cert

⚠️ --generate-cert 用于 HTTPS 自签名证书


📡 测试示例

TCP 测试

bash 复制代码
nc 127.0.0.1 9000
# 输入任意文本,观察回显 🔁

Telnet 测试

bash 复制代码
telnet 127.0.0.1 2323
# 登录 mini-shell,输入 whoami / exit

FTP 测试

bash 复制代码
ftp 127.0.0.1 2121
# USER test
# PASS 1234
# LIST / RETR filename
# QUIT

📄 日志示例

json 复制代码
{
  "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、输入记录、原始数据


📊 日志解析示例

python 复制代码
import json

with 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 格式便于批量分析
  • 适合入门攻击行为记录和日志分析

相关推荐
野犬寒鸦8 小时前
从零起步学习并发编程 || 第一章:初步认识进程与线程
java·服务器·后端·学习
我爱娃哈哈8 小时前
SpringBoot + Flowable + 自定义节点:可视化工作流引擎,支持请假、报销、审批全场景
java·spring boot·后端
李梨同学丶10 小时前
0201好虫子周刊
后端
思想在飞肢体在追10 小时前
Springboot项目配置Nacos
java·spring boot·后端·nacos
Loo国昌13 小时前
【垂类模型数据工程】第四阶段:高性能 Embedding 实战:从双编码器架构到 InfoNCE 损失函数详解
人工智能·后端·深度学习·自然语言处理·架构·transformer·embedding
ONE_PUNCH_Ge13 小时前
Go 语言泛型
开发语言·后端·golang
良许Linux14 小时前
DSP的选型和应用
后端·stm32·单片机·程序员·嵌入式
不光头强14 小时前
spring boot项目欢迎页设置方式
java·spring boot·后端
怪兽毕设14 小时前
基于SpringBoot的选课调查系统
java·vue.js·spring boot·后端·node.js·选课调查系统
学IT的周星星14 小时前
Spring Boot Web 开发实战:第二天,从零搭个“会卖萌”的小项目
spring boot·后端·tomcat