Wetland
Wetland 是一个高交互 SSH 蜜罐,旨在记录暴力破解攻击。此外,Wetland 还会记录攻击者执行的 shell、scp、sftp、exec-command、direct-forward、reverse-forward 交互。
Wetland 基于 Python SSH 模块 paramiko 构建,并使用 SocketServer 作为多线程 TCP 服务器运行。
特性
- 使用 Docker 提供真实的 Linux 环境。
- 所有密码认证都会重定向到 Docker。
- 所有命令都会在 Docker 上执行。
- 当黑客通过 SFTP 上传文件时,保存文件副本。
- 当黑客通过 SCP 上传文件时,从 exec 日志中提取并保存文件。
- 提供 playlog 脚本来回放 [shell | exec | direct-forward | reverse-forward] 类型的日志。
- 高级网络功能,用于在 Wetland 和 Docker 之间伪造攻击者的 IP 地址(感谢 honssh)。
- 当 Wetland 被黑客触碰时,可通过多种方式通知您,但目前仅支持电子邮件和 BearyChat。
要求
- Linux 系统(已在 Ubuntu 上测试)
- Docker 中的 sshd 镜像(例如 rastasheep/ubuntu-sshd)
- Python 2.7
- paramiko
- yagmail
- IPy
- requests
安装与配置
- 将 wetland.cfg.default 复制为 wetland.cfg
- 生成 SSH 服务器使用的密钥
- 运行
mkdir data
- 运行
ssh-keygen -t rsa,并将生成的密钥放入 data/
- 运行
ssh-keygen -t dsa,并将生成的密钥放入 data/
- 注意:Wetland 和 sshd 容器应使用相同的密钥。
- 安装 Python 依赖
- 运行
pip install -r requirements
- 配置 SSH 服务器的横幅
- 编辑 wetland.cfg 中的 banner 字段
- 应与 sshd 容器的 SSH 横幅保持一致
- 或者,你也可以运行
python util/initwetland.py ./,该脚本将完成以上所有步骤
- 在 wetland.cfg 中配置输出插件
- 在
[output] 部分启用或禁用
- 使用 BearyChat 时,编辑传入机器人的 URL
- 使用电子邮件时,编辑 user、pwd 等
- 如果需要,安装 p0f
- 运行
git clone https://github.com/p0f/p0f
- 运行
cd p0f
- 运行
./build.sh
- 编辑 wetland.cfg 中的
[p0fp0f] 部分
- 如果不需要 p0f,直接在
[output] 部分禁用它
- 安装 Docker
- 按照 www.docker.com 的文档安装 Docker
- 运行
docker search sshd,然后选择一个运行 sshd 的镜像
- 运行
docker run -d --name sshd sshd_image_name
- 运行
docker inspect sshd,然后将 Docker IP 地址和端口编辑到 wetland.cfg 中
- sshd 的 SSH 端口应与 Wetland 的端口相同
- 根据需要,有时可以删除并替换 sshd 容器
运行
- 启动
- 运行
nohup python main.py &
- 停止
- 运行
netstat -autpn | grep 22
- 然后
kill pid_number
- 哈哈哈
- 清理
- 你可能需要手动删除网络模块创建的一些接口
- 运行
ip link list
- 然后
ip link del dev wdxxxxxx
- 最后清理 iptables 的 NAT 表,或直接重启
- 查看日志
- 运行
python util/clearlog.py -p log 会移除仅包含 pwd.log 的日志,并将 username:password 写入 -l 文件(默认为 ./pwd.txt)
- 然后使用 util 中的 playlog.py
- 文件系统变化
- filechange.py 会将 sshd 容器的读写层复制到 ./ ,该层包含黑客创建和删除的文件
- 例如:
docker inspect sshd --format '{{.Id}}' | python filechange.py -
Docker 化 Wetland
TODO
-
将 Wetland Docker 化
-
创建更真实的 sshd Docker 镜像
-
自动化创建 sshd 容器
-
添加看门狗
-
利用 BearyChat 的传入/传出功能
-
分布式日志系统并支持 hpfeeds