sjinks/ssh-honeypotd
GitHub: sjinks/ssh-honeypotd
一个用 C 语言编写的高性能低交互 SSH 蜜罐,用于轻量级部署并收集暴力破解攻击的威胁情报。
Stars: 19 | Forks: 5
# ssh-honeypotd
[](https://scan.coverity.com/projects/3318)

一个用 C 语言编写的低交互 SSH 蜜罐。
## 命令行选项
用法:ssh-honeypotd [options]...
长选项的强制参数对于短选项也是强制的。
* `-k`, `--host-key FILE`:包含私钥主机密钥的文件 (RSA, DSA, ECDSA, ED25519)
* `-b`, `--address ADDRESS`:绑定的 IP 地址(默认值:`0.0.0.0`)
* `-p`, `--port PORT`:绑定的端口(默认值:`22`)
* `-P`, `--pid FILE`:PID 文件(如果未指定,守护进程将在前台运行)
* `-n`, `--name NAME`:用于 syslog 的守护进程名称(默认值:`ssh-honeypotd`)
* `-u`, `--user USER`:放弃权限并切换到此 USER(默认值:`daemon` 或 `nobody`)
* `-g`, `--group GROUP`:放弃权限并切换到此 GROUP(默认值:`daemon` 或 `nogroup`)
* `-x`, `--no-syslog`:仅将日志消息记录到 stderr(仅与 `--foreground` 一起使用时有效)
* `-f`, `--foreground`:不作为守护进程运行
* `-h`, `--help`:显示帮助信息并退出
* `-v`, `--version`:输出版本信息并退出
如果 ssh-honeypots 是针对 0.8.0 之前的 libssh 编译的,则必须至少指定一次 `-k` 选项(请注意,在 Ubuntu(以及可能的 Debian)中,由于 `libssh.h` 中的一个错误,libssh 0.8.0 被检测为 0.7.0)。对于较新的 libssh 版本,主机密钥会自动生成(RSA 2048 位)。
支持的最低 `libssh` 版本为 0.7.0。
## 使用 Docker
```
docker run -d \
--network=host \
--cap-add=NET_BIND_SERVICE \
--restart=always \
--read-only \
--name=ssh-honeypotd \
-e ADDRESS=0.0.0.0 \
-e PORT=22 \
wildwildangel/ssh-honeypotd:latest
```
```
docker run -d \
--network=host \
--cap-add=NET_BIND_SERVICE \
--restart=always \
--read-only \
wildwildangel/ssh-honeypotd-min:latest
```
## 使用 Kubernetes
`ssh-honeypotd.yaml`:
```
---
apiVersion: v1
kind: Namespace
metadata:
name: honeypots
---
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: ssh-honeypotd
namespace: honeypots
spec:
selector:
matchLabels:
name: ssh-honeypotd
template:
metadata:
labels:
name: ssh-honeypotd
spec:
hostNetwork: true
containers:
- name: ssh-honeypotd
image: wildwildangel/ssh-honeypotd-min # or wildwildangel/ssh-honeypotd
resources:
limits:
cpu: 100m
memory: 12Mi
requests:
cpu: 100m
memory: 12Mi
securityContext:
capabilities:
drop:
- all
add:
- NET_BIND_SERVICE
readOnlyRootFilesystem: true
allowPrivilegeEscalation: false
seccompProfile:
type: RuntimeDefault
ports:
- containerPort: 22
hostPort: 22
protocol: TCP
```
```
kubectl apply -f ssh-honeypotd.yaml
```
您可以使用以下环境变量控制容器(wildwildangel/ssh-honeypotd 镜像)中 ssh-honeypotd 的行为:
* `ADDRESS`(默认值:0.0.0.0):要绑定的 IP 地址;
* `PORT`(默认值:22):要绑定的端口。
如果有需要,这些变量使得在同一台机器上运行多个 ssh-honeypotd 变得很容易。
## Docker 镜像变体
ssh-honeypotd 的 Docker 镜像有两种版本:
1. 基于最新稳定版 Alpine 的标准镜像:[wildwildangel/ssh-honeypotd](https://hub.docker.com/repository/docker/wildwildangel/ssh-honeypotd)。
2. 基于 `scratch` Docker 镜像的最小化镜像:[wildwildangel/ssh-honeypotd-min](https://hub.docker.com/repository/docker/wildwildangel/ssh-honeypotd-min)
`ssh-honeypotd-min` 镜像仅包含静态链接的 `ssh-honeypotd` 二进制文件和一组预生成的 SSH 密钥。此镜像比 `ssh-honeypotd` 稍小,但目前是实验性的。`ssh-honeypotd-min` 镜像中的 `ssh-honeypotd` 二进制文件不支持以下命令行选项:`--pid`、`--name`、`--user`、`--group`、`--no-syslog`、`--foreground`。
标签:Cobalt Strike, Docker容器, Kubernetes部署, Libssh, Linux服务, SSH服务模拟, SSH蜜罐, Syslog, 低交互蜜罐, 威胁情报, 子域名突变, 客户端加密, 客户端加密, 开发者工具, 攻击诱捕, 攻击面发现, 权限管理, 模型越狱, 端口监听, 网络安全, 蜜罐技术, 规避防御, 请求拦截, 进程注入, 隐私保护