ujwal-1/Honeypot-BaitShell
GitHub: ujwal-1/Honeypot-BaitShell
基于 Cowrie 的 AWS 云端 SSH 蜜罐项目,用于在隔离环境中全天候捕获和分析真实的互联网攻击者行为。
Stars: 0 | Forks: 0
# Honeypot/BaitShell:真实攻击者行为分析
一个故意暴露在互联网上的 SSH honeypot,部署在 AWS 上,用于安全地在一个隔离环境中捕获和分析真实的、未经请求的攻击者活动——包括暴力破解尝试、恶意软件部署链和代理滥用。
## 概述
本项目在 AWS EC2 实例上部署了 [Cowrie](https://github.com/cowrie/cowrie),一个中等交互的 SSH/Telnet honeypot,以观察来自互联网的真实攻击者行为。与 CTF 或基于实验室的安全实践不同,本项目捕获的是**实时的真实威胁活动**——包括自动化的 botnet、凭证填充攻击以及主动针对互联网基础设施的恶意软件 dropper,全天候 24/7 运行。
## 架构
```
Internet (attackers/scanners)
│
▼
AWS Security Group (firewall)
- Port 22 → restricted to admin IP only
- Port 2222 → open to all (honeypot bait)
│
▼
EC2 Ubuntu Instance
│
▼
Cowrie (low-privilege dedicated user)
- Simulates SSH service + fake filesystem
- Logs every connection, credential attempt, and command
│
▼
Structured JSON + text logs (var/log/cowrie/)
```
## 关键设计决策
- **最小权限原则**:Cowrie 在专用的非 root 用户下运行,与主机系统隔离
- **刻意暴露边界**:仅 honeypot 端口对互联网开放;真正的管理访问受 IP 限制
- **云端隔离**:部署在可丢弃的云端 VM 上,而非家庭基础设施,以避免对个人网络造成任何暴露
- **完整会话捕获**:记录每一个命令、登录尝试和 TTY 会话,并支持独立回放
## 真实发现
在部署后约 7 小时内,honeypot 捕获了:
- **一次成功的暴力破解登录**(`root/password`),此前曾针对常见密码列表进行过一次失败的尝试
- **一次实时的恶意软件 dropper 尝试**——一个多方法回退链(`curl` → `wget` → 原始 `/dev/tcp` socket),试图从远程 C2 风格的服务器下载并执行二进制文件,这与 Mirai 家族 botnet 的行为一致
- **一次代理滥用尝试**——另一名攻击者试图使用被攻陷的会话向外部 IP 中继 TLS 流量,可能是在测试将该主机作为匿名化中继
所有内容均被安全捕获——没有发生真实的下载或执行,因为 Cowrie 模拟了命令的成功执行,而不会对系统产生任何实际影响。
## 技术栈
- **Cowrie** (Python/Twisted) — honeypot 引擎
- **AWS EC2** — 部署基础设施
- **AWS Security Groups** — 网络访问控制
- Linux (Ubuntu) 系统管理
## 路线图 / 计划升级
- [ ] 集成 Splunk 进行仪表板分析(攻击量、地理分布、凭证频率)
- [ ] IP 地理定位和攻击源映射
- [ ] 针对捕获的行为进行 MITRE ATT&CK 技术映射
- [ ] 威胁情报富化(AbuseIPDB / VirusTotal 交叉引用)
- [ ] 多 honeypot 部署(T-Pot)以实现更广泛的协议覆盖
## 设置
有关完整的部署步骤,请参阅 [`SETUP.md`](./SETUP.md)。
## 免责声明
本项目严格出于教育和研究目的进行部署,位于我拥有和控制的基础设施上,并与任何生产或个人系统明确隔离。没有实际的攻击者受到伤害,也没有真实的系统被攻陷——Cowrie 完全模拟了命令执行,没有任何实际效果。
*作为持续的、自主导向的网络安全技能发展的一部分而构建。*
标签:AWS, DPI, PE 加载器, 威胁情报, 安全, 开发者工具, 网络信息收集, 蜜罐, 证书利用, 超时处理, 逆向工具