mehmetyasinuzun/Keyword-Hunter

GitHub: mehmetyasinuzun/Keyword-Hunter

一款基于 Go 的暗网威胁情报工具,通过多搜索引擎扫描和数据可视化帮助安全分析人员发现威胁、监控泄露并分析关联关系。

Stars: 2 | Forks: 0

# KeywordHunter - 网络威胁情报平台 KeywordHunter 是一款先进的 CTI(网络威胁情报)工具,可在暗网(Tor 网络)及各种开源情报渠道中执行基于关键字的扫描,对获取的数据进行关联处理,并为分析人员提供可视化展示。 本项目旨在帮助安全分析人员及早发现威胁、监控数据泄露,并梳理攻击者之间的关系。系统基于高性能的 Go 架构构建。 ## 安装与运行 本项目提供两种运行方式。对于生产环境和快速测试,推荐使用 Docker。 ### 方法一:使用 Docker 安装(推荐) **环境要求:** Docker 20.10+ 及 Docker Compose v2+(或 `docker-compose` v1.29+) #### 快速开始(3 个步骤) ``` git clone https://github.com/mehmetyasinuzun/Keyword-Hunter.git cd Keyword-Hunter mkdir -p data cp .env.example data/.env docker compose up -d --build ``` 对于 Windows PowerShell: ``` git clone https://github.com/mehmetyasinuzun/Keyword-Hunter.git cd Keyword-Hunter New-Item -ItemType Directory -Path data -Force | Out-Null Copy-Item .env.example data/.env -Force docker compose up -d --build ``` #### 访问地址 | 组件 | 地址 | 备注 | |---------|-------|--------| | Web 界面 | `http://localhost:8080` | | | 登录凭据 | `data/.env` 中的 `ADMIN_USER` / `ADMIN_PASS` | 默认示例:`admin` / `admin123` | #### 运行的服务 ``` keywordhunter-tor → Tor proxy (dahili: tor:9050) keywordhunter-app → Go web sunucusu (dışa: 8080) ``` 应用启动后,在建立 Tor 连接之前,搜索功能可能需要等待 **~10-30 秒**。 #### 环境变量参考 | 变量 | 默认值 | 说明 | |----------|------------|----------| | `ADMIN_USER` | — | **必填。** 登录用户名 | | `ADMIN_PASS` | — | **必填。** 请选择一个强密码 | | `TOR_PROXY` | `tor:9050` | Docker 内部的 Tor 地址(请勿修改) | | `DB_PATH` | `/data/keywordhunter.db` | SQLite 数据库路径 | | `WEB_ADDR` | `:8080` | 服务器监听地址 | | `LOG_DIR` | `/data/logs` | 日志文件目录 | | `LOG_LEVEL` | `info` | 日志级别:`debug` / `info` / `warn` / `error` | | `SESSION_TTL_HOURS` | `24` | 会话有效期(1–720) | | `RATE_LIMIT_RPS` | `12` | 每秒最大请求数(1–200) | | `RATE_LIMIT_BURST` | `30` | 突发负载容忍度(1–500) | | `WEB_SECURE_COOKIES` | `false` | 如果使用 HTTPS,请将其设为 `true` | #### 常用命令 ``` # 实时查看日志 docker compose logs -f # 仅查看应用日志 docker compose logs -f app # 查看容器状态 docker compose ps # 停止(保留数据) docker compose down # 完全重置(数据库将被删除) docker compose down -v rm -rf ./data # 更新后重新构建 docker compose up -d --build --force-recreate ``` #### 持久化数据 ``` ./data/ ├── keywordhunter.db ← SQLite veritabanı (tüm bulgular) ├── .env ← /settings ekranından yapılan değişiklikler buraya yazılır └── logs/ ← Uygulama logları ``` 在 Docker 运行期间,源 env 文件是 `./data/.env`;根目录下的 `.env` 文件不适用于 Docker。 #### 故障排除 **容器无法启动:** ``` docker compose logs app # 出现 "ADMIN_USER ve ADMIN_PASS zorunludur" 错误 → 请检查 .env 文件 ``` **无法建立 Tor 连接:** ``` docker compose logs tor # 如果 tor 服务没有 running:docker compose restart tor ``` **8080 端口被占用:** ``` # 在 .env 中设置 WEB_ADDR=:9090,然后在 docker-compose.yml 中 # 将 ports: 更新为 "9090:9090" ``` **健康检查:** ``` curl -s -o /dev/null -w "%{http_code}" http://localhost:8080/login # 如果返回 200,则系统准备就绪 ``` ![登录界面](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/5d38a1f7f8225006.jpg) ### 方法二:手动安装(Windows/Linux) 如果您想进行开发或在不使用 Docker 的情况下运行: 1. 环境要求: - Go 1.24 或更高版本 - Tor Browser(需在后台运行并监听 9150 端口) - 由于编译时设置了 CGO_ENABLED=0,因此不需要 GCC 2. 编译与启动: 为 Windows 用户提供了现成的脚本。该脚本会清理旧的编译文件并重启项目: copy .env.example .env # 在 .env 文件中编辑 ADMIN_USER 和 ADMIN_PASS 的值 build_and_run.bat ## 模块与功能 该应用程序由 5 个主要模块组成,用于管理情报生命周期。 ### 1. Dashboard(概览) 系统的指挥中心。提供当前执行操作的实时摘要。左侧的统计面板显示数据库中的数据总量,右侧的图表则根据威胁的严重程度(Level 1-5)分析其分布情况。 ![Dashboard 视图](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/ddc757704a225013.jpg) ### 2. 搜索引擎(Hunter Search) 以目标为导向的情报收集模块。借助 Regex(正则表达式)支持,分析人员可以构建复杂的查询。 - **多来源:** 同时扫描通过 Tor 验证为实时可访问的所有活跃暗网搜索引擎(已失效/废弃的引擎会被定期清理)。 - **过滤:** 仅检索特定日期范围内或特定格式(例如:信用卡 BIN 码)的数据。 ![搜索模块](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/bde76f2eb2225019.jpg) ### 3. 发现结果(Results) 这是处理和列出收集到的原始数据的区域。每个结果都会根据其来源、发现时间及内容摘要进行排列。分析人员可以在此处剔除无关数据,或将关键数据标记为“案件”(Case)。 ![发现列表](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/ead03ccf65225026.jpg) ### 4. 关系分析(Graph Intelligence) 文本数据的可视化呈现。专门用于识别有组织犯罪团伙或相互关联的数据泄露事件。 #### 可视化模式 根据分析类型,提供 3 种不同的视图模式: **1. Radial View(聚焦分析):** 以选定的节点为中心,以圆形方式分布其关联关系。 ![Radial 模式](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/549f953ceb225032.jpg) **2. Tree View(层级分析):** 以树状结构展示数据之间的父子关系。 ![Tree 模式](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/4f46ea04e8225037.jpg) **3. Network View(自由聚类):** 关系紧密的数据会相互吸引(Force-Directed)。 ![Network 模式](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/7fdc96f445225043.jpg) #### 操作菜单 分析人员可以右键点击任何节点以访问详细的操作菜单(深入挖掘、复制、隐藏等)。 ![Context Menu](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/0fe00dad0e225050.jpg) ### 5. 分析中心(Analytics) 将操作数据转化为战略情报的场所。 - **时间分析:** 显示攻击或泄露在特定时间段/日期内密集程度的时间轴。 - **来源分布:** 通过饼图显示哪些市场或论坛更为活跃。 ![分析界面](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/bc8eab9698225057.jpg) ### 6. 设置中心(Runtime Config) 通过 `.env` 管理平台设置的控制面板(`/settings`)。 - **可管理配置:** 管理员信息、rate-limit、会话 TTL、Tor/DB/Web 地址。 - **实时生效:** rate-limit 设置一旦保存便会立即应用。 - **安全性:** API POST 操作中启用了 CSRF 保护,并激活了基于 IP 的 rate-limit。 ### 7. 通知中心(`/scheduled`) 用于为新发现配置 webhook 通知的界面。 - **Webhook 支持:** 与 Slack、Discord、Teams 或任何 HTTP webhook 集成。 - **阈值设置:** 通过设定最低严重性级别,防止发送不必要的通知。 - **实时 Feed:** 可以在此界面上实时监控过去 N 小时内的新发现。 ![Webhook 通知设置](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/7fd6a4ad72225103.jpg) 该模块的目的是将关键发现自动传输给团队使用的系统,而无需等待人工检查。 #### 有什么作用? - 将威胁情报实时推送到 Slack、Discord 或 Teams 频道。 - 仅发送高于您设定的严重性级别的发现,从而减少噪音。 - 缩短 SOC/SecOps 团队的事件响应时间。 #### 建议的使用流程 1. 开启 `启用通知` 选项。 2. 在 Webhook URL 字段中输入目标系统的 URL。 3. 根据您的操作需求选择 `最低严重性级别`(通常为 3 及以上)。 4. 点击 `保存` 使设置永久生效。 5. 当有新发现时,系统会以 JSON payload 的形式向相应的 webhook 地址发送 POST 请求。 6. 您可以通过 `最新发现 Feed` 区域快速查看哪些发现已触发了通知。 #### 应用场景? - 在 SIEM/SOAR 的数据对接线路中作为第一道告警层。 - 向 Incident response 团队实时通报优先级较高的威胁。 - 在蓝队行动中用于向轮班团队发送自动通知。 ## 技术架构 - **Backend:** Go (Golang) - Gin Framework - **数据库:** SQLite(配合 Gorm ORM) - **Frontend:** HTML5, CSS3, Vanilla JavaScript - **数据采集:** Colly(Scraping Framework)及 Tor Proxy - **可视化:** Chart.js 及 D3.js ## 法律免责声明 本软件专为网络安全专家和研究人员开发。严禁用于未经授权访问系统或从事任何非法活动。用户有责任在法律允许的范围内使用本工具。 **版本:** v0.9 **开发者:** Mehmet Yasin Uzun
标签:Docker, ESC4, EVTX分析, Go, OSINT, Ruby工具, 威胁情报, 安全防御评估, 实时处理, 开发者工具, 日志审计, 暗网监控, 请求拦截