droberson/ssh-honeypot
GitHub: droberson/ssh-honeypot
Stars: 671 | Forks: 247
# SSH Honeypot
这个不幸命名的程序监听传入的 SSH 连接,并记录客户端使用的 IP 地址、用户名和密码。这是一个低交互蜜罐,不允许恶意软件或攻击者登录。
最初编写它是为了收集有关暴力破解攻击的基础情报,并不用于生产环境。
现在,我主要在攻防 CTF 中将其与 sshunt 配合使用:
https://github.com/droberson/sshunt
我设置 sshunt 将 Hydra、Metasploit 和 Ncrack 等工具转发到 ssh-honeypot,并允许 OpenSSH 客户端正常连接到 SSH。
## 快速入门
### Linux
确保已安装以下组件的头文件/开发包:
- libssh
- openssl
- libjson-c
- libpcap
```
apt install libssh-dev libjson-c-dev libpcap-dev libssl-dev
```
构建并运行
```
make
ssh-keygen -t rsa -f ./ssh-honeypot.rsa
bin/ssh-honeypot -r ./ssh-honeypot.rsa
```
### OSX(实验性/不支持)
_警告:我还没有在 OSX 上测试过 JSON 日志记录、HASSH 或其他任何功能。由于我不拥有任何 Mac 设备来测试此软件,因此 MacOS 是官方不支持的。_
确保 xcode 是最新的。
安装 libssh 和 json-c
```
brew install libssh json-c
```
使用 make 指定 MakefileOSX:
```
make -f MakefileOSX
```
### Docker(实验性)
请查看我们的 [Docker 文档](docker/README.md)。
## HASSH
自 0.2.0 版本起,ssh-honeypot 会尝试计算与 ssh-honeypot 发起会话的客户端软件的 HASSH。简而言之,您可以判断客户端是否使用的是 OpenSSH、PuTTY、SecureCRT 等。
有关 HASSH 的更多信息,请参考以下链接:
- https://github.com/salesforce/hassh
- https://engineering.salesforce.com/open-sourcing-hassh-abed3ae5044c
## Syslog 设施
自 0.0.5 版本起,支持记录到 syslog。此功能通过 -s 标志切换。您需要自行适当地配置 syslog 设施。它记录到 LOG_AUTHPRIV,通常是 /var/log/auth.log。如果您担心密码泄露,可能需要将其修改为使用某个 LOG_LOCAL 设施。
## 权限降级
自 0.0.8 版本起,您可以在绑定到特权端口后降低此程序的 root 权限。例如,您现在可以在端口 22 上以 _nobody_ 身份而不是 root 身份运行此程序,但最初必须以 root 身份启动它:
```
sudo bin/ssh-honeypot -p 22 -u nobody
```
请注意,这也会将日志文件的所有权更改为指定的用户。
## 更改 Banner
ssh-honeypot 允许您更改服务器的 Banner,以便与网络上的其他主机融合或模拟特定设备。
列出可用的 Banner
```
bin/ssh-honeypot -b
```
设置 Banner 字符串
```
bin/ssh-honeypot -b "my banner string"
```
通过索引设置 Banner
```
bin/ssh-honeypot -i
```
## JSON 日志记录
`-j` CLI 标志指定以 JSON 格式记录结果的路径。此功能可以使日志分析变得更加容易,因为许多语言都有强大的 JSON 支持。
JSON 日志可以发送到远程主机。`-J` 和 `-P` CLI 标志分别设置发送 JSON 日志的主机和端口。目前,日志通过 UDP 传输,且未加密。
在运行多个 ssh-honeypot 实例时,此功能非常有用。可以为 Splunk 和 ElasticSearch 创建监听器以摄取这些日志并使其可搜索。
## Systemd 集成
在 Linux 上,您可以将 ssh-honeypot 安装为 Systemd 服务,以便它在系统启动时自动运行:
```
make install
systemctl enable --now ssh-honeypot
```
在安装之前,请检查 `ssh-honeypot.service` 并对其进行修改,以便使用您想要的选项运行。
标签:DNS解析, Docker, Docker‑Compose, ETW劫持, HASSH指纹, Libssh, minikerberos, PFX证书, PoC, Rust语言, SSH蜜罐, Syslog, 低交互蜜罐, 凭据收集, 威胁情报, 安全测试工具, 安全防御评估, 客户端加密, 客户端加密, 带宽管理, 开发者工具, 开源项目, 攻击检测, 日志记录, 暴力破解, 渗透测试框架, 用户界面自定义, 端口监控, 网络安全, 诱捕技术, 请求拦截, 进程注入, 防御, 隐私保护