speedw124/Secure-SSH-Honeypot-Platform-for-Cyber-Threat-Intelligence
GitHub: speedw124/Secure-SSH-Honeypot-Platform-for-Cyber-Threat-Intelligence
Cowrie 是一个支持中高交互的 SSH/Telnet 蜜罐平台,用于记录攻击者的暴力破解和 shell 交互行为以支持网络威胁情报研究。
Stars: 0 | Forks: 0
## Cowrie
## 什么是 Cowrie
Cowrie 是一个中高交互的 SSH 和 Telnet 蜜罐,
旨在记录暴力破解攻击以及攻击者执行的 shell 交互。
在中交互模式(shell)下,它使用 Python 模拟一个 UNIX 系统;
在高交互模式(proxy)下,它作为 SSH 和 Telnet 代理运行,
以观察攻击者对另一个系统的行为。在 LLM 模式下,它使用大语言模型来
对攻击者的命令生成动态响应。
`Cowrie `_ 由 Michel Oosterhof 维护。
## 文档
文档可以`在这里 `_ 找到。
## 功能
* 选择作为模拟 shell 运行(默认):
* 带有添加/删除文件功能的虚假文件系统。包含一个类似于 Debian 5.0 安装的完整虚假文件系统
* 可以添加虚假文件内容,这样攻击者就可以 `cat` 诸如 `/etc/passwd` 的文件。仅包含最少的文件内容
* Cowrie 会保存通过 wget/curl 下载或通过 SFTP 和 scp 上传的文件,以供日后检查
* 或者将 SSH 和 Telnet 代理到另一个系统
* 作为带有监控功能的纯 Telnet 和 SSH 代理运行
* 或者让 Cowrie 管理一个 QEMU 模拟的服务器池,以提供登录系统
* 或者使用 LLM 后端(实验性):
* 使用大语言模型(例如 OpenAI GPT)动态生成真实的 shell 响应
* 无需预定义响应即可处理任何命令
* 维护对话上下文以保持会话的一致性
对于这两种设置:
* 会话日志以 `UML Compatible `_ 格式存储,方便使用 `playlog` 工具进行重播。
* 支持通过 SFTP 和 SCP 上传文件
* 支持 SSH exec 命令
* 记录 direct-tcp 连接尝试(SSH 代理)
* 将 SMTP 连接转发到 SMTP 蜜罐(例如 `mailoney `_)
* JSON 日志记录,便于在日志管理解决方案中进行处理
## 安装
目前有三种安装 Cowrie 的方式:`git clone`、`Docker` 和 `pip`。
`Docker` 是尝试和运行的最简单方法,但要进行配置和修改,您需要对容器和卷有深入的了解。
如果您想更改蜜罐的配置,建议使用 `git clone`。
`pip` 模式仍在开发中。
## Docker
`Docker 镜像 `_ 可在 Docker Hub 上获取。
* 要快速开始并体验 Cowrie,请运行:
$ docker run -p 2222:2222 cowrie/cowrie:latest
$ ssh -p 2222 root@localhost
* 若要在本地构建,请运行:
$ make docker-build
## PyPI
`Cowrie 可在 PyPI 上获取 `_,若要安装,请运行:
```
$ pip install cowrie
$ twistd cowrie
```
通过这种方式安装时,其行为与完整下载目录的方式会有所不同。
此方法目前仍处于测试阶段,可能无法按预期工作,建议使用 `git clone` 或 `docker` 方法。
## 要求
本地运行所需的软件:
* Python 3.10+
* python-virtualenv
## 相关文件:
* `etc/cowrie.cfg` - Cowrie 的配置文件。
* `etc/cowrie.cfg.dist `_ - 默认设置,请勿更改此文件
* `etc/userdb.txt` - 访问蜜罐的凭据
* `src/cowrie/data/fs.pickle` - 虚假文件系统,仅包含元数据(路径、uid、gid、大小)
* `honeyfs/ `_ - 虚假文件系统的内容
* `honeyfs/etc/issue.net` - 登录前的 banner
* `honeyfs/etc/motd `_ - 登录后的 banner
* `src/cowrie/data/txtcmds/` - 简单虚假命令的输出
* `var/log/cowrie/cowrie.json` - JSON 格式的审计输出
* `var/log/cowrie/cowrie.log` - 日志/调试输出
* `var/lib/cowrie/tty/` - 会话日志,可使用 `playlog` 工具重播。
* `var/lib/cowrie/downloads/` - 从攻击者传输到蜜罐的文件存储在此处
## 命令
* `cowrie` - 启动、停止和重启 Cowrie
* `fsctl` - 修改虚假文件系统
* `createfs` - 创建您自己的虚假文件系统
* `playlog` - 重播会话日志的工具
* `asciinema` - 将 Cowrie 日志转换为 asciinema 文件
## 贡献者
多年来,许多人参与了 Cowrie 的贡献。特别感谢:
* Upi Tamminen (desaster) 在开发 Kippo 方面所做的大量工作,Cowrie 正是基于 Kippo 开发的
* Dave Germiquet (davegermiquet) 对 TFTP 支持、单元测试和新的进程处理做出的贡献
* Olivier Bilodeau (obilodeau) 对 Telnet 支持做出的贡献
* Ivan Korolev (fe7ch) 多年来做出的许多改进。
* Florian Pelgrim (craneworks) 在代码清理和 Docker 方面所做的工作。
* Guilherme Borges (sgtpepperpt) 对 SSH 和 Telnet 代理做出的贡献(GSoC 2019)
* 以及其他许多贡献者。
标签:LLM, SSH, Telnet, Unmanaged PE, 安全, 攻击行为分析, 蜜罐, 证书利用, 请求拦截, 超时处理, 身份验证强制, 逆向工具