
oxo v2.9.3
模块化安全扫描编排器,结合了专门用于漏洞检测、侦察和指纹识别的代理,覆盖网络、Web应用、移动应用和API。
OXO 扫描编排引擎
OXO 是一个为模块化、可扩展性和简洁性而构建的安全扫描框架。它是开源的,由 Ostorlab 维护。
OXO 引擎将专用工具协同组合,以发现漏洞并执行侦察、枚举和指纹识别等操作。

主要特性
- 模块化且可扩展:轻松组合多个专用 agent 以执行全面扫描。
- 广泛的资产支持:可扫描从 IP 地址和域名到移动应用(Android、iOS、HarmonyOS)以及 API schema 的任何内容。
- Agent 商店:访问不断增长的社区和官方 agent 库,涵盖流行的安全工具。
- 可扩展:内置支持使用简单的基于 Python 的框架创建和发布你自己的 agent。
- API 优先:提供 GraphQL API,便于集成到 CI/CD 流水线和其他自动化工作流中。
要求
在本地运行扫描需要 Docker。要安装 Docker,请遵循这些 说明。
安装
OXO 作为 PyPI 上的 Python 包发布。如果你已经安装了 pip,只需运行以下命令即可安装。
pip install -U ostorlab
快速开始
OXO 附带一个商店,拥有数十个 agent,包括网络扫描 agent(如 Nmap、Nuclei 或 Tsunami)、 Web 扫描器(如 ZAP)、Web 指纹识别工具(如 WhatWeb 和 Wappalyzer)、DNS 暴力破解工具(如 Subfinder 和 Dnsx)、 恶意软件文件扫描(如 VirusTotal)等等。
要组合运行这些工具中的任何一个,只需运行以下命令:
OXO CLI 可通过
oxo或ostorlab命令访问。
oxo scan run --install --agent agent/ostorlab/nmap --agent agent/ostorlab/tsunami --agent agent/ostorlab/nuclei ip 8.8.8.8
此命令将下载并安装以下扫描 agent:
它将扫描目标 IP 地址 8.8.8.8。
Agent 以标准 Docker 镜像的形式发布。
扫描管理
要检查扫描状态,请运行:
oxo scan list
扫描完成后,要访问扫描结果,请运行:
oxo vulnz list --scan-id <scan-id>
oxo vulnz describe --vuln-id <vuln-id>
要停止正在运行的扫描,请运行:
oxo scan stop --scan-id <scan-id>
Docker 镜像
要在容器中运行 oxo,你可以使用公开可用的镜像并运行以下命令:
docker run -v /var/run/docker.sock:/var/run/docker.sock ostorlab/oxo:latest scan run --install --agent agent/ostorlab/nmap ip 8.8.8.8
注意:
- 命令直接以
scan run开头,这是因为ostorlab/oxo镜像将oxo作为entrypoint。 - 挂载 Docker socket 非常重要,这样 OXO 才能在宿主机上创建 agent。
本地部署扫描器日志
将 OXO 作为本地部署扫描器运行时,使用 --persist-logs 将扫描器日志写入磁盘:
oxo scanner --scanner-id <scanner-uuid> --persist-logs
默认情况下,日志写入 ~/.ostorlab/scanner.log。要选择其他文件:
oxo scanner --scanner-id <scanner-uuid> --persist-logs --log-file /var/log/ostorlab/scanner.log
要更改持久化日志的详细程度:
oxo scanner --scanner-id <scanner-uuid> --persist-logs --log-level DEBUG
资产
OXO 支持扫描多种资产类型,从而在不同平台和协议上提供全面的安全覆盖。
| 类别 | 资产 | 描述 |
|---|---|---|
| 网络 | ip | IP 地址或 IP 范围(v4 和 v6)。 |
domain-name | 域名。 | |
| Web | link | Web 链接,接受 URL、方法、标头和请求体。 |
api-schema | API schema(OpenAPI、GraphQL 等)。 | |
| 移动 | android-apk / android-aab | Android 包文件(.APK、.AAB)。 |
android-store | Google Play 商店中的 Android 应用。 | |
ios-ipa | iOS 包文件(.IPA)。 | |
ios-store | Apple App Store 中的 iOS 应用。 | |
ios-testflight | TestFlight 中的 iOS 应用。 | |
harmonyos-apk / harmonyos-hap | HarmonyOS 包文件。 | |
| 其他 | file | 通用文件。 |
phone-number | 电话号码。 | |
agent | 对 agent 进行元扫描。 |
商店
OXO 在公共商店中列出所有 agent,你可以在其中搜索并发布你自己的 agent。

发布你的第一个 Agent
要编写你的第一个 agent,你可以查看完整 教程 此处。
步骤大致如下:
- 克隆一个已设置好所有文件的模板 agent。
- 修改
template_agent.py文件以添加你的逻辑。 - 修改
Dockerfile,添加任何额外的构建步骤。 - 修改
ostorlab.yaml,添加选择器、文档、镜像和许可证。 - 将其发布到商店。
编写完 agent 后,你可以将其发布到商店,供他人使用和发现。商店 将处理 agent 构建,并自动从你的 Git 仓库获取新版本。

可构建的 Agent 想法
流行工具的实现,例如:
semgrep 用于源代码扫描。- nbtscan:扫描目标网络上开放的 NetBIOS 名称服务器。
- onesixtyone:快速扫描器,用于发现公开暴露的 SNMP 服务。
- Retire.js:检测使用已知漏洞 JavaScript 库的扫描器。
snallygaster:发现 HTTP 服务器上的文件泄露和其他安全问题。testssl.sh:识别各种 TLS/SSL 弱点,包括 Heartbleed、CRIME 和 ROBOT。TruffleHog:在 Git 仓库中搜索高熵字符串和机密,深入挖掘提交历史。- cve-bin-tool:扫描二进制文件中的易受攻击组件。
- XSStrike:具有生成式 payload 的 XSS Web 漏洞扫描器。
Subjack:子域接管扫描工具。- DnsReaper:子域接管扫描工具。
- Gitleaks:用于检测和防止硬编码机密的 SAST 工具。
- ffuf:用 Go 编写的快速 Web fuzzer。
- Gobuster:用于暴力破解 URI、DNS 子域等的工具。
致谢
作为一个处于快速发展领域的开源项目,我们始终欢迎贡献,无论是新功能、改进的基础设施,还是更好的文档。 请参阅 CONTRIBUTING.md 开始。
我们要感谢以下贡献者帮助 OXO 成为更好的工具: