
oxo v2.9.8
Orquestador modular de escaneo de seguridad que combina agentes especializados para detección de vulnerabilidades, reconocimiento y huellas digitales en redes, aplicaciones web, aplicaciones móviles y APIs.
OXO Scan Orchestration Engine
OXO es un framework de escaneo de seguridad diseñado para la modularidad, la escalabilidad y la simplicidad. Es de código abierto y está mantenido por Ostorlab.
OXO Engine combina herramientas especializadas para trabajar de forma cohesionada con el fin de encontrar vulnerabilidades y realizar acciones como reconocimiento, enumeración y fingerprinting.

Características principales
- Modular y escalable: Combina fácilmente múltiples agentes especializados para realizar escaneos exhaustivos.
- Amplio soporte de activos: Escanea desde direcciones IP y dominios hasta aplicaciones móviles (Android, iOS, HarmonyOS) y esquemas de API.
- Tienda de agentes: Accede a una biblioteca en crecimiento de agentes oficiales y de la comunidad para herramientas de seguridad populares.
- Extensible: Soporte integrado para crear y publicar tus propios agentes usando un framework simple basado en Python.
- API First: Incluye una API GraphQL para una fácil integración en pipelines de CI/CD y otros flujos de trabajo automatizados.
Requisitos
Se requiere Docker para ejecutar escaneos localmente. Para instalar Docker, sigue estas instrucciones.
Instalación
OXO se distribuye como un paquete de Python en PyPI. Para instalarlo, simplemente ejecuta el siguiente comando si ya tienes pip
instalado.
pip install -U ostorlab
Primeros pasos
OXO incluye una tienda que cuenta con docenas de agentes, desde agentes de escaneo de red como Nmap, Nuclei o Tsunami, escáneres web como ZAP, herramientas de fingerprinting web como WhatWeb y Wappalyzer, herramientas de fuerza bruta de DNS como Subfinder y Dnsx, escaneo de archivos maliciosos como VirusTotal, y mucho más.
Para ejecutar cualquiera de estas herramientas combinadas, simplemente ejecuta el siguiente comando:
Se puede acceder a la CLI de OXO usando los comandos
oxooostorlab.
oxo scan run --install --agent agent/ostorlab/nmap --agent agent/ostorlab/tsunami --agent agent/ostorlab/nuclei ip 8.8.8.8
Este comando descargará e instalará los siguientes agentes de escaneo:
Escaneará la dirección IP objetivo 8.8.8.8.
Los agentes se distribuyen como imágenes Docker estándar.
Gestión de escaneos
Para comprobar el estado del escaneo, ejecuta:
oxo scan list
Una vez completado el escaneo, para acceder a los resultados del escaneo, ejecuta:
oxo vulnz list --scan-id <scan-id>
oxo vulnz describe --vuln-id <vuln-id>
Para detener un escaneo en ejecución, ejecuta:
oxo scan stop --scan-id <scan-id>
Imagen Docker
Para ejecutar oxo en un contenedor, puedes usar la imagen disponible públicamente y ejecutar el siguiente comando:
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
Notas:
- El comando comienza directamente con:
scan run, esto se debe a que la imagenostorlab/oxotieneoxocomoentrypoint. - Es importante montar el socket de Docker para que OXO pueda crear agentes en la máquina host.
Registros del escáner On-Prem
Al ejecutar OXO como un escáner on-prem, usa --persist-logs para escribir los registros del escáner en disco:
oxo scanner --scanner-id <scanner-uuid> --persist-logs
Por defecto, los registros se escriben en ~/.ostorlab/scanner.log. Para elegir otro archivo:
oxo scanner --scanner-id <scanner-uuid> --persist-logs --log-file /var/log/ostorlab/scanner.log
Para cambiar la verbosidad de los registros persistidos:
oxo scanner --scanner-id <scanner-uuid> --persist-logs --log-level DEBUG
Activos
OXO admite el escaneo de múltiples tipos de activos, lo que permite una cobertura de seguridad exhaustiva en diferentes plataformas y protocolos.
| Categoría | Activo | Descripción |
|---|---|---|
| Red | ip | Dirección IP o rango de IP (v4 y v6). |
domain-name | Nombre de dominio. | |
| Web | link | Enlace web, que acepta una URL, método, cabeceras y cuerpo de la petición. |
api-schema | Esquema de API (OpenAPI, GraphQL, etc.). | |
| Móvil | android-apk / android-aab | Archivos de paquete de Android (.APK, .AAB). |
android-store | Aplicación de Android en Google Play Store. | |
ios-ipa | Archivo de paquete de iOS (.IPA). | |
ios-store | Aplicación de iOS en la Apple App Store. | |
ios-testflight | Aplicación de iOS en TestFlight. | |
harmonyos-apk / harmonyos-hap | Archivos de paquete de HarmonyOS. | |
| Otros | file | Archivo genérico. |
phone-number | Número de teléfono. | |
agent | Metaescaneo de un agente. |
La tienda
OXO lista todos los agentes en una tienda pública donde puedes buscar y también publicar tus propios agentes.

Publica tu primer agente
Para escribir tu primer agente, puedes consultar un tutorial completo aquí.
Los pasos son básicamente los siguientes:
- Clona un agente plantilla con todos los archivos ya configurados.
- Modifica el archivo
template_agent.pypara añadir tu lógica. - Modifica el
Dockerfileañadiendo cualquier paso de compilación adicional. - Modifica el
ostorlab.yamlañadiendo selectores, documentación, imagen y licencia. - Publícalo en la tienda.
Una vez que hayas escrito tu agente, puedes publicarlo en la tienda para que otros lo usen y lo descubran. La tienda se encargará de la compilación del agente y recogerá automáticamente las nuevas versiones de tu repositorio Git.

Ideas de agentes para construir
Implementaciones de herramientas populares como: