estebanlautaro/HoneyShield

GitHub: estebanlautaro/HoneyShield

多协议蜜罐与威胁情报平台,通过模拟 SSH/HTTP/FTP 服务诱捕攻击行为并提供实时可视化分析仪表板。

Stars: 1 | Forks: 0

# 🍯 HoneyShield — 多协议蜜罐与威胁情报平台 ![Python](https://img.shields.io/badge/Python-3.11+-blue?style=flat-square&logo=python) ![Docker](https://img.shields.io/badge/Docker-Compose-2496ED?style=flat-square&logo=docker) ![License](https://img.shields.io/badge/License-MIT-green?style=flat-square) ![Status](https://img.shields.io/badge/Status-Active-brightgreen?style=flat-square) ## 📸 仪表板预览 ![Dashboard Screenshot](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/c1376bef1d160318.png) ## 🏗 架构 ``` ┌─────────────────────────────────────────────────────────────────┐ │ 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蜜罐, 后端开发, 多协议, 威胁情报, 威胁检测, 安全仪表盘, 安全大数据, 安全态势感知, 安全防御评估, 开发者工具, 攻击分析, 攻防研究, 数据可视化, 无后门, 网络安全, 网络攻防, 蜜罐, 证书利用, 请求拦截, 调试辅助, 进程注入, 逆向工具, 隐私保护