OSINTCabal/Contact-Analyzer

GitHub: OSINTCabal/Contact-Analyzer

一款基于可见浏览器会话的 OSINT 社交关系收集与去重工具,无需官方 API 即可采集跨平台的联系人关系数据。

Stars: 0 | Forks: 0

# Contact Analyzer **作者:[OSINT Cabal](https://osintcabal.org)** Contact Analyzer 通过由你控制的可见 Google Chrome 或 Chromium 会话收集社交资料关系。它会打开渲染好的关系列表,对其进行滚动或分页,在有用时读取浏览器生成的网络响应,并保存规范的资料 URL。 它不需要官方的社交网络 API、开发者账户、API token 或复制的 cookie。 Contact Analyzer 专为授权的 OSINT 研究而构建,适用于调查人员需要进行可重复的联系收集、清晰的来源关系,以及在平台未暴露完整列表时进行如实报告的情况。 ## 功能 * 收集 `followers`、`following` 和 `friends` * 使用你可见且已认证的浏览器会话 * 支持 Google Chrome 和 Chromium * 在 SQLite 中去除重复的规范资料 URL * 保留关系来源,不重复添加联系人 * 生成适配 Obsidian 的 Markdown 和 JSON * 为未完成的运行保存检查点和诊断信息 * 将被阻止、失败和待审查的结果排除在持久联系人集合之外 * 使用 Codex 进行有限的页面分析和可选的诊断审查 * 无需官方平台 API 密钥 ## 工作原理 1. 你创建一个主题并添加已知的资料 URL。 2. Contact Analyzer 连接到专用浏览器,地址为 `http://127.0.0.1:9222`。 3. 收集器会打开你的账户可见的关系列表。 4. 它会读取已渲染的行以及浏览器生成的 XHR 或 fetch 响应。 5. 平台适配器会拒绝帖子、媒体、搜索页、群组、代码库、标签和其他导航 URL。 6. 被接受的资料会被规范化为标准的资料 URL。 7. SQLite 会记录唯一的联系人及其源关系边。 8. 导出器会写入当前联系人集合、运行历史和诊断信息。 如果平台报告了数量但暴露的唯一资料较少,则运行保持未完成状态。Contact Analyzer 不会将部分列表转换为完整列表。 ## 支持的系统 Contact Analyzer 支持以下系统的当前桌面版本: * Fedora Linux * Debian * Ubuntu * Linux Mint * Kali Linux * macOS 需要 Python 3.10 或更新版本。Linux 需要 Python `venv` 模块。 推荐使用 Google Chrome。Chromium 作为备选受支持。 Linux 安装程序可识别 Fedora、Debian、Ubuntu、Linux Mint 和 Kali。 当缺少 Python 或浏览器要求时,它会打印正确的包安装命令。 有关特定发行版的命令,请参见 [Linux 安装](docs/LINUX_INSTALL.md)。 ## 安装说明 首先安装并验证 OpenAI Codex CLI: ``` curl -fsSL https://chatgpt.com/codex/install.sh | sh codex --version codex login ``` 你也可以使用 npm 安装 Codex: ``` npm install -g @openai/codex codex login ``` 克隆 Contact Analyzer 并运行安装程序: ``` git clone https://github.com/OSINTCabal/Contact-Analyzer.git cd Contact-Analyzer ./install.sh hash -r ``` 安装程序在复制应用程序之前会检查 Codex、Python、`venv` 和 pip。它会为当前用户安装 Contact Analyzer 并创建: ``` ~/.local/share/contact-analyzer ~/.local/bin/contactanalyzer ~/.local/bin/contactanalyzer-browser ``` 请勿使用 `sudo` 运行安装程序。 要在不安装任何内容的情况下打印软件包要求: ``` ./install.sh --system-requirements ``` ## 浏览器设置 启动专用浏览器: ``` contactanalyzer-browser ``` 启动器会查找 Google Chrome 或 Chromium,创建一个单独的浏览器配置文件,并仅在 `127.0.0.1:9222` 上启用 Chrome DevTools。 手动登录你计划收集的平台。将此配置文件与你的日常浏览器配置文件保持独立。 验证连接: ``` contactanalyzer doctor ``` Chrome 136 及更新版本要求远程调试使用独立的用户数据目录。内置的启动器会自动处理此问题。Ubuntu Chromium Snap 安装会在 `~/snap/chromium/common/` 内部使用一个配置文件,以便浏览器能够对其进行写入。 有关手动命令和故障排除,请参见[浏览器设置](docs/BROWSER_SETUP.md)。 ## 运行说明 打开交互式主题菜单: ``` contactanalyzer ``` 创建主题并粘贴资料 URL: ``` here's my next subject Example Person https://www.instagram.com/example https://x.com/example https://bsky.app/profile/example.bsky.social https://github.com/example DONE ``` Contact Analyzer 会识别平台,查找可用的关系控制选项,并仅收集规范的资料 URL。 ## 命令 | 命令 | 用途 | | --- | --- | | `contactanalyzer` | 打开交互式主题菜单 | | `contactanalyzer subjects` | 列出已保存的主题 | | `contactanalyzer new` | 通过粘贴的 URL 创建并运行一个主题 | | `contactanalyzer add "Example Person" --run` | 添加资料 URL 并进行收集 | | `contactanalyzer run "Example Person"` | 运行或恢复已保存的资料 | | `contactanalyzer platforms` | 显示平台覆盖情况 | | `contactanalyzer discover URL` | 检查可见的关系控制选项 | | `contactanalyzer export "Example Person"` | 刷新 JSON 和 Markdown 导出 | | `contactanalyzer audit "Example Person"` | 检查数据库和导出完整性 | | `contactanalyzer codex "Example Person"` | 使用 Codex 审查最新运行情况 | | `contactanalyzer doctor` | 检查浏览器、数据库、vault 和 Codex | | `contactanalyzer config --vault PATH` | 更改输出 vault | | `contactanalyzer --version` | 打印已安装的版本 | 更多示例可在[使用与配置](docs/USAGE.md)中找到。 ## 输出 默认的 vault 是: ``` ~/Documents/Contact-Analyzer/ ``` 输出是普通的 Markdown 和 JSON: ``` Contact-Analyzer/ ├── .contactanalyzer/ │ └── contactanalyzer.sqlite3 └── Subjects/ └── example-person/ ├── Summary.md ├── Master Contacts.md ├── master_contacts.json ├── platforms/ └── runs/ └── YYYYMMDD-HHMMSS/ ├── Run Summary.md ├── run.json └── platform/profile-id/ ├── followers.json ├── followers.checkpoint.json └── diagnostics/ ``` 联系人的唯一性取决于主题、平台和规范的资料 URL。一个联系人可以保留多个来源关系,同时在主导出中只出现一次。 ## Codex 集成 Codex 以两种有限的方式使用。 首先,可以使用 JSON schema 和只读沙箱根据渲染的浏览器证据来分析通用网站页面。 其次,你可以要求 Codex 审查最新的运行诊断信息: ``` contactanalyzer run "Example Person" --with-codex contactanalyzer run "Example Person" --with-codex-exec contactanalyzer codex "Example Person" contactanalyzer codex "Example Person" --exec ``` 生成的案例包存储在 `codex_cases/` 下,并被 Git 忽略。在分享之前请先审查它们。 ## 注意事项 * 仅对你有权访问的账户和数据使用 Contact Analyzer。 * 遵守适用的法律、平台条款、速率限制和组织政策。 * 可见的关系并不能保证完整列表可用。 * 私有列表、平台上限、挑战和速率限制将在最终状态中保持明确标示。 * 切勿发布专用浏览器配置文件、vault、数据库、屏幕截图、渲染后的 HTML、捕获的响应或诊断包。 * 收集完成后请关闭专用浏览器。 Chrome DevTools 端点可以控制专用配置文件可见的所有内容。Contact Analyzer 将其绑定到环回接口,并拒绝外部地址。 在报告漏洞之前,请阅读[安全策略](SECURITY.md)。 ## 开发说明 ``` python3 -m venv .venv source .venv/bin/activate python -m pip install -r requirements.txt python -m unittest discover -s tests -v bash -n install.sh contactanalyzer scripts/launch-chrome.sh ``` 测试套件使用合成夹具,并且不需要活动的浏览器。 请参见[贡献指南](CONTRIBUTING.md)和[发布检查清单](docs/PUBLISHING.md)。 ## 许可证 Contact Analyzer 基于 [MIT 许可证](LICENSE) 提供。 为 OSINT Cabal 社区而构建。
标签:ESC4, Homebrew安装, OSINT, URL抓取, 代码示例, 数据分析, 数据去重, 数据抓取, 浏览器自动化, 逆向工具, 防御加固