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 蜜罐实际运行展示](https://static.pigsec.cn/wp-content/uploads/repos/cas/39/3926633aee052f7d5aa6e57f4d190fe03a98f2fd08d79633fdc131c2068135c7.png) *此图片展示了蜜罐捕获实时 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, 威胁情报, 开发者工具, 插件系统, 无后门, 流量监控, 网络安全, 蜜罐, 证书利用, 逆向工具, 隐私保护