VortexisTV/HoneyRadar

GitHub: VortexisTV/HoneyRadar

HoneyRadar 是一个实时蜜罐威胁情报可视化地图,将 Cowrie 和 OpenCanary 捕获的攻击事件以 3D 地球仪动态弧线形式展示,并集成 IP 信誉评分与攻击统计分析。

Stars: 0 | Forks: 0

# HoneyRadar 一个实时的蜜罐威胁情报地图,使用 [Cowrie](https://github.com/cowrie/cowrie)、[OpenCanary](https://github.com/thinkst/opencanary)、[Tailscale](https://tailscale.com/) 以及 IP 信誉丰富信息。它将传入的攻击渲染为交互式 3D 地球仪威胁地图上的动态弧线,并配有实时事件订阅和原始 Cowrie 及 OpenCanary 日志行。 https://github.com/user-attachments/assets/8569f12b-d984-4376-8b2c-295423188bb2 ## 功能 - **3D 地球仪**和**平面 2D 世界地图**,带有动态攻击弧线、传感器脉冲和冲击波环。点击拖动可旋转,滚动可缩放,此外在 TWEAKS 中还有一个可选的**自动旋转**开关。 - **地图样式:** 地球仪、蓝色弹珠、夜间灯光和平面 2D。 - 整个界面的**深色/浅色主题**。 ![Tweaks](https://static.pigsec.cn/wp-content/uploads/repos/cas/58/58a38859019c5a3bb533733e27d12882d0f4bf348ceae334ddb8e85459c84912.png) - **自动发现的蜜罐传感器**,应用蜜罐的 WebSocket URL 后,会自动进行地理定位并放置在地图上显示活动。 - **实时事件订阅**,每个事件包含:时间戳、来源国家 + 城市、国旗、目标传感器、端口、源 IP、事件类型和详细信息。 - **点击任意事件查看完整记录:** 在订阅中选择一行将打开**事件详情**面板,显示该事件的完整 JSON。 - **实时更新的计数器:** 总攻击数、每分钟攻击数、唯一源 IP、在线传感器、登录失败、登录成功、连接尝试、命令。 ![Updated counters](https://static.pigsec.cn/wp-content/uploads/repos/cas/59/5937049db8b29d4e675d9f58c65a3845bdb6ff3d2ecb1ef51f0ad4fcf60d6332.png) - **命令浏览器:** 一个**已使用命令**面板,显示总执行次数、唯一命令数以及按频率排名的常用命令。 ![Commands Used](https://static.pigsec.cn/wp-content/uploads/repos/cas/4a/4aff05e103518cec21c964b97f8163bc0342ef1e76188db6491096a90aaf88d7.png) - **排名:** 最常被针对的端口、最常见的源 IP 地址、最主要的来源国家以及最常尝试的凭据。 ![Rankings1](https://static.pigsec.cn/wp-content/uploads/repos/cas/18/18564116e3f651399a76e278c7fecb69703bad87936265b1c65ed28e7e3b9a65.png) ![Rankings2](https://static.pigsec.cn/wp-content/uploads/repos/cas/ec/ec9c24f44e0bb5fffc8f10c7dddc37d9b89bb495a65d28711e8e63d51dd1b6d2.png) - **IP 信誉面板:** 通过服务器端丰富信息(**Spamhaus DROP, AbuseIPDB, VirusTotal**)对主要源 IP 的恶意程度进行评分。 ![Reputation](https://static.pigsec.cn/wp-content/uploads/repos/cas/69/69defead89d84741eaa3aa32ec7c260cc25bff5f51d6f46a4873788b17f4dcfa.png) - **原始日志抽屉**流式传输每个事件的 `cowrie.json` 和 `opencanary.log` 行,可以选择暂停、清除、加载新的 `.json` 文件进行重播,**并下载捕获的日志**。 - **嵌入式国旗**(离线安全;无需外部 CDN)。 ## 要求 - VPS 服务器或任何目标机器(推荐使用 Ubuntu Server 22.04 或 24.04) - 主机 和 VPS 服务器上均需安装 Tailscale ## 在目标机器上安装 - Python 3.10+ - Cowrie 和/或 OpenCanary - 用于服务器上的私有 SSH 连接以及创建 WebSocket URL 的 Tailscale ``` ssh username@TAILSCALE-VPS-IP ``` ## 快速开始 1. 下载 `HoneyRadar Attack Map.html`。首次打开 HTML 时,状态显示为 **OFFLINE** 且地图为空。这是正常的。在应用您的蜜罐 WebSocket URL 后,它将切换为 **LIVE** 并可视化真实流量。 2. 在任何现代浏览器(Chrome、Edge、Firefox、Safari)中打开它。 ### 在目标机器上设置实时订阅(WebSocket 桥接) Cowrie 或 OpenCanary 不提供 WebSocket URL。您需要创建一个轻量级桥接,将每个新记录的事件广播到您的地图。通过 Tailscale 保持此订阅私有。**Tailscale Serve** 提供 HTTPS/TLS 并为您代理 WebSocket。 #### 1. 安装 WebSocket 库 以您的管理员 `ubuntu` 用户身份运行: ``` sudo -u cowrie python3 -m venv /home/cowrie/ws-env sudo -u cowrie /home/cowrie/ws-env/bin/pip install \ "websockets==16.0" ``` #### 2. 创建桥接 ``` sudo nano /home/cowrie/websocket.py ``` 粘贴 [`websocket.py`](https://raw.githubusercontent.com/VortexisTV/HoneyRadar/refs/heads/main/websocket.py) 中的代码。 更正其所有权: ``` sudo chown cowrie:cowrie /home/cowrie/websocket.py sudo chmod 750 /home/cowrie/websocket.py ``` #### 3. 创建系统服务 ``` sudo nano /etc/systemd/system/honeyradar-websocket.service ``` 粘贴本仓库中 [`honeyradar-websocket.service`](https://raw.githubusercontent.com/VortexisTV/HoneyRadar/refs/heads/main/honeyradar-websocket.service) 的代码): ``` [Unit] Description=Honeypot JSON WebSocket Bridge After=network-online.target cowrie.service opencanary.service Wants=network-online.target [Service] Type=simple User=cowrie Group=cowrie WorkingDirectory=/home/cowrie/cowrie Environment=COWRIE_LOG=/home/cowrie/cowrie/var/log/cowrie/cowrie.json Environment=OPENCANARY_LOGS=/var/tmp/opencanary.log EnvironmentFile=/etc/honeypot-bridge/reputation.env ExecStart=/home/cowrie/ws-env/bin/python /home/cowrie/websocket.py Restart=always RestartSec=3 NoNewPrivileges=true PrivateTmp=false [Install] WantedBy=multi-user.target ``` #### 4. 为 IP 信誉创建受保护的环境变量文件(可选的丰富信息) ``` sudo mkdir -p /etc/honeypot-bridge sudo nano /etc/honeypot-bridge/reputation.env ``` 将您的 API 密钥放在这里: ``` ENABLE_SPAMHAUS=true SPAMHAUS_DROP_URL=https://www.spamhaus.org/drop/drop.json ENABLE_ABUSEIPDB=true ABUSEIPDB_API_KEY=your_new_abuseipdb_key_here ENABLE_VIRUSTOTAL=true VIRUSTOTAL_API_KEY=your_new_virustotal_key_here REPUTATION_CACHE_TTL_HOURS=24 ``` 对其进行权限锁定: ``` sudo chown root:root /etc/honeypot-bridge/reputation.env sudo chmod 600 /etc/honeypot-bridge/reputation.env ``` #### 5. 启动 Websocket 服务 ``` sudo systemctl daemon-reload sudo systemctl enable --now honeyradar-websocket sudo systemctl status honeyradar-websocket --no-pager sudo ss -lntp | grep 8765 ``` 预期结果,它仅在 localhost 上监听: ``` 127.0.0.1:8765 ``` 🚫 **不要在 VPS 防火墙中打开端口 `8765`。** Tailscale 负责处理访问。 #### 6. 通过 Tailscale 私下发布 ``` sudo tailscale serve --bg 8765 sudo tailscale serve status ``` 它应该会打印类似以下的内容: ``` https://vps-3ab2df8e.YOUR-TAILNET.ts.net ``` 您地图的 WebSocket URL 是使用 `wss://` 的相同主机名: ``` wss://vps-3ab2df8e.YOUR-TAILNET.ts.net/ ``` 打开 **TWEAKS**,将您的蜜罐 WebSocket URL 粘贴到 **LIVE FEED — COWRIE WEBSOCKET URL** 中,然后点击 **APPLY & CONNECT**。查看地图的设备也必须连接到您的 Tailscale 网络。 ### 故障排除 *启动 Websocket 服务后没有订阅?* 删除蜜罐日志并重启 Cowrie/OpenCanary。 ### 事件格式 每一行都是一个 JSON 对象。地图读取的字段包括: | 字段 | 用于 | | --- | --- | | `eventid` | 事件类型/颜色(`cowrie.login.failed`, `cowrie.login.success`, `cowrie.session.connect`, `cowrie.command.input`) | | `src_ip` | 源 IP + 唯一 IP 计数 | | `dst_ip` | **标识/创建蜜罐传感器**(进行地理定位以放置) | | `dst_port` | 最常被针对的端口 | | `username`, `password` | 尝试的热门凭据(登录事件) | | `input` | 命令详情(`cowrie.command.input`) | | `timestamp` | 事件时间 | | `geoip.latitude` / `geoip.longitude` *(可选)* | 攻击弧线的来源位置;如果缺失,将自动对 `src_ip` 进行地理定位(也接受 `lat`/`lon`) | | `geoip.country_name`, `geoip.country_code2`, `geoip.city` *(可选)* | 来源国家标签、国旗和城市;否则从地理定位填充 | | `dst_geoip` / `geoip_dst` *(可选)* | 蜜罐位置,代替 IP 地理定位使用 | 示例行: ``` {"eventid":"cowrie.login.failed","src_ip":"61.177.7.20","dst_ip":"203.0.113.10","dst_port":22,"username":"root","password":"123456","timestamp":"2026-06-23T10:00:01.000000Z","geoip":{"country_name":"China","country_code2":"CN","city":"Shanghai","latitude":31.0,"longitude":121.0}} ``` ## 构建使用 - [three-globe](https://github.com/vasturiano/three-globe) / [three.js](https://threejs.org/) — 3D 地球仪 - [flag-icons](https://github.com/lipis/flag-icons) — 嵌入式国旗 - [Natural Earth](https://www.naturalearthdata.com/) — 国家边界数据 - [ipwho.is](https://ipwho.is) — 源和目标 IP 地理定位 ## 许可证 与 Cowrie 或 OpenCanary 项目无关。
标签:后端开发, 威胁情报, 开发者工具, 网络安全, 蜜罐, 证书利用, 逆向工具, 隐私保护