estebanlautaro/HoneyShield
GitHub: estebanlautaro/HoneyShield
多协议蜜罐与威胁情报平台,通过模拟 SSH/HTTP/FTP 服务诱捕攻击行为并提供实时可视化分析仪表板。
Stars: 1 | Forks: 0
# 🍯 HoneyShield — 多协议蜜罐与威胁情报平台




## 📸 仪表板预览

## 🏗 架构
```
┌─────────────────────────────────────────────────────────────────┐
│ HoneyShield │
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────────┐ │
│ │ Honeypot │ │ Analyzer │ │ Dashboard │ │
│ │ │ │ │ │ │ │
│ │ SSH :22 │───▶│ Geo-enrich │───▶│ Leaflet map │ │
│ │ HTTP :80 │ │ Pattern │ │ Chart.js graphs │ │
│ │ FTP :21 │ │ detection │ │ Live feed │ │
│ │ │ │ Stats gen │ │ │ │
│ └──────────────┘ └──────────────┘ └──────────────────┘ │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ logs/events.jsonl logs/analysis.json nginx :3000 │
└─────────────────────────────────────────────────────────────────┘
```
### 组件
| 组件 | 描述 |
|-----------|-------------|
| `honeypot.py` | 记录所有连接尝试的多线程伪造 SSH/HTTP/FTP 服务器 |
| `analyzer.py` | 读取事件,调用 IP 地理位置API,计算统计数据,输出 JSON |
| `dashboard.html` | 使用 Leaflet.js + Chart.js 的单文件实时仪表板 |
| `docker-compose.yml` | 完整的容器化部署 |
## 🛠 技术栈
- Python
- Docker
- HTML/CSS/JavaScript
- Chart.js
- Leaflet.js
- Linux
- JSON APIs
- 多线程
- Socket 编程
## 🚀 快速开始
### 选项 A — Docker(推荐)
```
git clone https://github.com/estebanlautaro/HoneyShield.git
cd HoneyShield
# 启动所有服务
docker compose up -d
# 查看日志
docker compose logs -f
# 打开 dashboard
open http://localhost:3000
```
### 选项 B — 本地运行(开发/测试)
```
# 生成 demo 数据并进行分析
python analyzer.py demo 500
# 直接在浏览器中打开 dashboard
open dashboard.html
```
## ⚙️ 配置
在 `docker-compose.yml` 中编辑端口绑定:
```
ports:
- "2222:22" # SSH (change left side to expose differently)
- "8080:80" # HTTP
- "2121:21" # FTP
```
以监控模式运行分析器,每 N 秒刷新一次:
```
python analyzer.py watch 30
```
## 📊 仪表板展示内容
| 组件 | 描述 |
|--------|-------------|
| **全球攻击地图** | 带有攻击者 IP 位置的世界地图,按协议着色 |
| **实时事件流** | 带有凭证的传入攻击实时数据流 |
| **攻击时间轴** | 24小时攻击频率的柱状图/折线图 |
| **协议分布** | 甜甜圈图 — SSH、HTTP 与 FTP 的分布情况 |
| **每小时热力图** | 攻击者在哪些时段最活跃 |
| **首要攻击者 IP** | 最具攻击性的源 IP |
| **主要攻击国家** | 攻击的地理来源 |
| **凭证词表** | 最常被尝试的用户名和密码 |
## 🔬 技术细节
### 蜜罐行为
- **SSH**:发送逼真的 `OpenSSH_8.9p1` 标语,捕获客户端标语和凭证尝试
- **HTTP**:提供伪造的 Apache 响应,捕获 `Authorization: Basic` 请求头和 POST 请求体凭证,模仿流行的攻击目标(`/wp-login.php`、`/.env`、`/phpMyAdmin/`)
- **FTP**:带有逼真 ProFTPD 标语的完整 `USER`/`PASS` 交互,始终拒绝凭证
### 数据流水线
```
Attack attempt
│
▼
honeypot.py ──▶ logs/events.jsonl (append-only JSONL)
│
▼
analyzer.py ──▶ ip-api.com (geolocation)
│
▼
logs/analysis.json ──▶ dashboard.html
```
### 事件结构
```
{
"id": "a3f8bc12",
"timestamp": "2024-01-15T03:22:41+00:00",
"protocol": "SSH",
"src_ip": "185.220.101.47",
"src_port": 54231,
"username": "root",
"password": "123456",
"geo": {
"country": "Germany",
"city": "Frankfurt",
"lat": 50.11,
"lon": 8.68,
"isp": "Tor Exit Node"
}
}
```
## 🛡 安全注意事项
- **绝对不要在您的个人计算机上部署** — 此服务会故意向互联网暴露端口
- 使用配置了防火墙规则的专用云 VM,将仪表板访问(端口 3000)限制为您的 IP
- 蜜罐**不会**执行任何攻击者载荷 — 它只读取输入
- 所有伪造服务在记录日志后立即关闭连接
- 地理定位使用免费的 `ip-api.com` API(无需密钥,每分钟 45 次请求)
## 📁 项目结构
```
honeyshield/
├── honeypot.py # Core honeypot (SSH + HTTP + FTP)
├── analyzer.py # Event enrichment & statistics
├── dashboard.html # Real-time web dashboard
├── docker-compose.yml # Container orchestration
├── Dockerfile # Python service image
├── nginx.conf # Dashboard web server config
├── logs/ # Auto-created at runtime
│ ├── events.jsonl # Raw attack events (append-only)
│ ├── analysis.json # Processed stats for dashboard
│ └── geo_cache.json # IP geolocation cache
└── README.md
```
## 🗺 路线图
- [ ] 针对高严重性事件的 Telegram/Discord 告警机器人
- [ ] 自动 IP 信誉查询(AbuseIPDB、VirusTotal)
- [ ] 导出为 PDF 报告
- [ ] MySQL 蜜罐模块
- [ ] 对凭证模式进行机器学习异常检测
- [ ] GeoIP 数据库备用方案(无需联网)
## 📄 许可证
MIT — 查看 [LICENSE](LICENSE)
## ⚠️ 免责声明
本项目仅用于**教育和研究目的**。请负责任地部署在您拥有或控制的基础设施上。请勿在未经许可的系统上收集数据。
标签:AMSI绕过, Chart.js, CISA项目, Docker, Docker Compose, FTP蜜罐, Honeypot, HTTP蜜罐, IP 地址批量处理, IP地理位置分析, Leaflet, MIT ATT&CK, Nginx, PE 加载器, Python, SSH蜜罐, 后端开发, 多协议, 威胁情报, 威胁检测, 安全仪表盘, 安全大数据, 安全态势感知, 安全防御评估, 开发者工具, 攻击分析, 攻防研究, 数据可视化, 无后门, 网络安全, 网络攻防, 蜜罐, 证书利用, 请求拦截, 调试辅助, 进程注入, 逆向工具, 隐私保护