
Orchestrateur modulaire de scan de sécurité qui combine des agents spécialisés pour la détection de vulnérabilités, la reconnaissance et l'empreinte numérique à travers les réseaux, les applications web, les applications mobiles et les API.
OXO est un framework de scan de sécurité conçu pour la modularité, l'évolutivité et la simplicité. Il est open source et maintenu par Ostorlab.
Le moteur OXO combine des outils spécialisés qui travaillent de manière cohérente pour trouver des vulnérabilités et effectuer des actions telles que la reconnaissance, l'énumération et le fingerprinting.

Docker est requis pour exécuter des scans localement. Pour installer Docker, veuillez suivre ces instructions.
OXO est distribué sous forme de package Python sur PyPI. Pour l'installer, exécutez simplement la commande suivante si vous avez déjà pip
installé.
pip install -U ostorlab
OXO est livré avec un store qui compte des dizaines d'agents, allant des agents de scan réseau comme Nmap, Nuclei ou Tsunami, aux scanners web comme ZAP, aux outils de fingerprinting web comme WhatWeb et Wappalyzer, aux outils de brute-force DNS comme Subfinder et Dnsx, au scan de fichiers malveillants comme VirusTotal, et bien plus encore.
Pour exécuter n'importe lequel de ces outils combinés, exécutez simplement la commande suivante :
La CLI OXO est accessible via les commandes
oxoouostorlab.
oxo scan run --install --agent agent/ostorlab/nmap --agent agent/ostorlab/tsunami --agent agent/ostorlab/nuclei ip 8.8.8.8
Cette commande téléchargera et installera les agents de scan suivants :
Elle scannera l'adresse IP cible 8.8.8.8.
Les agents sont livrés sous forme d'images Docker standard.
Pour vérifier l'état du scan, exécutez :
oxo scan list
Une fois le scan terminé, pour accéder aux résultats du scan, exécutez :
oxo vulnz list --scan-id <scan-id>
oxo vulnz describe --vuln-id <vuln-id>
Pour arrêter un scan en cours, exécutez :
oxo scan stop --scan-id <scan-id>
Pour exécuter oxo dans un conteneur, vous pouvez utiliser l'image publiquement disponible et exécuter la commande suivante :
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
Remarques :
scan run, car l'image ostorlab/oxo a oxo comme entrypoint.Lors de l'exécution d'OXO en tant que scanner on-prem, utilisez --persist-logs pour écrire les journaux du scanner sur le disque :
oxo scanner --scanner-id <scanner-uuid> --persist-logs
Par défaut, les journaux sont écrits dans ~/.ostorlab/scanner.log. Pour choisir un autre fichier :
oxo scanner --scanner-id <scanner-uuid> --persist-logs --log-file /var/log/ostorlab/scanner.log
Pour modifier la verbosité des journaux persistés :
oxo scanner --scanner-id <scanner-uuid> --persist-logs --log-level DEBUG
OXO prend en charge le scan de plusieurs types d'actifs, permettant une couverture de sécurité complète sur différentes plateformes et protocoles.
| Catégorie | Actif | Description |
|---|---|---|
| Réseau | ip | Adresse IP ou plage d'adresses IP (v4 et v6). |
domain-name | Nom de domaine. | |
| Web | link | Lien web, acceptant une URL, une méthode, des en-têtes et un corps de requête. |
api-schema | Schéma d'API (OpenAPI, GraphQL, etc.). | |
| Mobile | android-apk / android-aab | Fichiers de package Android (.APK, .AAB). |
android-store | Application Android dans le Google Play Store. | |
ios-ipa | Fichier de package iOS (.IPA). | |
ios-store | Application iOS dans l'Apple App Store. | |
ios-testflight | Application iOS dans TestFlight. | |
harmonyos-apk / harmonyos-hap | Fichiers de package HarmonyOS. | |
| Autre | file | Fichier générique. |
phone-number | Numéro de téléphone. | |
agent | Méta-scan d'un agent. |
OXO répertorie tous les agents sur un store public où vous pouvez rechercher et également publier vos propres agents.

Pour écrire votre premier agent, vous pouvez consulter un tutoriel complet ici.
Les étapes sont essentiellement les suivantes :
template_agent.py pour ajouter votre logique.Dockerfile en ajoutant les étapes de build supplémentaires nécessaires.ostorlab.yaml en ajoutant les sélecteurs, la documentation, l'image et la licence.Une fois votre agent écrit, vous pouvez le publier sur le store pour que d'autres puissent l'utiliser et le découvrir. Le store gérera la construction de l'agent et récupérera automatiquement les nouvelles versions depuis votre dépôt Git.

Implémentations d'outils populaires tels que :