Jihashtag/osaa
GitHub: Jihashtag/osaa
一款本地化、AI 辅助的递归 OSINT 融合引擎,并行调度多个情报工具并利用本地大模型进行身份解析与调查线索生成。
Stars: 0 | Forks: 0
# Osint Scraper AI 辅助 (osaa)
`osaa` 工具是一个递归、模块化的 OSINT 融合引擎,专为本地身份解析而设计。它并行触发多个 OSINT 工具,聚合发现的 artifacts,并利用本地 LLM 来识别身份并生成调查线索。
## 架构
- **`Orchestrator`**:中央控制器 (`osaa/orchestrator.py`)。管理输入摄取、connector 调度、身份融合以及递归发现循环。
- **`Connectors`**:用于异构 OSINT 工具的标准化接口 (`osaa/connectors/base.py`)。
- **`HoleheConnector`**:封装 Holehe 电子邮件 OSINT 工具,解析结构化的 JSON 输出。
- **`HolmesConnector`**:通过库导入与 `python_holmes` 框架进行交互。
- **`TookieConnector`**:执行 Tookie-OSINT CLI 并处理输出重定向。
- **`TorConnector`** & **`BrowserConnector`**:支持深度网络抓取和 headless browser 自动化。
- **`FusionEngine`**:概率身份融合引擎 (`osaa/fusion_engine.py`)。使用 `rapidfuzz` 和来源可靠性加权实现基于相似度的链接。
- **`KnowledgeSystem`**:认证事实库 (`osaa/knowledge_loader.py`)。将 LLM 分析锚定在已验证的目标数据上,以防止幻觉。
- **`AIAnalyst`**:通过自动检测 `gemini` CLI、`LM Studio` 或 `Ollama` 来提供本地 AI 推理。
- **`MasterIdentity`**:代表被调查对象的统一数据结构。
## 安装与设置
1. **环境设置**:
# 从项目根目录
./setup_all.sh
2. **本地 AI 模型**:使用 `--ai-agent` 选择一个后端。
- **CLI 后端**(每次调用生成一个进程):`lms`、`ollama`、`gemini`。
- **持久 HTTP 后端**(复用正在运行的服务器 — *推荐*,由于报告需要进行多次调用,因此速度快得多):`ollama-http` (Ollama HTTP API,
默认 `http://localhost:11434`) 和 `lms-server` (LM Studio
OpenAI 兼容服务器,默认 `http://localhost:1234`)。使用
`--ai-endpoint` 覆盖 URL。
- **模型质量**:1B 模型用于分析太弱。现在默认使用约 4B 的本地模型
(对于 LM Studio 是 `google/gemma-3n-e4b`)。使用 `--model` 进行覆盖;如果
您更看重速度而非深度,请使用较小的模型。
## 用法
```
from orchestrator import Orchestrator
# 示例用法
orch = Orchestrator()
targets = [{"type": "email", "value": "target@example.com"}, {"type": "username", "value": "target_user"}]
await orch.run_full_pipeline(targets)
```
### CLI 执行
```
python3 main.py --username target_user
# 自由文本知识 + 快速持久化后端,首先预览计划:
python3 main.py --username target_user --name "Jane Doe" \
--knowledge "French medical student in Lille, ~20s" \
--ai-agent ollama-http --dry-run
```
Flags: `--name`、`--email`、`--ratio`、`--proxy_list`、
`--knowledge-file` / `--knowledge ""`、
`--ai-agent {lms,ollama,gemini,ollama-http,lms-server}`、`--model`、
`--ai-endpoint`、`--debug`、`--dry-run`(打印执行计划并退出,
不进行任何网络 I/O)。
## 测试
该项目使用 **pytest** 运行其测试(异步测试套件使用 `pytest-asyncio`)。
测试既位于顶层(`test_*.py`),也位于 `tests/` 目录下。
`conftest.py` 将包目录放入 `sys.path` 中,并且 `pytest.ini`
配置了发现机制和标记,因此从项目目录进行裸调用即可生效:
### 运行测试
```
# 完全离线套件(默认取消选择实时网络测试):
python3 -m pytest
# 包含访问实时互联网的测试(DuckDuckGo、proxies、Tor):
python3 -m pytest -m network
```
需要网络访问权限的测试被标记为 `@pytest.mark.network`,并且默认情况下会跳过,以保持测试套件的快速和确定性(CI 运行的也是如此)。
### 添加新工具
要添加新工具,请在 `osaa/connectors/` 中继承 `BaseConnector`,并实现 `run` 方法以返回 `DiscoveryResult` 对象列表。
## 仅限本地执行
此工具严格仅限本地。不使用任何外部云 API。它默认使用检测到的本地 LLM 运行器(Gemini CLI 或 Ollama)。
## 免责声明
本项目**仅用于教育目的**。用户有责任确保其对该工具的使用符合所有适用的法律、服务条款和道德准则。
标签:AI风险缓解, BeEF, ESC4, OSINT, 安全规则引擎, 情报收集, 数据泄露, 本地大模型, 漏洞研究, 爬虫, 自动化编排, 身份识别, 逆向工具