
Modularer Sicherheits-Scanning-Orchestrator, der spezialisierte Agenten für Schwachstellenerkennung, Aufklärung und Fingerprinting in Netzwerken, Web-Apps, mobilen Apps und APIs kombiniert.
[](https://badge.fury.io/py/ostorlab) [](https://pepy.tech/project/ostorlab) [](https://blog.ostorlab.co/) [](https://twitter.com/ostorlabsec) # OXO Scan Orchestration Engine OXO ist ein Sicherheitsscan-Framework, das auf Modularität, Skalierbarkeit und Einfachheit ausgelegt ist. Es ist Open Source und wird von [Ostorlab](https://ostorlab.co) gepflegt. Die OXO Engine kombiniert spezialisierte Tools, die koordiniert zusammenarbeiten, um Schwachstellen zu finden und Aktionen wie Recon, Enumeration und Fingerprinting durchzuführen. * [Dokumentation](https://oxo.ostorlab.co/docs) * [Agenten-Store](https://oxo.ostorlab.co/store) * [CLI-Handbuch](https://oxo.ostorlab.co/docs/manual) * [Beispiele](https://oxo.ostorlab.co/tutorials/examples)  # Hauptmerkmale * **Modular & Skalierbar**: Kombinieren Sie mühelos mehrere spezialisierte Agenten, um umfassende Scans durchzuführen. * **Breite Asset-Unterstützung**: Scannen Sie alles von IP-Adressen und Domains bis hin zu mobilen Anwendungen (Android, iOS, HarmonyOS) und API-Schemas. * **Agenten-Store**: Greifen Sie auf eine wachsende Bibliothek von Community- und offiziellen Agenten für gängige Sicherheitstools zu. * **Erweiterbar**: Integrierte Unterstützung für die Erstellung und Veröffentlichung eigener Agenten mithilfe eines einfachen Python-basierten Frameworks. * **API First**: Verfügt über eine GraphQL-API zur einfachen Integration in CI/CD-Pipelines und andere automatisierte Workflows. # Anforderungen Docker ist erforderlich, um Scans lokal auszuführen. Um Docker zu installieren, folgen Sie bitte diesen [Anweisungen](https://docs.docker.com/get-docker/). # Installation OXO wird als Python-Paket auf PyPI bereitgestellt. Um es zu installieren, führen Sie einfach den folgenden Befehl aus, wenn Sie `pip` bereits installiert haben. ```shell pip install -U ostorlab ``` # Erste Schritte OXO wird mit einem Store geliefert, der Dutzende von Agenten bietet, von Netzwerk-Scanning-Agenten wie Nmap, Nuclei oder Tsunami, Web-Scannern wie ZAP, Web-Fingerprinting-Tools wie WhatWeb und Wappalyzer, DNS-Brute-Forcing-Tools wie Subfinder und Dnsx, Malware-Dateiscannern wie VirusTotal und vielem mehr. Um eines dieser Tools kombiniert auszuführen, führen Sie einfach den folgenden Befehl aus: > Die OXO CLI ist über die Befehle `oxo` oder `ostorlab` zugänglich. ```shell oxo scan run --install --agent agent/ostorlab/nmap --agent agent/ostorlab/tsunami --agent agent/ostorlab/nuclei ip 8.8.8.8 ``` Dieser Befehl lädt die folgenden Scanning-Agenten herunter und installiert sie: * [agent/ostorlab/nmap](https://oxo.ostorlab.co/store/agent/ostorlab/nmap) * [agent/ostorlab/tsunami](https://oxo.ostorlab.co/store/agent/ostorlab/tsunami) * [agent/ostorlab/nuclei](https://oxo.ostorlab.co/store/agent/ostorlab/nuclei) Er scannt die Ziel-IP-Adresse `8.8.8.8`. Agenten werden als Standard-Docker-Images bereitgestellt. # Scan-Verwaltung Um den Scan-Status zu überprüfen, führen Sie aus: ```shell oxo scan list ``` Sobald der Scan abgeschlossen ist, führen Sie Folgendes aus, um auf die Scan-Ergebnisse zuzugreifen: ```shell oxo vulnz list --scan-id <scan-id> oxo vulnz describe --vuln-id <vuln-id> ``` Um einen laufenden Scan zu stoppen, führen Sie aus: ```shell oxo scan stop --scan-id <scan-id> ``` # Docker-Image Um `oxo` in einem Container auszuführen, können Sie das öffentlich verfügbare Image verwenden und den folgenden Befehl ausführen: ```shell 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 ``` Hinweise: * Der Befehl beginnt direkt mit: `scan run`, da das Image `ostorlab/oxo` `oxo` als `entrypoint` verwendet. * Es ist wichtig, den Docker-Socket einzubinden, damit OXO Agenten auf dem Host-Rechner erstellen kann. # On-Prem-Scanner-Protokolle Wenn Sie OXO als On-Prem-Scanner ausführen, verwenden Sie `--persist-logs`, um Scanner-Protokolle auf die Festplatte zu schreiben: ```shell oxo scanner --scanner-id <scanner-uuid> --persist-logs ``` Standardmäßig werden die Protokolle in `~/.ostorlab/scanner.log` geschrieben. Um eine andere Datei zu wählen: ```shell oxo scanner --scanner-id <scanner-uuid> --persist-logs --log-file /var/log/ostorlab/scanner.log ``` Um die Ausführlichkeit der persistierten Protokolle zu ändern: ```shell oxo scanner --scanner-id <scanner-uuid> --persist-logs --log-level DEBUG ``` # Assets OXO unterstützt das Scannen mehrerer Asset-Typen und ermöglicht so eine umfassende Sicherheitsabdeckung über verschiedene Plattformen und Protokolle hinweg. | Kategorie | Asset | Beschreibung | |----------|-------|-------------| | **Netzwerk** | `ip` | IP-Adresse oder IP-Bereich (v4 und v6). | | | `domain-name` | Domainname. | | **Web** | `link` | Weblink, akzeptiert eine URL, Methode, Header und Request-Body. | | | `api-schema` | API-Schema (OpenAPI, GraphQL usw.). | | **Mobil** | `android-apk` / `android-aab` | Android-Paketdateien (.APK, .AAB). | | | `android-store` | Android-App im Google Play Store. | | | `ios-ipa` | iOS-Paketdatei (.IPA). | | | `ios-store` | iOS-App im Apple App Store. | | | `ios-testflight` | iOS-App in TestFlight. | | | `harmonyos-apk` / `harmonyos-hap` | HarmonyOS-Paketdateien. | | **Sonstiges** | `file` | Generische Datei. | | | `phone-number` | Telefonnummer. | | | `agent` | Meta-Scanning eines Agenten. | # Der Store OXO listet alle Agenten in einem öffentlichen Store auf, in dem Sie suchen und auch Ihre eigenen Agenten veröffentlichen können.  # Veröffentlichen Sie Ihren ersten Agenten Um Ihren ersten Agenten zu schreiben, können Sie sich ein vollständiges Tutorial [hier](https://oxo.ostorlab.co/tutorials/write_an_agent) ansehen. Die Schritte sind im Wesentlichen wie folgt: * Klonen Sie einen Vorlagen-Agenten mit allen bereits eingerichteten Dateien. * Ändern Sie die Datei `template_agent.py`, um Ihre Logik hinzuzufügen. * Ändern Sie das `Dockerfile`, indem Sie zusätzliche Build-Schritte hinzufügen. * Ändern Sie die `ostorlab.yaml`, indem Sie Selektoren, Dokumentation, Image und Lizenz hinzufügen. * Veröffentlichen Sie ihn im Store. Sobald Sie Ihren Agenten geschrieben haben, können Sie ihn im Store veröffentlichen, damit andere ihn nutzen und entdecken können. Der Store übernimmt den Agenten-Build und erkennt automatisch neue Releases aus Ihrem Git-Repo.  ## Ideen für zu erstellende Agenten Implementierungen beliebter Tools wie: * ~~[semgrep](https://github.com/returntocorp/semgrep) für Source-Code-Scanning.~~ * [nbtscan](http://www.unixwiz.net/tools/nbtscan.html): Scannt nach offenen NetBIOS-Namenservern im Netzwerk Ihres Ziels. * [onesixtyone](https://github.com/trailofbits/onesixtyone): Schneller Scanner zum Auffinden öffentlich exponierter SNMP-Dienste. * [Retire.js](http://retirejs.github.io/retire.js/): Scanner, der die Verwendung von JavaScript-Bibliotheken mit bekannten Schwachstellen erkennt. * ~~[snallygaster](https://github.com/hannob/snallygaster): Findet Dateilecks und andere Sicherheitsprobleme auf HTTP-Servern.~~ * ~~[testssl.sh](https://testssl.sh/): Identifiziert verschiedene TLS/SSL-Schwachstellen, darunter Heartbleed, CRIME und ROBOT.~~ * ~~[TruffleHog](https://github.com/trufflesecurity/truffleHog): Durchsucht Git-Repositories nach Strings mit hoher Entropie~~ und Secrets und gräbt tief in der Commit-Historie. * [cve-bin-tool](https://github.com/intel/cve-bin-tool): Scannt Binärdateien nach verwundbaren Komponenten. * [XSStrike](https://github.com/s0md3v/XSStrike): XSS-Web-Schwachstellenscanner mit generativer Payload. * ~~[Subjack](https://github.com/haccer/subjack): Subdomain-Takeover-Scanning-Tool.~~ * [DnsReaper](https://github.com/punk-security/dnsReaper): Subdomain-Takeover-Scanning-Tool. * [Gitleaks](https://github.com/gitleaks/gitleaks): SAST-Tool zum Erkennen und Verhindern von hartcodierten Secrets. * [ffuf](https://github.com/ffuf/ffuf): Schneller Web-Fuzzer, geschrieben in Go. * [Gobuster](https://github.com/OJ/gobuster): Tool zum Brute-Forcing von URIs, DNS-Subdomains und mehr. ## Danksagungen Als Open-Source-Projekt in einem sich schnell entwickelnden Bereich sind wir stets offen für Beiträge, sei es in Form eines neuen Features, einer verbesserten Infrastruktur oder einer besseren Dokumentation. Siehe [CONTRIBUTING.md](https://github.com/ostorlab/oxo/blob/main/CONTRIBUTING.md), um zu beginnen. Wir möchten den folgenden Mitwirkenden für ihre Hilfe dabei danken, OXO zu einem besseren Tool zu machen: * [@jamu85](https://github.com/jamu85) * [@ju-c](https://github.com/ju-c) * [@distortedsignal](https://github.com/distortedsignal)