honey
描述
Honey 是用于分析扫描、探测与攻击服务器的外部机器人的多协议蜜罐。它仿真多种常见网络服务,提供逼真横幅与登录场景,诱使自动化攻击工具与其交互,并悄悄记录所有凭据爆破尝试。
Honey 以单个 Go 二进制运行,同时监听五个标准服务端口:Telnet(23,仿真 BCM96318 宽带路由器)、SSH(22,嵌入式设备的 dropbear 0.53.1)、HTTP(80,WordPress 6.8.2 站点或 Basic Authentication 服务)、HTTPS(443,WordPress 6.8.2 站点或 Basic Authentication 服务)、FTP(21,文件服务器)。所有服务共享以 root/ 为根的单一磁盘虚拟文件树,每个服务被锁定在该树的子树中(以 *_path 参数配置)。默认蜜罐完全被动:从不执行攻击者命令,从不授予访问 - 每次交互都被观察、记录与拒绝。可选地,可为每个服务单独启用仿真模式,提供受限(jailed)会话(攻击者无法逃逸的受限 shell 或文件根),诱使交互式攻击者执行命令,所有命令均被记录。两种模式在公网 IP 上部署都是安全的。
使用的模块
- golang.org/x/crypto/ssh - SSH 协议基础实现(密钥交换、密码学、认证)
- github.com/anmitsu/go-shlex - 以 shell 风格将 SSH 命令行拆分为单词以供解析
- gliderlabs/ssh(vendor)- 高级 SSH 服务器框架:会话处理、密码认证回调、TCP/IP 转发、keep-alive
- reiver/go-telnet(vendor)- Telnet 服务器:协议协商、连接处理、可选 TLS
- reiver/go-telnet/telsh(vendor)- Telnet shell 层:登录/密码提示、命令注册与分发
- reiver/go-oi(vendor)- Telnet 栈使用的输入输出原语(长写入、可回绕可读流)
- goftp(vendor)- FTP 服务器:命令处理、认证、被动/主动数据连接及文件驱动
技术
- Go 1.21+ - 整个蜜罐以 Go 编写,编译为单个静态二进制文件
- golang.org/x/crypto/ssh - SSH 协议实现(密钥交换、密码学、认证),供 SSH 蜜罐使用
- github.com/anmitsu/go-shlex - 以 shell 风格将 SSH 命令行拆分为单词
- Vendor 协议栈 - Telnet、FTP 与 SSH 服务器框架已提交至仓库,因此项目仅用上述两个外部模块即可复现构建
- 许可证 GNU AGPL v3(Affero GPL)