OXO 是一个为模块化、可扩展性和简洁性而构建的安全扫描框架。它是开源的,由 Ostorlab 维护。
OXO 引擎将专用工具协同组合,以发现漏洞并执行侦察、枚举和指纹识别等操作。

在本地运行扫描需要 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>
要在容器中运行 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。将 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,你可以查看完整 教程 此处。
步骤大致如下:
template_agent.py 文件以添加你的逻辑。Dockerfile,添加任何额外的构建步骤。ostorlab.yaml,添加选择器、文档、镜像和许可证。编写完 agent 后,你可以将其发布到商店,供他人使用和发现。商店 将处理 agent 构建,并自动从你的 Git 仓库获取新版本。

流行工具的实现,例如:
作为一个处于快速发展领域的开源项目,我们始终欢迎贡献,无论是新功能、改进的基础设施,还是更好的文档。 请参阅 CONTRIBUTING.md 开始。
我们要感谢以下贡献者帮助 OXO 成为更好的工具: