
Multi-Engine-Schwachstellenscanner mit integrierten Nuclei Lite-, Afrog- und XRay-Engines. Bietet Asset-Erkennung über FOFA/Shodan, OOB-Interaktionserkennung, Python-Plugin-System und Echtzeit-Ergebnisverwaltung für Red-Team-Operationen.
OmniScan ist ein leichtgewichtiger, auf Python basierender Multi-Engine-Vulnerability-Scanner, der speziell für Red-Team-Operationen und Sicherheitsforschung entwickelt wurde. Es integriert nicht nur eine leichte Nuclei-Engine (Lite) und die Afrog-Engine, sondern bietet auch leistungsstarke Asset-Sammlung und Ergebnisverwaltung.
simpleeval anstelle von eval und führt DSL-Ausdrücke in einer Sandbox-Umgebung aus, um die Ausführung von bösartigen Template-Codes zu verhindern.{{lang-file}} -> etc/passwd), was intelligentes Fuzzing unterstützt.hmac, gzip, reverse, rand_base usw.).flow- und req-condition-Logiksteuerung.cookie-reuse-Sitzungserhaltung und redirects-Umleitungssteuerung.Interactsh-Client, der automatisch blinde Schwachstellen (wie Blind RCE, SSRF) behandelt.tqdm-Fortschrittsbalken, der den Scan-Fortschritt jedes Plugins auf jedem Ziel in Echtzeit anzeigt.BasePlugin-Klasse erben und die Methode check(url) implementieren.git_config.py: Erkennt .git/config-Leaksspring_boot.py: Erkennt Spring Boot Actuatords_store.py: Erkennt .DS_Store-Leaksphpinfo.py: Erkennt phpinfo()-Seitenbackup_files.py: Erkennt gängige Sicherungsdateien (.bak, .zip usw.)swagger_ui.py: Erkennt Swagger-UI-Dokumentationcountry="CN").asyncio- und aiohttp-Framework.interactsh-client herunter und verwaltet sie. (Ich habe interactsh-client.zip hochgeladen, du kannst es direkt in dieses Verzeichnis entpacken.)xxx.oast.pro).{{interactsh-url}} im Template durch die in Echtzeit abgerufene Payload.Repository klonen:
git clone https://github.com/d3ckx1/OmniScan.git
cd omniscan
Abhängigkeiten installieren:
pip3 install -r requirements.txt
Tools konfigurieren (optional):
Afrog oder XRay verwendest, stelle sicher, dass sich die entsprechenden ausführbaren Dateien im Projektstammverzeichnis oder im Systempfad befinden.config.yml (optional) zum Festlegen von API-Schlüsseln und Scan-Parametern.Scannen einer einzelnen URL:
python3 omniscan.py -u http://example.com --tool lite -T ./templates/cve/
Suche nach Assets über FOFA und Scannen mit der Nuclei Lite Engine:
python3 omniscan.py -f 'app="SpringBoot"' --tool lite -T ./templates/spring-boot/
Ziele aus urls.txt auslesen und scannen:
python3 omniscan.py -l urls.txt --tool lite -T ./templates/cve/
python3 omniscan.py -l urls.txt --tool lite -T ./templates/python3 omniscan.py -l urls.txt --tool afrogpython3 omniscan.py -l urls.txt --tool xrayOhne --tool-Parameter ausführen, um in ein interaktives Menü zur Tool-Auswahl zu gelangen:
python3 omniscan.py -l urls.txt
Scannen auf Blind-RCE-Schwachstellen (Interactsh wird automatisch aktiviert):
python3 omniscan.py -l urls.txt --tool lite -T ./templates/blind-rce.yaml
Wenn eine OOB-Interaktion erkannt wird, gibt die Konsole [OOB DETECTED] aus und protokolliert die Schwachstelle.
Verwenden der Nuclei Lite Engine mit aktivierten Plugins:
python3 omniscan.py -l urls.txt --tool lite -T ./templates/ --plugins
Nur die Git-Config- und PHPInfo-Plugins ausführen:
python3 omniscan.py -l urls.txt --tool lite -T ./templates/ --plugin-file plugins/git_config.py,plugins/phpinfo.py
Keinen tatsächlichen Scan durchführen, sondern nur die Template-Kompatibilität prüfen:
python3 omniscan.py --classify-only --tool lite -T ./templates/
config.yml)app:
lite_timeout: 10 # Anforderungstimeout (Sekunden)
lite_threads: 10 # Anzahl der gleichzeitigen Threads
use_async: true # Asynchronen Modus aktivieren
user_agents: # Benutzerdefinierter User-Agent-Pool
- "Mozilla/5.0..."
fofa:
email: "your_email"
key: "your_key"
shodan:
api_key: "your_key"
output:
formats: ["json", "csv", "html"] # Berichtsformate
omniscan.py: Hauptprogramm-Einstiegspunkt, verantwortlich für die Parameteranalyse und Aufgabenplanung.nuclei_lite.py: Nuclei-Lite-Kern-Engine, implementiert das Parsen von YAML-Templates und das Scannen.result_manager.py: Ergebnisverwaltungsmodul, verarbeitet die Deduplizierung und Berichtserstellung.database.py: SQLite-Datenbankverwaltung.config.py: Konfigurationslademodul.F: Was bedeutet [OOB DETECTED]?
A: Dies bedeutet, dass der Scanner erfolgreich eine Out-of-Band-Interaktion erkannt hat. Dies deutet in der Regel darauf hin, dass das Ziel einen DNS- oder HTTP-Anforderungs-Rückruf ausgelöst hat, was das Vorhandensein von Schwachstellen wie Blind RCE, SSRF oder Blind SQLi bestätigt.
F: Wie konfiguriere ich die FOFA/Shodan-API?
A: Du kannst den API-Schlüssel in der Datei config.yml eintragen oder über die Umgebungsvariablen FOFA_EMAIL, FOFA_KEY, SHODAN_API_KEY setzen.
F: Welche Betriebssysteme werden unterstützt? A: Omniscan ist plattformübergreifend und unterstützt Linux, macOS und Windows. Externe Tools (wie afrog, interactsh-client) müssen im aktuellen System ausführbar sein.
MIT License
| Parameter | Beschreibung | Beispiel |
|---|
-u URL | Einzelne URL scannen | -u http://example.com |
-f | Assets mittels FOFA suchen | -f 'country="CN"' |
-s | Assets mittels Shodan suchen | -s 'apache' |
-l FILE | Lokale Ziel-Datei angeben | -l targets.txt |
-T TEMPLATE | Nuclei-Template-Pfad (Datei/Verzeichnis) angeben | -T ./templates/ |
--tool NAME | Scan-Tool angeben (nuclei/afrog/xray/lite) | --tool lite |
--severity | Schweregrad angeben (Standard: critical,high) | --severity high,medium |
--plugins | Python-Plugin-Scan aktivieren (durchsucht das plugins/-Verzeichnis) | --plugins |
--plugin-file FILE | Bestimmte Plugin-Dateien ausführen (kommagetrennt) | --plugin-file plugins/test.py |
--new | Nur neu veröffentlichte Templates scannen (erfordert Nuclei-Unterstützung) | --new |
--no-resume | Wiederaufnahme deaktivieren | --no-resume |
--verbose | Detaillierte Debug-Protokolle anzeigen | --verbose |