x1n-Q/OSINT-Hub
GitHub: x1n-Q/OSINT-Hub
OSINT-Hub 是一个集成了多种公开情报收集工具的一站式 OSINT 框架,通过统一 GUI 和 CLI 简化了开源调查流程。
Stars: 2 | Forks: 0
# OSINT Hub - 一站式 OSINT 框架
[](https://pypi.org/project/osinthub/)
[](https://pypistats.org/packages/osinthub)
[](https://pypi.org/project/osinthub/)
[](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, 网络安全研究, 逆向工具