dongdigua/rickroll-sshpot
GitHub: dongdigua/rickroll-sshpot
基于 Elixir 的零依赖 SSH 蜜罐,结合 Rickroll 恶搞与攻击检测功能。
Stars: 0 | Forks: 0
# rickroll-sshpot
零依赖的 SSH Rickroll 和蜜罐平台。
## 运行
仅运行 rickroll
```
elixir roll.ex
```
仅运行蜜罐
```
# 确保 config.exs 中的 :port 不为 nil
mix run --no-halt
```
将 rickroll 作为蜜罐的网关运行,
当客户端在一定频率后使用 `password` 而非 `keyboard-interactive` 登录受 PoW 保护的 rickroll 时,
蜜罐将接管
```
# 确保 config.exs 中的 :port 为 nil
mix run roll.ex
```
## 工作原理
`roll.ex` 使用 `Code.loaded?(SSHPot)` 来检测蜜罐是否存在。
它还使用 `publickey,keyboard-interactive,password`,
因此正常的“用户”不会尝试密码认证,但机器人会。
`:ssh.daemon` 运行在 `:gen_tcp` loop_acceptor 之后,
当客户端满足特定条件时,它将被分发到不同的 `:ssh.daemon`。
## 表结构
参见 [db.ex](./lib/ssh_pot/db.ex)
## 配置
[roll.ex](./roll.ex):
`@port`,
`@system_dir`,
`@difficulty`(PoW 的前导零数量,0 表示禁用),
`@threshold`(蜜罐接管前每分钟的密码登录次数)
[config.exs](./config/config.exs)
## 参考
- https://github.com/keroserene/rickrollrc
- https://github.com/lrstanley/rickroll-ssh
标签:BOF, Elixir, Erlang VM, LangChain, PoW, Rickroll, SSH, SSH 服务端, TCP 监听, 内存分配, 威胁情报, 密码学, 工作量证明, 开发者工具, 恶作剧, 手动系统调用, 无依赖, 欺骗防御, 网络安全, 自动化攻击检测, 蜜罐, 证书利用, 轻量级, 键盘交互认证, 隐私保护