x1n-Q/OSINT-Hub

GitHub: x1n-Q/OSINT-Hub

OSINT-Hub 是一个集成了多种公开情报收集工具的一站式 OSINT 框架,通过统一 GUI 和 CLI 简化了开源调查流程。

Stars: 2 | Forks: 0

# OSINT Hub - 一站式 OSINT 框架 [![PyPI version](https://img.shields.io/pypi/v/osinthub.svg?color=blue)](https://pypi.org/project/osinthub/) [![Downloads](https://img.shields.io/pypi/dm/osinthub.svg?color=informational&label=downloads%2Fmonth)](https://pypistats.org/packages/osinthub) [![Python](https://img.shields.io/pypi/pyversions/osinthub.svg?logo=python&logoColor=white)](https://pypi.org/project/osinthub/) [![License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE) ## ⚡ 快速安装(最快 — 一条命令) ``` pip install osinthub ``` 然后启动: ``` osinthub # GUI (default) osinthub-cli # Command-line interface ``` ### 更快、隔离的安装(推荐) 使用 [`pipx`](https://pipx.pypa.io/) 将其安装到独立的环境中 — 无依赖冲突: ``` pipx install osinthub osinthub ``` ### 升级 ``` pip install --upgrade osinthub ``` ### 安装后可用的控制台脚本 | 命令 | 用途 | |---|---| | `osinthub` | 启动 GUI | | `osinthub-cli` | 使用 CLI | | `osinthub-gui` | 同 `osinthub` | | `osinthub-bootstrap` | 准备项目环境 | | `osinthub-runtime-setup` | 为工具安装受管理的 Python runtime | | `osinthub-audit` | 审计已安装的 OSINT 工具 | ## ⚖️ 法律与道德使用声明 OSINT Hub 专为**合法用途**设计 — 包括调查性新闻、学术研究、教育、品牌保护、寻找失踪人员、尽职调查以及授权的安全研究。 使用本软件即表示您同意: - ✅ 您将只查询**公开可用**的数据,或您拥有**明确书面授权**访问的数据。 - ✅ 您将遵守任何被查询的第三方平台的**服务条款**,并遵守您所在司法管辖区内的所有适用法律(包括 GDPR、CCPA 及类似的隐私法规)。 - ❌ 您**不会**将本软件用于跟踪、骚扰、人肉搜索、未经授权的访问,或任何其他侵犯他人隐私或权利的活动。 ## 功能 ### 适合初学者(无需经验) - **一键设置**:只需按下一个按钮即可安装捆绑的研究工具 - **简化的界面**:无需记忆命令行参数 - **引导式工作流**:为每个工具提供逐步引导的输入表单 - **统一结果视图**:带有导出选项的合并结果查看器 - **自动处理依赖**:自动为您管理工具依赖 ### 适合高级用户 - **完整的 CLI**:提供用于脚本编写和自动化的命令行界面 - **批量处理**:一次性运行多个查询 - **自定义参数**:通过简洁的界面访问所有工具选项 - **灵活的导出**:支持 JSON、CSV、TXT、HTML 格式 ### 核心功能(公开数据查询) - **用户名搜索**:跨 300+ 公共社交网络(由 Sherlock 提供支持) - **邮箱验证**:验证邮箱并查询其公开痕迹 - **域名与 DNS**:获取信息并发现公开子域名 - **IP 与地理位置**:使用公共注册表进行查询 - **社交媒体**:公开资料研究与归档 - **电话号码**:运营商与归属地查询 - **图像元数据**:从您拥有的文件中提取 (EXIF) - **公共网络信息**:查询(WHOIS、ASN、路由) - **公开泄露检查**:通过官方 [HaveIBeenPwned](https://haveibeenpwned.com/) API 进行查询 - **公开记录研究**:辅助工具 ## 手动 / 开发者安装 ### 开发环境配置(Python 3.11 + 本地 `.venv`) ``` git clone https://github.com/x1n-Q/OSINT-Hub.git cd OSINT-Hub python bootstrap_env.py .venv\Scripts\python.exe main.py ``` 在 Linux/macOS 上: ``` python3 bootstrap_env.py .venv/bin/python main.py ``` `bootstrap_env.py` 会寻找 Python `3.11`,在 `.venv` 中创建项目本地的虚拟环境,从 `requirements-py311.txt` 安装指定的 GUI/runtime 依赖项,并将 OSINT Hub 安装到该环境中。 ### 为什么选择此配置 - Python `3.11` 是对于捆绑的第三方 OSINT 工具最稳定的版本。 - 从 `.venv` 运行可以避免由全局 Python 包引起的“在我的电脑上能用”的问题。 - `main.py`、`cli.py` 和 `menu.py` 会在 `.venv` 已经存在时自动切换到该环境。 ### Windows 发行版构建 当您的目标是发布一个 Windows `.exe` 程序,而不是要求用户直接运行源码时,请使用此方法。 ``` python -m pip install -r requirements-build.txt python build_exe.py --zip ``` 如果您已经创建了项目 `.venv`,您也可以使用: ``` build_release.bat --zip ``` 构建会在 `dist/OSINT-Hub-Windows/` 中创建一个发布文件夹,包含: - 用于 GUI 应用程序的 `OSINT Hub.exe` - 用于准备工具安装程序所使用的受管理 Python `3.11` runtime 的 `OSINT Hub Runtime Setup.exe` 重要提示: - 捆绑的 GUI 应用程序是一个 `.exe`,但许多第三方 OSINT 工具仍然基于 Python。 - 终端用户在从应用程序安装基于 Python 的工具之前,应先运行一次 `OSINT Hub Runtime Setup.exe`。 - 如果目标 PC 上尚未安装 Python `3.11`,请先安装它,然后再重新运行 runtime 设置助手。 ### 使用安装程序 ``` cd OSINT-Hub python setup_complete.py ``` ### 依赖项 OSINT Hub 需要: - 推荐使用 Python 3.11 - pip(Python 包管理器) - git(用于基于 git 的工具) - 基础构建工具(gcc、make) 在 Ubuntu/Debian 上: ``` sudo apt-get update sudo apt-get install python3 python3-pip git build-essential ``` ## 用法 ### 启动 GUI(对初学者友好) ``` .venv\Scripts\python.exe main.py ``` 这将打开一个现代化的图形界面,包含: - 带有图标和描述的工具目录 - 分类过滤 - 一键安装 - 交互式参数表单 - 结果查看器和导出功能 ### 使用 CLI(高级) ``` .venv\Scripts\python.exe cli.py --help ``` 常用 CLI 命令: ``` # 列出所有工具 python3 cli.py list # 按类别列出工具 python3 cli.py list --category "Username Search" # 搜索工具 python3 cli.py search username # 显示工具信息 python3 cli.py info sherlock # 安装工具 python3 cli.py install sherlock # 运行工具 python3 cli.py run sherlock --username target_username # 查看结果 python3 cli.py results # Export 结果 python3 cli.py export --format json --output results.json ``` ### SocialScan 快速入门 SocialScan 可用于检查用户名或邮箱在支持的平台上是否已被占用。 安装: ``` python3 cli.py install socialscan ``` 针对用户名运行: ``` python3 cli.py run socialscan danieldepaor ``` 针对邮箱运行: ``` python3 cli.py run socialscan danieldepaor@gmail.com ``` 在 GUI 中: - 打开 `SocialScan` - 在 `target` 字段中输入用户名或邮箱 - 点击 `Run Tool` 注意事项: - SocialScan 需要运行它的 PC 具备正常的 DNS 和出站 HTTPS 访问权限。 - 如果每个提供商都返回 DNS 或连接错误,OSINT Hub 现在会将扫描标记为失败,而不是显示错误的成功信息。 - 为了获得最佳兼容性,请通过项目 `.venv` 或发行版 runtime 设置助手使用 Python `3.11`。 ## 工具设置与故障排除 本节是“当工具无法安装或运行时我该怎么办?”的指南。 ### OSINT Hub 中的状态标签 - `READY`:已安装并可在本机运行。 - `AVAILABLE`:OSINT Hub 可以为您安装。 - `SETUP REQUIRED`:OSINT Hub 可以使用它,但首先缺少一个前置条件。 - `MANUAL`:在 OSINT Hub 之外,从官方供应商或项目文档进行安装。 - `DOCS ONLY`:上游项目在此构建中尚未成为真正独立的 CLI。 - `UNSUPPORTED`:上游项目太旧或与受管理的 runtime 不兼容。 ### 在安装任何工具之前 - 优先选择 Python `3.11`。许多上游 OSINT 工具在 Python `3.13+` 尤其是 `3.14` 上会出错。 - 如果您使用的是 Windows `.exe` 发行版,在安装基于 Python 的工具之前,请运行一次 `OSINT Hub Runtime Setup.exe`。 - 基于 Git 的工具需要您的 `PATH` 中包含 `git`。 - 某些 Windows 安装需要 Microsoft C++ Build Tools,因为上游 Python 包会编译原生扩展。 - 如果扫描失败并出现 `Could not contact DNS servers`、`ClientConnectorDNSError` 或类似的网络错误,请先修复 DNS/出站 HTTPS。这不是用户名错误或安装失败导致的。 - 某些工具仅接受特定的目标类型。真实姓名不适用于仅限域名、仅限邮箱、网络或文件元数据的工具。 ### 逐个工具的下载指南 | 工具 | 最佳安装路径 | 常见问题 | 解决方法 | 官方文档 | |------|-------------------|----------------|------------|---------------| | `Sherlock` | 从 OSINT Hub 安装 | 仅限用户名搜索 | 使用用户名,而不是真实姓名、域名或文件路径。如果 Git 重新安装卡住,请关闭正在使用该仓库文件夹的资源管理器或杀毒软件,然后重试。 | [Sherlock 安装](https://sherlockproject.xyz/installation) | | `theHarvester` | 从 OSINT Hub 安装 | 仅限域名输入以及特定来源的要求 | 使用类似 `example.com` 的域名。某些来源需要 API 密钥或额外的上游设置,因此请在需要时编辑 `api-keys.yaml`。 | [theHarvester 安装](https://github.com/laramies/theHarvester/wiki/Installation) | | `ExifTool` | Windows:官方可执行文件最简单。如果安装了 Perl,源码安装也可以。 | `SETUP REQUIRED`,因为缺少 Perl | 在 Windows 上,最简单的方法是使用官方的 ExifTool 包。如果您想通过 Git/源码安装,请先安装 Perl,然后从 OSINT Hub 重试。使用文件或目录目标,而不是用户名。 | [ExifTool 安装](https://exiftool.org/install.html) | | `SocialScan` | 从 OSINT Hub 安装 | DNS 或 HTTPS 连接失败 | 仅使用用户名或邮箱地址。如果每个提供商都显示 DNS/连接错误,请先修复 PC 网络,然后重试。 | [SocialScan README](https://github.com/iojw/socialscan) | | `Nmap` | 从官方安装程序或 OS 包管理器手动安装 | OSINT Hub 未自动安装 | 手动安装 Nmap。在 Windows 上,从官方网站安装,并在提示时保留数据包捕获组件。使用主机或 IP 目标,而不是人员或邮箱。 | [Nmap 下载](https://nmap.org/download.html) | | `Amass` | 从发行版、包管理器或 Docker 手动安装 | 未自动安装且仅限域名 | 安装发行版本或使用您的包管理器。使用 `amass enum -d example.com` 样式的目标。一旦您配置了提供商密钥,许多更丰富的数据源会运行得更好。 | [Amass 文档](https://owasp-amass.github.io/docs/) | | `PhoneInfo` / `PhoneInfoga` | 从官方二进制文件、Homebrew 或 Docker 手动安装 | 不是 pip 工具,且电话格式很重要 | 请遵循官方安装页面。使用完整的国际号码,例如 `+15551234567`。 | [PhoneInfoga 安装](https://sundowndev.github.io/phoneinfoga/getting-started/install/) | | `SpiderFoot` | 从 OSINT Hub 安装或使用 Docker | Windows 安装可能会在 `lxml` / 原生构建步骤上失败 | 如果您看到 `Microsoft Visual C++ 14.0 or greater is required`,请安装 Microsoft C++ Build Tools 并重试。如果您想减少 Python 依赖项问题,请改用上游文档中的 Docker 方式。 | [SpiderFoot 文档](https://www.spiderfoot.net/documentation/) | | `Maltego CE` | 手动从供应商处安装 | 带有帐户/登录流程的 GUI 应用程序 | 从 Maltego 下载,手动安装并登录。OSINT Hub 会链接到它,但不捆绑安装程序。 | [Maltego 文档](https://docs.maltego.com/) | | `Recon-ng` | 从 OSINT Hub 安装 | 框架模块可能仍需要自己的设置 | 核心框架可以顺利安装,但许多市场模块需要 API 密钥或额外依赖项。当模块无法运行时,请在 Recon-ng 内部使用 `marketplace info `。 | [Recon-ng 入门](https://github.com/lanmaster53/recon-ng/wiki/Getting-Started) | | `Shodan CLI` | 从 OSINT Hub 安装 | API 密钥未初始化或 Python runtime 不匹配 | 安装后,运行 `shodan init YOUR_API_KEY`。如果启动失败并出现 `pkg_resources` 或类似的打包错误,请改为在 Python `3.11` runtime 内重新安装,而不是使用更新的全局 Python。 | [Shodan CLI 入门](https://help.shodan.io/command-line-interface/1-getting-started) | | `Hunter.io` | 目前仅提供文档 | 没有捆绑的独立 CLI | Hunter 是 API 优先的。创建一个 Hunter 帐户,获取 API 密钥,并在您自己的包装器或未来的 OSINT Hub 集成中使用官方 API endpoint。 | [Hunter API 文档](https://hunter.io/api-documentation/) | | `HaveIBeenPwned` / `h8mail` | 从 OSINT Hub 安装 | 目标类型错误 | 此工具期望的是邮箱地址,而不是人名或用户名。一些额外的泄露来源也需要它们自己的 API 密钥或配置条目。 | [h8mail 项目](https://github.com/khast3x/h8mail) | | `Instaloader` | 从 OSINT Hub 安装 | 登录/会话问题和速率限制 | 使用 Instagram 个人资料或受支持的 Instagram 目标。如果匿名抓取受限请使用 `--login` 并保留保存的会话文件。如果遇到 `429` 或速率限制消息,请等待并重用同一会话。 | [Instaloader 安装](https://instaloader.github.io/installation.html) | | `Twint` | 如果可以,从 OSINT Hub 安装,否则视为实验性 | 旧的依赖堆栈和 Windows 构建失败 | 在此项目中,在构建原生依赖项(例如 `cchardet`)时,Windows 安装可能会失败。优先使用 Python `3.11`,如果上游 pip 安装失败,请准备好使用单独的手动或基于 Docker 的设置。 | [Twint 设置](https://github.com/twintproject/twint/wiki/Setup) | | `GitHub Recon` / `github-dorks` | 从 OSINT Hub 安装 | 旧的依赖堆栈和缺少 GitHub 身份验证 | 如果工具在非常新的 Python 上抛出导入错误,请退回到受管理的 Python `3.11` runtime。为了获得更好的结果和更少的速率限制问题,在使用上游工具时请提供 GitHub 身份验证。 | [GitHub Dorks 仓库](https://github.com/techgaun/github-dorks) | | `Metagoofil` | 不要依赖捆绑的 runtime | 旧的 Python 2 代码 | 该上游项目已过时,并在 OSINT Hub 中被标记为 `UNSUPPORTED`,因为它无法在受管理的 Python 3 runtime 上运行。如果确实需要,请使用其他元数据工作流(如 ExifTool 或 FOCA),或者将 Metagoofil 隔离在旧版实验室/VM 中。 | [Metagoofil 仓库](https://github.com/laramies/metagoofil) | | `FOCA` | 在 Windows 上手动安装 | 仅限 Windows 的 GUI 工作流 | 从其官方项目页面下载 FOCA 并在 Windows 上手动运行。它并未作为 Python 工具捆绑在 OSINT Hub 中。 | [FOCA 仓库](https://github.com/ElevenPaths/FOCA) | ### 快速的“错误目标”检查 如果工具安装正常但仍然“什么也没做”,请首先检查目标类型: - 将 `Sherlock`、`SocialScan`、`Instaloader` 或 `GitHub Recon` 用于用户名或社交目标。 - 将 `theHarvester` 或 `Amass` 用于域名。 - 将 `Nmap` 用于 IP 或主机名。 - 将 `ExifTool` 或 `FOCA` 用于文件、目录或文档元数据工作流。 - 将 `PhoneInfoga` 用于带国家代码的完整电话号码。 - 将 `h8mail` 用于邮箱地址。 ## 工作原理 ### 1. 工具注册表 OSINT Hub 维护着一个包含流行 OSINT 工具的精选注册表,具有: - 自动检测安装方法 - 简化的参数映射 - 使用示例 - 文档链接 ### 2. 安装管理器 ### 3. 统一运行器 无需记住复杂的命令: **没有 OSINT Hub 时:** ``` sherlock username123 --print --timeout 10 --output all # 需要记住每个工具的 flags 和 syntax 变更 ``` **使用 OSINT Hub 时:** ``` GUI: Fill in form fields: Username: username123 [✓] Print output Timeout: 10 OR CLI: python3 cli.py run sherlock --username username123 --print True --timeout 10 ``` ### 4. 结果管理 所有扫描结果都会自动: - 带有时间戳保存 - 按工具分类 - 可搜索和过滤 - 可导出为多种格式 ## 可用工具 | 工具 | 用途 | 类别 | |------|---------|----------| | **Sherlock** | 跨 300+ 网站搜索用户名 | 社交媒体 | | **theHarvester** | 邮箱、子域名和姓名抓取 | 邮箱情报 | | **SpiderFoot** | 模块化 OSINT 自动化 | 一体化 | | **Maltego CE** | 可视化链接分析 | 一体化 | | **Recon-ng** | Web 侦察框架 | 一体化 | | **Shodan CLI** | 搜索连接到互联网的设备 | IP 与地理位置 | | **Hunter.io** | 专业的邮箱查找工具 | 邮箱情报 | | **HaveIBeenPwned** | 检查数据泄露 | 泄露数据 | | **Instaloader** | 下载 Instagram 内容 | 社交媒体 | | **Twint** | 无限制的 Twitter 抓取 | 社交媒体 | | **GitHub Recon** | GitHub 情报收集 | 社交媒体 | | **Amass** | DNS 枚举 | 域名与 DNS | | **Nmap** | 网络扫描 | 网络扫描 | | **ExifTool** | 元数据提取 | 图像元数据 | | **PhoneInfo** | 电话号码查询 | 电话号码 | | **Metagoofil** | 文档元数据收集 | 图像元数据 | | **FOCA** | 隐藏的文档信息 | 图像元数据 | | **SocialScan** | 检查用户名/邮箱可用性 | 社交媒体 | *会定期添加更多工具* ## 目录结构 ``` OSINT Hub/ |-- main.py # Main launcher (GUI by default) |-- main-gui.py # GUI-only launcher |-- cli.py # CLI interface |-- requirements.txt # Python dependencies |-- setup.py # Installer script |-- README.md # This file |-- LICENSE # License file |-- osinthub/ # Core package | |-- __init__.py | |-- tools/ | | `-- registry.py # Tool definitions | |-- core/ | | |-- tool_manager.py # Installation and execution | | |-- results_manager.py # Results handling | | `-- config_manager.py # Settings management | `-- gui/ | `-- main_window.py # GUI application |-- tools/ # Installed tools directory |-- config/ # Configuration files `-- output/ # Default output directory ``` ## 配置 ### GUI 设置 通过 GUI 访问设置: - 主题(深色/浅色) - 强调色 - 结果存储位置 - 自动导出偏好设置 ### CLI 配置 编辑 `~/.osinthub/config/config.json`: ``` { "theme": "dark", "accent_color": "blue", "auto_check_updates": true, "save_results": true, "results_limit": 1000, "default_export_format": "json", "timeout": 300, "max_threads": 3 } ``` ## 给初学者的提示 ### 入门指南 1. **启动应用程序**:`python3 main.py` 2. **浏览工具**:使用分类侧边栏 3. **安装工具**:点击任意工具卡片上的“Install”按钮 4. **填写表单**:输入必需的参数(应用程序会引导您) 5. **运行它**:点击“Run Tool”并等待结果 6. **查看结果**:点击侧边栏中的“Results” ### 推荐首次尝试的工具 **Sherlock**(用户名搜索): - 安装它 - 输入用户名(例如,“john_doe”) - 点击运行 - 查看哪些社交媒体帐户使用了该用户名 ### 最佳实践 - 在使用复杂工具之前,先从简单的工具开始 - 运行前阅读工具说明 - 查看“Examples”部分以获取灵感 - 在结果标签页中检查您的结果 - 导出结果以用于报告或分享 ## 给高级用户的提示 ### 使用 CLI 编写脚本 ``` # 批量扫描多个用户名 for user in users.txt; do python3 cli.py run sherlock --username "$user" >> results.log done # 每天 Export 所有结果到 CSV python3 cli.py export --format csv --output "backup_$(date +%Y%m%d).csv" ``` ### 与其他工具集成 结果以 JSON 文件的形式存储在 `~/.osinthub/results/` 中。您可以: - 使用 jq 解析它们 - 导入到 Maltego - 输入到 SIEM 系统中 ### 添加自定义工具 扩展 `osinthub/tools/registry.py` 以添加您自己的工具: ``` self._tools["mytool"] = OSINTTool( id="mytool", name="My Tool", description="Description", category=ToolCategory.SOCIAL_MEDIA, installation_method=InstallationMethod.PIP, install_command="pip install mytool", run_command="mytool", parameters=[...] ) ``` ## 故障排除 ### GUI 无法启动 ``` Error: No module named 'customtkinter' ``` 修复方法: ``` pip install customtkinter ``` ### 工具安装失败 大多数工具需要互联网和正确的 Python 版本。请检查: ``` python3 --version # Should be 3.8+ pip3 --version ``` ### SocialScan 显示 DNS 或连接错误 错误示例: ``` ClientConnectorDNSError Could not contact DNS servers Cannot connect to host ...:443 ``` 这意味着: - OSINT Hub 正确启动了 SocialScan,但 PC 无法访问目标站点。 - 这通常是本地 DNS、防火墙、代理、VPN、杀毒软件或出站网络限制问题。 在 Windows 上需要检查的内容: ``` nslookup github.com Test-NetConnection github.com -Port 443 ``` 如果这些操作失败: - 请先修复 PC 网络或 DNS 设置 - 确认机器可以解析域名并访问 HTTPS 站点后,重试 SocialScan - 如果您处于受限网络中,请尝试其他 DNS 服务器或其他连接 ### 权限被拒绝错误 某些工具需要 sudo(基于 APT 的系统)。请手动安装它们: ``` sudo apt-get install nmap sudo apt-get install amass ``` ### 结果未保存 检查写入权限: ``` ls -la ~/.osinthub/ ``` ## 安全与道德 **重要提示**:OSINT Hub 仅用于合法的情报收集。 - 仅调查您拥有或获得明确许可分析的目标 - 尊重隐私和数据保护法 - 切勿用于骚扰、跟踪或非法活动 - 您需对自己的行为负责 ## 作者 **Daniel Depaor** ([@x1n-Q](https://github.com/x1n-Q)) ## 许可证 MIT 许可证 - 详情请参阅 [LICENSE](LICENSE) 文件。
标签:Blue Team, 网络安全研究, 逆向工具