o1uoyebanji/Honeypot-Lab
GitHub: o1uoyebanji/Honeypot-Lab
在隔离环境中部署 Cowrie SSH 蜜罐并通过模拟攻击与数据分析,研究未授权登录行为的网络安全实验项目。
Stars: 0 | Forks: 0
# Honeypot 实验
## 概述
在隔离的 Ubuntu 虚拟机上部署了 Cowrie SSH 蜜罐,用于捕获和分析未经授权的登录尝试。使用 Kali Linux 上的 Hydra 模拟了真实的攻击者行为,使用 Python 分析了捕获的日志,并使用 Matplotlib 可视化了凭据模式。
## 架构
Kali Linux 攻击者 -> 端口 22 -> iptables 重定向 -> 端口 2222 上的 Cowrie
## 使用的工具
- Cowrie 3.0.3(SSH 蜜罐)
- Kali Linux
- Ubuntu 22.04
- Hydra
- Python 3
- Matplotlib
- VirtualBox
## 我所做的工作
### 1. Honeypot 设置
- 创建了专用的 cowrie 用户以实现安全隔离
- 在 Ubuntu 上安装并配置了 Cowrie SSH 蜜罐
- 配置了主机名,使其显示为合法服务器 (webserver01)
### 2. 流量重定向
- 使用 iptables 将所有端口 22 的 SSH 流量重定向到端口 2222 上的 Cowrie
- 我使用的命令:iptables -t nat -A PREROUTING -p tcp --dport 22 -j REDIRECT --to-port 2222
- 攻击者发起连接时,会认为他们正在访问真实的 SSH
### 3. 攻击模拟
- 使用 Hydra 从 Kali Linux 发起了 SSH 暴力破解攻击
- 使用了 rockyou.txt 字典和 unix_users.txt 用户名列表
- 在 2 个唯一的 IP 地址上产生了 54 次凭据尝试
### 4. 日志分析
- 使用 Python 解析了 Cowrie 的 JSON 日志
- 通过过滤 cowrie.login.failed 和 cowrie.login.success 事件 ID 提取了登录尝试
- 识别了攻击者尝试频率最高的凭据
### 5. 可视化
- 使用 Matplotlib 构建了柱状图,展示了被尝试次数最多的前 10 个密码
- 揭示了常见的默认凭据,例如:password, 12345, 123456789, iloveyou, 和 princess
## 主要发现
- 共捕获 54 次凭据尝试
- Cowrie 使用通用密码接受了 52 次成功的登录
- 包含非默认凭据的 2 次失败尝试
- 识别出 2 个唯一的攻击 IP
- 最常见的密码:123456, 12345, 123456789, password
- 这向我证实了攻击者确实非常依赖默认和常见凭据
## 截图
请参阅 /screenshots 文件夹获取:
- Cowrie 运行状态
- iptables 重定向规则
- Hydra 攻击输出
- Python 分析输出
- Matplotlib 柱状图可视化
## 我学到了什么
- Honeypot 如何在不暴露真实系统的情况下捕获攻击者行为
- iptables 如何在内核级别重定向网络流量
- 如何使用 Python 以编程方式解析 JSON 日志
- 攻击者如何将自动化工具与常见凭据列表结合使用
- 为什么默认凭据仍然是最常见的攻击媒介之一
标签:Matplotlib, PoC, Python, 无后门, 暴力破解, 蜜罐, 证书利用, 逆向工具