sjinks/ssh-honeypotd

GitHub: sjinks/ssh-honeypotd

一个用 C 语言编写的高性能低交互 SSH 蜜罐,用于轻量级部署并收集暴力破解攻击的威胁情报。

Stars: 19 | Forks: 5

# ssh-honeypotd [![Coverity Scan Build Status](https://scan.coverity.com/projects/3318/badge.svg)](https://scan.coverity.com/projects/3318) ![Build](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/e473b79b6b013400.svg) 一个用 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, 低交互蜜罐, 威胁情报, 子域名突变, 客户端加密, 客户端加密, 开发者工具, 攻击诱捕, 攻击面发现, 权限管理, 模型越狱, 端口监听, 网络安全, 蜜罐技术, 规避防御, 请求拦截, 进程注入, 隐私保护