Hinweis: Docker-Images werden in den kommenden Wochen veröffentlicht.
Spidex ist ein kontinuierlicher Aufklärungsscanner, dessen Schwerpunkt auf dem Nachweis der Netzwerkgefährdung liegt. Es führt umfangreiche portorientierte Scans durch und sammelt Informationen von jedem mit dem Internet verbundenen Gerät.
Die Engine ist für die umfassende Analyse der als Argumente empfangenen IP-Adressen verantwortlich. Es sammelt öffentliche Informationen über jedes Ziel, wie zum Beispiel: offene Ports, geografischer Standort, Webtechnologien und Banner.
Speichert außerdem einen Bericht für jeden Scanzyklus, der Folgendes enthält: Ausführungszeit, gefundene Geräte und Start-/Enddatum.
Die Implementierung von Threads und Warteschlangen erhöht die Leistung beim Scannen. Auf diese Weise werden Anfragen parallel gesendet und die Ausführungszeit für jeden Zyklus wird erheblich verkürzt. Derzeit ist die Anzahl auf 450/500 Threads begrenzt.
options:
-h, --help show this help message and exit
-r RANGE, --range RANGE
Start IPv4 address
-t THREADS, --threads THREADS
Number of threads [Default: 50]
-f, FILE, --file File path with IPv4 ranges
-ti TIMEOUT, --timeout TIMEOUT
Socket timeout [Default: 0.5]
-p, --top-ports Scan only 20 most used ports
-a, --all-ports Scan 1000 most used ports
-c CUSTOM [CUSTOM ...], --custom-ports CUSTOM [CUSTOM ...]
Scan custom ports directly from terminal
-l, --logs Add a log file, useful in debugging
Scannen Sie standardmäßig nur einen einzelnen IPv4-Adressbereich mit den am häufigsten verwendeten Ports:
python3 engine.py -r 192.168.0.0,192.168.0.255 -t 150 --top-ports
Scannen Sie aus einer Textdatei mit mehreren IPv4-Adressbereichen und einem Socket-Timeout von Sekunden:
python3 engine.py -m ranges.csv -t 200 -ti 5 --all-ports
Scannen mit CIDR, benutzerdefinierten Ports und Protokolloption:
python3 engine.py -r 192.168.0.0/255 -t 350 -C 80 21 22 --logs
Es besteht aus einer Flask-Anwendung, die es ermöglicht, die von der Suchmaschine gesendeten Ergebnisse zu speichern und beliebige Operationen daran durchzuführen. Es verwendet MongoDB als Datenbank und ist ideal, da die Daten nicht strukturiert sind.
Verfahren | Route | Beschreibung |
---|---|---|
POST | api/submit/device | Einzelergebnis einreichen |
ERHALTEN | API/Geräte | Erhalten Sie alle Ergebnisse |
ERHALTEN | api/device/ip | Erhalten Sie ein einzelnes Ergebnis nach IP-Adresse |
LÖSCHEN | api/delete/device/ip | Löschen Sie eins |
POST | api/submit/report | Senden Sie den Scanbericht |
ERHALTEN | API/Berichte | Holen Sie sich alle Berichte |
Die Bereitstellung beider Komponenten erfolgt mit Docker, um die Installation zu vereinfachen und eine Kontamination der Umgebung mit Abhängigkeiten zu vermeiden. Sie können die Bilder von DockerHub herunterladen.
Legen Sie für eine einfache Bereitstellung die Umgebungsvariablen für jedes Image in den Docker Compose-Dateien fest
MONGO_INITDB_ROOT_USERNAME: USERNAME
MONGO_INITDB_ROOT_PASSWORD: PASSWORD
DB_SERVER_NAME: MONGODB_SERVER
DB_USERNAME: MONGODB_USER
DB_PASSWORD: MONGODB_PASSWORD
SERVER_ADDRESS: API_SERVER
Die Integration von Elasticsearch und Kibana ermöglicht eine grafische Oberfläche zur effizienten Visualisierung und Bearbeitung von Daten.
Derzeit verfügt das Projekt nicht über eine Möglichkeit, Daten automatisch einzufügen. Sie können jedoch Tools wie Mongo-to-elastic-dump verwenden und nach dem Abschluss des Scanzyklus einige interessante Diagramme auf Ihrem lokalen Computer erstellen.
Wenn Sie Ideen oder zukünftige Funktionen haben, können Sie gerne mitmachen, um dieses Projekt weiterhin großartig zu machen.
Dieses Projekt dient ausschließlich pädagogischen und ethischen Testzwecken. Die Verwendung dieser Software zum Angriff auf Ziele ohne vorherige gegenseitige Zustimmung ist illegal. Es liegt in der Verantwortung des Endbenutzers, alle geltenden lokalen, staatlichen und bundesstaatlichen Gesetze einzuhalten. Die Entwickler übernehmen keine Haftung und sind nicht verantwortlich für Missbrauch oder Schäden, die durch dieses Programm verursacht werden.
Apache 2.0