你是否好奇攻击者为何总对22端口(SSH)情有独钟?想了解他们的攻击工具,或是“借”来他们使用的密码字典?部署一个SSH蜜罐,或许就是你的“草船借箭”之计。
FakeSSH 是一个基于 Docker 并使用 Go 语言编写的 SSH 蜜罐服务器。它的核心功能是记录所有登录尝试,并且所有密码认证都会故意失败,从而在记录攻击行为的同时,不会授予攻击者任何实际的终端访问权限。
项目地址: https://github.com/fffaraz/fakessh
部署方法
Docker部署(推荐)
使用 Docker 部署是最快捷的方式,适合快速搭建测试或生产环境。
docker run -d --restart=always -p 22:22 --name fakessh fffaraz/fakessh
运行后,你可以通过以下命令实时查看攻击日志:
docker logs -f fakessh
Go源码编译部署
如果你希望从源码构建,或者进行自定义开发,可以按照以下步骤进行:
go install github.com/fffaraz/fakessh@latest
sudo setcap 'cap_net_bind_service=+ep' ~/go/bin/fakessh
fakessh -h
第一行命令会编译并安装 FakeSSH 到你的 Go 工具路径。第二行命令为其赋予绑定低端口(如22端口)的权限。最后一行可以查看帮助信息。
效果测试
部署完成后,我们可以模拟攻击者使用 Hydra 这类工具进行暴力破解测试:
hydra -L user.txt -P pass.txt -t 10 -o save.log -vV 192.168.123.1 ssh
此时,查看 FakeSSH 的日志,你就能清晰地看到攻击者尝试了哪些用户名和密码组合。

如上图所示,日志中详细记录了攻击时间、源IP、尝试的用户名(如 root)和密码(如 1234qwer!!、Zxcvbnm123456 等)。这些信息正是我们“草船借箭”所获得的“箭矢”——一份来自真实攻击者的密码字典样本,对于提升自身系统的安全防护策略具有重要参考价值。
当然,除了了解攻击,更关键的是如何加强自身SSH服务的安全。常规的加固手段包括:禁用密码登录改用密钥对、修改默认端口、使用Fail2ban等工具自动封禁多次尝试失败的IP等。通过分析蜜罐收集到的攻击模式,你可以更有针对性地调整这些防护策略。
利用像 FakeSSH 这样的工具,我们不仅能被动防御,还能主动洞察威胁。这类实践在云栈社区的安全技术板块中常有深入讨论,是提升实战能力的好方法。
|