PrajyotPatil18/Building-Honeypot
GitHub: PrajyotPatil18/Building-Honeypot
一个基于 Python 的教育型 SSH 蜜罐应用,通过模拟虚假登录服务捕获攻击者凭证并提供实时监控仪表盘。
Stars: 0 | Forks: 0
# SSH 蜜罐仪表盘
一个基于 Python 的轻量级 Honeypot 应用程序,它模拟虚假的 SSH 登录服务,旨在用于教育性的网络安全监控和威胁情报概念学习。
## 功能
- **SSH 蜜罐服务器**:在自定义端口上模拟 SSH 服务(默认:2222)
- **连接记录**:捕获攻击者的 IP 地址、时间戳和连接尝试
- **凭证捕获**:记录攻击者输入的用户名和密码
- **暗色主题仪表盘**:提供带有统计数据和日志的实时监控界面
- **轻量级架构**:对初学者友好的设计,专注于教育概念
## 项目结构
```
Building-Honeypot-2-10/
├── honeypot.py # Main SSH honeypot server
├── logger.py # Logging system for capturing data
├── dashboard.py # Flask monitoring dashboard
├── requirements.txt # Python dependencies
├── logs.txt # Log file (created automatically)
├── templates/
│ └── index.html # Dashboard HTML template
└── README.md # This file
```
## 安装说明
1. **克隆或下载本项目**
2. **安装依赖**:
pip install -r requirements.txt
## 使用说明
### 启动 Honeypot 服务器
运行 SSH 蜜罐服务器:
```
python3 honeypot.py
```
Honeypot 将开始在 `0.0.0.0:2222` 上监听(你可以在代码中修改此设置)。
### 启动监控仪表盘
在另一个单独的终端中,运行仪表盘:
```
python3 dashboard.py
```
访问仪表盘的地址:`http://localhost:5000`
*查找类似于 `Running on http://127.0.0.1:5000` 的提示行*
复制确切的 URL,例如:`http://127.0.0.1:5000`,并将其粘贴到隐身浏览器标签页中,或者直接将鼠标悬停在终端链接上并点击 `follow link`。请勿直接粘贴 `http://localhost:5000`
### 测试 Honeypot
你可以使用任何 SSH 客户端测试该蜜罐:
```
ssh -p 2222 username@localhost
```
## 仪表盘功能
- **实时统计**:查看总连接数、捕获的凭证、唯一 IP 以及近期活动
- **活动日志**:浏览所有连接尝试和捕获的凭证
- **自动刷新**:仪表盘每 30 秒更新一次
- **暗色主题**:现代且护眼的界面
- **响应式设计**:适用于桌面和移动设备
## 安全注意事项
⚠️ **仅供教育用途**:此蜜罐旨在用于学习网络安全概念,在未经适当安全加固的情况下,请勿用于生产环境。
- 蜜罐运行在端口 2222 上,以避免与真实的 SSH 服务发生冲突
- 所有捕获的数据均存储在本地 `logs.txt` 文件中
- 不会暴露任何敏感的系统信息
- 建议在隔离环境(虚拟机/容器)中运行
## 工作原理
1. **SSH 模拟**:Honeypot 呈现虚假的 SSH banner 和身份验证过程
2. **连接处理**:每个连接都在独立的线程中处理
3. **数据捕获**:记录 IP 地址、时间戳、用户名和密码
4. **实时监控**:Flask 仪表盘读取日志文件并显示数据
## 自定义设置
- **修改端口**:修改 `honeypot.py` 中的 `port` 参数
- **SSH Banner**:编辑 `honeypot.py` 中的 `ssh_banner` 变量
- **仪表盘主题**:修改 `templates/index.html` 中的 CSS
- **日志位置**:修改 `logger.py` 中的 `log_file` 参数
## 故障排除
- **端口被占用**:修改 `honeypot.py` 中的端口号
- **权限被拒绝**:如果使用低于 1024 的端口,请使用 `sudo` 运行
- **仪表盘无法加载**:检查是否已安装 Flask 且端口 5000 是否可用
## 教育价值
本项目演示了以下内容:
- 使用 socket 进行网络编程
- 用于处理并发连接的多线程
- 使用 Flask 进行 Web 开发
- 实时数据可视化
- 基本的网络安全概念
- 威胁情报收集
## 许可证
本项目提供用于教育目的。请负责任地使用,并遵守适用的法律法规。
标签:Flask, Python, SSH, 后端开发, 多模态安全, 威胁情报, 安全, 开发者工具, 无后门, 蜜罐, 证书利用, 超时处理, 逆向工具