0xNslabs/ssh-honeypot
GitHub: 0xNslabs/ssh-honeypot
基于 Python 和 Twisted 框架的低交互 SSH 蜜罐,模拟 SSH 服务并记录认证尝试与协议级遥测数据,用于安全监测和分析。
Stars: 12 | Forks: 3
# 简易 SSH 蜜罐服务器
## 简介
简易 SSH 蜜罐服务器是一个低交互的 SSH 服务器,专为希望安全观察和分析 SSH 流量的网络安全从业者和爱好者构建。它使用 Python 和 Twisted (Conch) 框架来模拟 SSH 服务,并**记录身份验证尝试和协议元数据**,而不提供真实的 shell。
除了凭证记录外,该版本还捕获 **SSH 版本交换**、**密钥交换 (KEXINIT) 协商细节**以及**原始入站字节快照**,以帮助识别异常的客户端行为和潜在的零日探测模式。
## 功能
- **低交互蜜罐**:模拟 SSH 服务器,但不提供可用的 shell/会话。
- **可自定义配置**:通过 CLI 调整绑定的主机、端口和显示的 SSH banner/版本字符串。
- **扩展的协议遥测**:
- 连接事件(源/目的地址、连接 ID)
- SSH 版本交换(本地/远程版本字符串)
- KEXINIT 解析(KEX、主机密钥算法、加密算法、MAC、压缩算法)
- **凭证与认证可见性**:
- 记录密码尝试(用户名/密码)
- 记录非密码的 USERAUTH 请求
- 记录**公钥尝试**(算法、指纹、签名存在与否、密钥 blob 前缀)
- **用于异常检测的原始字节记录**:
- 记录每个连接中数量有限的早期入站 payload
- 包含 SHA-256、十六进制前缀、base64 前缀、可打印字符比例以及 NUL/高位指示符
- **多主机密钥支持**:
- 默认情况下自动生成并提供 RSA 密钥
- 在可用时添加 ECDSA (nistp256) 和 Ed25519(取决于已安装的 `cryptography`)
## 要求
- Python 3.x
- Twisted (`twisted`,包含 Conch)
- Cryptography (`cryptography`)
## 安装
```
git clone https://github.com/0xNslabs/ssh-honeypot.git
cd ssh-honeypot
pip install twisted cryptography
```
## 用法
使用 host、port 和 version 字符串等可选参数启动服务器。默认情况下,它绑定到 `0.0.0.0` 的 `2222` 端口。
```
python3 ssh.py --host 0.0.0.0 --port 2222 --version "SSH-2.0-OpenSSH_7.4"
```
注意事项:
- 如果绑定到端口 **22**,通常需要提升的权限:
sudo python3 ssh.py --host 0.0.0.0 --port 22 --version "SSH-2.0-OpenSSH_8.9p1"
## 日志
所有 SSH 交互都会记录到 `ssh_honeypot.log` 中。
典型的记录事件类型包括:
- `NEW_CONNECTION`:初始 TCP 连接元数据
- `VERSION_EXCHANGE`:本地和远程 SSH 标识字符串
- `KEXINIT`:协商的算法列表(KEX/加密算法/MAC/压缩算法等)
- `Login attempt - Username: ..., Password: ...`:密码认证尝试
- `USERAUTH_REQUEST`:方法探测(例如 `publickey`、`none` 等)
- `RAW_IN`:早期入站原始字节快照(已截断 + 哈希处理)
### 原始日志控制(当前默认值)
为了减少日志量并避免转储过多数据:
- 每个连接的原始入站日志仅限于少量早期事件
- 每个原始事件都会被截断为有界大小(仅前缀)
## 主机密钥
如果主机密钥不存在,服务器将在脚本目录中创建它们:
- `id_rsa` / `id_rsa.pub` (RSA)
- `ssh_host_ecdsa_key` / `.pub` (ECDSA P-256,在受支持的情况下)
- `ssh_host_ed25519_key` / `.pub` (Ed25519,在受支持的情况下)
## 简易 SSH 蜜罐实际运行展示

*此图片展示了蜜罐捕获实时 SSH 登录尝试和协议活动的过程。*
## 其他简易蜜罐服务
查看用于监控各种网络协议的其他蜜罐服务:
- [DNS 蜜罐](https://github.com/0xNslabs/dns-honeypot) - 监控 DNS 交互。
- [FTP 蜜罐](https://github.com/0xNslabs/ftp-honeypot) - 模拟 FTP 服务器。
- [LDAP 蜜罐](https://github.com/0xNslabs/ldap-honeypot) - 模拟 LDAP 服务器。
- [HTTP 蜜罐](https://github.com/0xNslabs/http-honeypot) - 监控 HTTP 交互。
- [HTTPS 蜜罐](https://github.com/0xNslabs/https-honeypot) - 监控 HTTPS 交互。
- [MongoDB 蜜罐](https://github.com/0xNslabs/mongodb-honeypot) - 模拟 MongoDB 数据库服务器。
- [NTP 蜜罐](https://github.com/0xNslabs/ntp-honeypot) - 监控网络时间协议 (NTP) 交互。
- [PostgreSQL 蜜罐](https://github.com/0xNslabs/postgresql-honeypot) - 模拟 PostgreSQL 数据库服务器。
- [SIP 蜜罐](https://github.com/0xNslabs/sip-honeypot) - 监控 SIP(会话发起协议)交互。
- [SSH 蜜罐](https://github.com/0xNslabs/ssh-honeypot) - 模拟 SSH 服务器。
- [TELNET 蜜罐](https://github.com/0xNslabs/telnet-honeypot) - 模拟 TELNET 服务器。
## 安全与合规
- **注意**:在受控环境中部署。请将日志视为敏感信息:它们可能包含凭证尝试和客户端密钥材料前缀。
- **合规性**:确保所有部署均符合当地和国际法律标准,包括同意和日志记录要求。
## 许可证
本项目采用 MIT 许可证发布。有关更多详细信息,请参阅 `LICENSE` 文件。
标签:Python, SSH, 威胁情报, 开发者工具, 插件系统, 无后门, 流量监控, 网络安全, 蜜罐, 证书利用, 逆向工具, 隐私保护