somaketu/utsu

GitHub: somaketu/utsu

UTSU 是一个结合异步实时探测、Rust 驱动的 JS 分析引擎与本地 LLM 智能分类的自动化攻击面情报平台。

Stars: 1 | Forks: 0

# UTSU ### 攻击面情报平台 自动化侦察 • 资产发现 • JavaScript 情报 • AI 辅助的漏洞分析

### 持续发现。本地情报。可操作的发现结果。 URO 是一个专注于安全的攻击面情报平台,旨在持续发现面向互联网的资产,提取应用情报,并利用本地 AI 驱动的分析来确定攻击机会的优先级。 URO 专为渗透测试人员、红队、安全研究人员和企业安全团队打造,将侦察、丰富、分析和分类整合到一个单一的自动化工作流中。
# 执行摘要 现代组织运营着日益复杂的外部攻击面,涵盖云基础设施、Web 应用程序、API、第三方集成以及快速变化的数字资产。 传统的侦察工作流通常依赖于碎片化的工具、不一致的数据存储和难以在大型环境中扩展的手动分析过程。 URO 通过统一的情报 pipeline 来应对这些挑战,该 pipeline 能够: - 持续发现外部资产 - 随时间跟踪攻击面漂移 - 识别暴露的应用程序功能 - 从 JavaScript 资产中提取情报 - 检测 secrets 和敏感引用 - 使用本地 AI 推理生成上下文攻击假设 - 在各项任务中保持持久的历史可见性 与依赖云的平台不同,URO 采用隐私优先的架构设计,所有情报收集和 AI 处理都可以完全保留在本地。 # 平台功能 ## 持续资产发现 对目标域名执行被动侦察,并维护已发现资产的历史清单。 ## 基于增量的情报 识别扫描之间新暴露的资产,并将分析重点放在有意义的环境变化上,而不是重复处理已知的基础设施。 ## 实时服务分析 通过 HTTP/S 探测验证已发现的资产,并收集可操作的元数据,包括: - 状态码 - 响应标题 - 内容长度 - 重定向链 - 服务指纹 ## JavaScript 情报引擎 利用原生 Rust 驱动的分析引擎,能够提取: - API endpoint - 应用程序路由 - 身份验证流程 - 云服务引用 - 嵌入式 secrets - 访问 token - 配置工件 ## AI 辅助调查 通过由本地 Ollama 托管模型驱动的 LangGraph 工作流,生成上下文攻击假设和漏洞评估。 ## 隐私优先架构 保持对侦察数据的完全所有权,无需将资产、secrets 或发现结果传输给外部 AI 提供商。 # 功能矩阵 | 功能 | 描述 | |------------|-------------| | 资产发现 | 被动子域名枚举 | | 变更跟踪 | 感知增量的攻击面监控 | | 服务验证 | HTTP/S 探测和元数据收集 | | JavaScript 情报 | Endpoint、路由和 secret 提取 | | 本地 AI 分析 | Ollama 驱动的分类工作流 | | 持久化存储 | SQLite 情报仓库 | | 范围强制执行 | 基于配置文件的任务控制 | | 离线操作 | 无需云依赖 | | 原生性能 | Rust 驱动的分析引擎 | | 历史可见性 | 长期资产跟踪 | # 参考架构 URO 遵循模块化的情报生命周期,其中每个处理阶段都会丰富先前收集的数据,并将发现结果持久化到集中的情报仓库中。 ``` flowchart TD subgraph CLI["URO Command Interface"] SCAN["uro scan"] TRIAGE["uro triage"] HUNT["uro hunt"] end subgraph CONFIG["Configuration & Persistence"] ENV["Environment Configuration"] PROFILE["YAML Profiles"] RULES["Scope Rules"] DB["SQLite Intelligence Store"] end subgraph RECON["Phase 1 — Asset Discovery"] DISCOVER["Passive Reconnaissance"] SUBS["Discovered Assets"] end subgraph DELTA["Phase 2 — Change Analysis"] COMPARE["Delta Evaluation"] NEW["New Asset Queue"] end subgraph PROBE["Phase 3 — Service Validation"] LIVE["HTTP/S Probing"] META["Metadata Collection"] end subgraph ANALYSIS["Phase 4 — Intelligence Extraction"] JS["JavaScript Analysis"] RUST["Rust Processing Engine"] ROUTES["Endpoint Discovery"] SECRETS["Secret Detection"] end subgraph AI["AI Intelligence Layer"] GRAPH["LangGraph Workflow"] OLLAMA["Local LLM"] REPORT["Attack Surface Assessment"] end SCAN --> DISCOVER DISCOVER --> SUBS SUBS --> COMPARE COMPARE --> NEW NEW --> LIVE LIVE --> META META --> JS JS --> RUST RUST --> ROUTES RUST --> SECRETS ROUTES --> DB SECRETS --> DB META --> DB TRIAGE --> GRAPH HUNT --> GRAPH DB --> GRAPH RULES --> GRAPH GRAPH --> OLLAMA OLLAMA --> REPORT ENV --> PROFILE PROFILE --> RULES ``` # 核心设计原则 ## 持久化情报 URO 围绕持久化情报而非一次性的扫描结果构建。 每个发现的资产都会被进行历史跟踪,使操作人员能够识别基础设施漂移和新暴露的攻击面组件。 ## 增量驱动处理 重复扫描通过仅处理新发现的资产来避免不必要的分析。 这显著减少了执行时间,同时提高了操作效率。 ## 原生性能 JavaScript 分析是侦察中计算量最大的阶段之一。 URO 通过 PyO3 绑定利用 Rust,提供高性能的解析和提取功能,同时保持 Python 的编排灵活性。 ## 本地 AI 处理 所有 AI 工作流都可以通过 Ollama 托管的语言模型在本地执行。 敏感的侦察数据永远不会离开操作员的环境。 ## 感知范围的分析 任务配置文件和范围规则直接集成到 AI 工作流中,确保生成的发现结果与授权测试边界保持一致。 # 技术栈 | 层级 | 技术 | |---------|-----------| | 编排 | Python 3.11+ | | 性能引擎 | Rust 1.78+ | | 原生绑定 | PyO3 | | 构建系统 | Maturin | | AI 框架 | LangGraph | | Agent 运行时 | LangChain Core | | 本地 LLM | Ollama | | 验证 | Pydantic v2 | | 持久化 | SQLite | | 配置 | YAML + .env | # 项目结构 ``` uro/ │ ├── .env.example ├── pyproject.toml ├── Makefile │ ├── src-rust/ │ ├── Cargo.toml │ └── src/ │ └── lib.rs │ ├── profiles/ │ ├── data/ │ └── uro/ ├── cli/ ├── core/ ├── storage/ ├── probing/ ├── plugins/ │ ├── subdomain/ │ └── js_analysis/ ├── ai/ └── __init__.py ``` # 快速开始 ## 前置条件 | 需求 | 描述 | |------------|-------------| | Python 3.11+ | 运行时环境 | | Rust & Cargo | 原生扩展编译 | | Ollama | 本地 AI 后端 | ## 安装 Ollama ``` ollama pull llama3.2 ``` 验证安装: ``` ollama list ``` ## 安装说明 ### 克隆仓库 ``` git clone https://github.com/Atsukiiii01/uro.git cd uro ``` ### 创建虚拟环境 ``` python -m venv venv source venv/bin/activate # Windows venv\Scripts\activate ``` ### 配置环境 ``` cp .env.example .env ``` ### 安装依赖 ``` PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1 \ pip install -e ".[ai,dev]" ``` ### 验证安装 ``` uro --help ``` # 配置 ## 全局配置 `.env` 文件控制平台范围的行为。 ``` DATABASE_PATH=data/uro.db OLLAMA_BASE_URL=http://127.0.0.1:11434 DEFAULT_AI_MODEL=llama3.2 DEFAULT_PROBER_THREADS=10 ``` ## 任务配置文件 配置文件定义了特定于目标的执行参数。 ``` name: Example Program target: example.com scope_file: scope.txt threads: 15 ``` # 操作工作流 ## 阶段 1 — 发现 发现资产并丰富情报。 ``` uro scan example.com \ -p profiles/example.yaml ``` 功能: - 子域名枚举 - 资产收集 - 增量评估 - 服务验证 - JavaScript 分析 - 情报持久化 ## 阶段 2 — 调查 通过 AI 分类 pipeline 分析特定目标。 ``` uro triage \ checkout.example.com \ -p profiles/example.yaml ``` 功能: - Endpoint 分析 - Secret 关联 - 攻击路径生成 - 发现优先级排序 ## 阶段 3 — 狩猎模式 分析在侦察过程中发现的所有高价值资产。 ``` uro hunt \ -p profiles/example.yaml ``` 功能: - 批量分类 - 自动化优先级排序 - 漏洞假设生成 - 攻击面排名 # 工作流示例 ``` # 发现资产 uro scan example.com \ -p profiles/example.yaml # 调查目标 uro triage api.example.com \ -p profiles/example.yaml # 在所有候选者中进行搜寻 uro hunt \ -p profiles/example.yaml ``` # 开发 ## 重新构建原生扩展 ``` PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1 \ maturin develop --release ``` ## Python 质量控制 ``` ruff check . ruff format . ``` ## Rust 质量控制 ``` cargo fmt cargo clippy ``` # 安全注意事项 ## 授权使用 URO 专门用于: - 授权的渗透测试 - 安全研究 - 内部安全评估 - 批准的漏洞披露计划 操作员有责任确保所有活动符合适用的法律、合同义务和计划规则。 ## 数据保护 在使用默认的 Ollama 后端部署时,所有情报处理都保留在操作员的环境中。 侦察数据、提取的 secrets、发现的 endpoint 和生成的发现结果永远不会传输给第三方 AI 提供商。 ## 网络安全控制 探测子系统包含了旨在防止与以下内容交互的安全防护措施: - 本地主机接口 - RFC1918 私有网络 - 云元数据服务 - DNS 重绑定目标 示例包括: ``` 127.0.0.1 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16 169.254.169.254 ``` # 路线图 ### 计划中的增强功能 - 分布式侦察 Worker - 云资产枚举 - 可视化攻击面映射 - 资产风险评分 - 多 LLM 支持 - Headless 浏览器分析 - API Schema 发现 - 持续监控模式 # 为什么选择 URO? 现代攻击面不断演变。 安全团队需要的不仅仅是一次性的侦察快照。他们需要持久的可见性、历史背景和可操作的情报。 URO 将自动化发现、高性能分析和本地 AI 辅助推理结合到一个统一的攻击面情报平台中,能够将原始侦察数据转化为有意义的安全洞察。 # 许可证 根据 MIT 许可证授权。 有关更多信息,请参阅 LICENSE 文件。 ### 负责任的披露 URO 是一个安全研究平台。 在对您不拥有的系统、应用程序或基础设施进行测试活动之前,请务必获得明确的授权。 未经授权的测试可能违反法律、合同协议或计划政策。
标签:AI风险缓解, DLL 劫持, GitHub, 可视化界面, 大语言模型, 实时处理, 密码管理, 自动化侦察, 逆向工具