txltedxgod/osint-hub

GitHub: txltedxgod/osint-hub

基于 FastAPI 构建的 OSINT Web 应用,集成 Sherlock 和 Maigret 引擎实现跨平台用户名搜索,支持多用户、历史记录和 PDF 报告导出。

Stars: 1 | Forks: 0

# ◉ OSINT Hub v1 **OSINT Hub** —— 一款 Web 应用程序,可借助 **Sherlock** 和 **Maigret** 这两款流行的引擎,根据用户名在数百个网站上查找账号。支持多用户身份验证、查询历史记录、导出 PDF 报告,并可通过 Docker 使用一条命令启动。 ## ✨ 功能 * 🔐 **身份验证** —— 支持注册和登录,允许多用户,使用签名的 cookie 管理会话,密码以 PBKDF2-HMAC-SHA256 格式存储。 * 🔎 **username 搜索** —— 单个输入框,可选择引擎,结果按工具分组显示。 * 🕵️ **Sherlock** 和 🧹 **Maigret** —— 作为独立进程并行运行;如果未安装某引擎,应用不会崩溃,而是将其标记为 offline。 * 📜 **查询历史记录** —— 每次搜索及找到的账号都会被保存;支持查看、重新访问和删除。 * 🗄️ **SQLite** —— 通过 SQLAlchemy 2.0 + aiosqlite 实现异步访问。 * 📄 **导出 PDF** —— 可为任何查询生成清晰的报告(reportlab)。 * 🐳 **Docker** —— 执行 `docker compose up -d --build`,服务即可准备就绪。 \--- ## 🧩 技术栈 |技术|用途| |-|-| |**Python 3.12+**|开发语言| |**FastAPI + Uvicorn**|Web 框架和 ASGI 服务器| |**Jinja2**|模板(服务端渲染)| |**SQLAlchemy 2.0 (async) + aiosqlite**|ORM 和 SQLite 存储| |**Starlette SessionMiddleware**|基于签名 cookie 的会话| |**reportlab**|生成 PDF| |**Sherlock / Maigret**|username 搜索引擎| |**Docker / docker compose**|容器化| \--- ## 🚀 快速开始(Docker) ``` # 1. 配置环境 cp .env.example .env # 务必将 SECRET\_KEY 更改为一个长的随机字符串: # python -c "import secrets; print(secrets.token\_hex(32))" # 2. 构建并运行 docker compose up -d --build # 3. 日志 docker compose logs -f web ``` 打开 **http://localhost:8000** → 登录页面。第一个注册的账号将成为管理员。 停止服务:`docker compose down`(`./data` 中的数据会保留)。 \--- ## 💻 不使用 Docker 运行(开发) ``` python -m venv .venv \&\& source .venv/bin/activate # Windows: .venv\\Scripts\\activate pip install -r requirements.txt cp .env.example .env # поменяйте SECRET\_KEY uvicorn app.main:app --reload ``` SQLite 表会在首次运行时自动创建。 \--- ## 🗺️ 项目结构 ``` osint-hub/ ├── app/ │ ├── main.py # точка входа FastAPI, middleware, lifespan │ ├── config.py # настройки (pydantic-settings) │ ├── database.py # асинхронный engine + сессии │ ├── models.py # User / Search / Result │ ├── security.py # хеширование паролей │ ├── dependencies.py # текущий пользователь │ ├── templating.py # общий Jinja2 │ ├── routers/ # auth, search, history │ ├── services/ # osint (движки), search\_service, pdf\_service │ ├── templates/ # base, login, register, dashboard, history… │ └── static/styles.css # тёмная тема ├── data/ # SQLite-база и PDF-отчёты (volume) ├── Dockerfile ├── docker-compose.yml ├── requirements.txt ├── .env.example └── README.md ``` \--- ## 🗜️ 数据库 Schema ``` erDiagram USERS ||--o{ SEARCHES : runs SEARCHES ||--o{ RESULTS : contains USERS { int id PK string username string password\_hash string salt bool is\_admin datetime created\_at } SEARCHES { int id PK int user\_id FK string query string tools string status int total\_found datetime created\_at } RESULTS { int id PK int search\_id FK string tool string site\_name string url } ``` \--- ## 🛣️ 路由 |方法|路径|描述| |-|-|-| |GET/POST|`/register`|注册| |GET/POST|`/login`|登录| |GET|`/logout`|退出| |GET|`/`|仪表板 + 搜索表单| |POST|`/search`|启动搜索| |GET|`/history`|查询列表| |GET|`/history/{id}`|查询详情| |GET|`/history/{id}/pdf`|导出 PDF| |POST|`/history/{id}/delete`|删除| \--- ## ⚙️ 环境变量 |变量|默认值|描述| |-|-|-| |`SECRET\_KEY`|—|会话签名密钥(**务必更改**)| |`DATABASE\_URL`|`sqlite+aiosqlite:///./data/osint\_hub.db`|连接字符串| |`REPORTS\_DIR`|`./data/reports`|报告文件夹| |`SHERLOCK\_TIMEOUT`|`180`|Sherlock 超时时间,秒| |`MAIGRET\_TIMEOUT`|`240`|Maigret 超时时间,秒| |`SITE\_TIMEOUT`|`15`|单站点超时时间,秒| |`SESSION\_MAX\_AGE`|`604800`|会话有效期,秒| |`LOG\_LEVEL`|`INFO`|日志级别| \--- ## 📝 许可证 MIT —— 详见 [LICENSE](LICENSE)。
标签:AV绕过, Docker, ESC4, FastAPI, OSINT, 安全防御评估, 实时处理, 用户名搜索, 请求拦截, 逆向工具