Harshil015/Honeypot-Lab
GitHub: Harshil015/Honeypot-Lab
一个基于 Python/Flask 的 Web 蜜罐实验室,通过模拟真实漏洞端点来捕获和分析攻击者行为,服务于红蓝紫队安全演练与威胁研究。
Stars: 1 | Forks: 0
# 蜜罐实验室
一个基于 Python/Flask 的蜜罐,通过模拟易受攻击的 Web 服务来捕获真实的攻击者行为——而非模拟流量。它被部署在一个受控的实验室环境中并持续运行。返回的结果比我预期的更有趣。
## 捕获内容
在首次部署的时间窗口内,跨四个攻击向量捕获了超过 500 次交互:
| 攻击向量 | MITRE ATT&CK | 观察结果 |
|---|---|---|
| 远程代码执行 | T1190 | 通过暴露的 eval 类型端点进行命令注入尝试 |
| 暴力破解登录 | T1110 | 凭据列表按频率排序——有条理,而非随机 |
| Web shell 部署 | T1505.003 | 在服务发现后的几分钟内自动上传 .php shell |
| JNDI 注入 | T1059 | 截至 2025 年,Log4Shell 类型的 payload 仍在积极探测 |
## 数据揭示的结果
在分析过程中有三点尤为突出:
**僵尸网络不会等待。** 在服务启动后的几分钟内就开始了 RCE 探测。互联网在不断地扫描——如果端口开放,总会有东西发现它。
**Log4Shell 并未消失。** 在部署的整个时间窗口内,JNDI 注入尝试持续不断,此时距离补丁发布已经过去数年。攻击者不会因为补丁的存在就放弃有效的 payload。
**暴力破解是有条理的。** 凭据列表按频率顺序到达——最常用的密码排在前面。这反映出攻击者是如何优化其工具以追求效率,而非随机性。
## 架构
```
app.py — Flask app with intentionally vulnerable endpoints
monitor_honeypot.py — Pandas/Matplotlib log analysis and session replay pipeline
honeypot.log — Raw interaction dataset (included as reference)
uploads/ — Captured upload attempts
```
分析流水线 (`monitor_honeypot.py`) 将结构化日志处理为:
- 按攻击类型划分的交互时间线
- Payload 频率分布图
- 用于完整杀伤链重建的会话重放
- 与原始日志检查相比,审查速度提高了 35%
## 技术栈
| 组件 | 工具 |
|---|---|
| 后端 | Python 3, Flask |
| 日志分析 | Pandas, Matplotlib |
| 攻击者模拟 | Kali Linux, Hydra, curl |
| 环境 | Linux / WSL, VirtualBox |
| 版本控制 | Git, GitHub |
## 设置
```
git clone https://github.com/Harshil015/Honeypot-Lab.git
cd Honeypot-Lab
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python app.py
```
蜜罐默认监听 5000 端口。所有交互都会被记录到 `honeypot.log` 中。
**运行分析流水线:**
```
python monitor_honeypot.py
```
从捕获的日志数据生成图表和会话重放摘要。
## 暴露的攻击面
为了捕获目的,蜜罐故意暴露了以下端点:
- `/cmd` — 命令注入端点
- `/login` — 可暴力破解的登录门户
- `/upload` — 接受任何文件类型的文件上传
- `/jndi` — 用于 Log4Shell 类型探测的 JNDI 查找模拟
- `/shell.php`, `/cmd.php`, `/cgi-bin/` — 僵尸网络诱饵端点
## 测试的攻击场景
- 使用 Hydra 进行凭据暴力破解
- 通过 curl 进行命令注入
- Web shell 部署与执行
- 枚举扫描 (nmap, nikto)
- JNDI 注入尝试
## 局限性
- 单节点部署——无法复制分布式蜜罐架构
- 无主动告警——分析是通过流水线事后进行的
- 在 Linux/WSL 上进行了测试;未在 macOS 或 Windows 原生环境下测试
## 路线图
- [ ] 集成 SIEM 以进行实时告警
- [ ] 从捕获的 payload 中自动提取 IOC
- [ ] 根据观察到的模式生成 YARA 规则
- [ ] 支持多节点部署
- [ ] 基于 ML 的异常检测层
## 免责声明
这是一个实验室工具。仅限在您拥有和控制的隔离环境中使用。请勿部署在生产系统或未经系统所有者明确授权的任何网络上。
## 作者
**Harshil Makwana** — 毕业于 SVNIT Surat 的 ECE 专业
[linkedin.com/in/harshilmakwana](https://linkedin.com/in/harshilmakwana) · [github.com/Harshil015](https://github.com/Harshil015)
标签:CISA项目, Flask, Python, Web安全, 安全, 攻击行为分析, 无后门, 网络安全研究, 蓝队分析, 蜜罐, 证书利用, 超时处理, 逆向工具