w12scan
w12scan ist eine Netzwerkanlagen-Erkennungs-Engine, die Tasks über eine Weboberfläche vergibt. w12scan fasst automatisch die relevanten Anlagen zusammen, um die Analyse zu erleichtern. w12scan ist auch meine Abschlussarbeit.
w12scan besteht aus einem WEB-Teil (zur Anzeige und Darstellung der Daten) und einem Client-Teil (zur Suche nach relevanten Anlagendaten).
Hier ist der Open-Source-Code für das WEB-Frontend. Der Client-Teil befindet sich unter https://github.com/boy-hack/w12scan-client
Ein Video, um W12SCAN kennenzulernen:

Design-Philosophie
Basiert auf Python3 + Django + Elasticsearch + Redis (Deduplizierung + Middleware für die Kommunikation zwischen Web und Client). Über die WEB-API werden Scanziele hinzugefügt. Nach Abschluss des Scans werden die Ergebnisse im WEB-Teil angezeigt.

Besonderheiten
WEB-Teil
- Leistungsstarke Suchsyntax
- Mit der Suchsyntax können CMS, Dienstnamen, Titel, Länder/Regionen usw. durchsucht werden, um schnell relevante Ziele zu finden.
- title=“abc” # Suche im Titel
- header=“abc” # Suche im HTTP-Header
- body=“123” # Suche im Body
- url = “*.baidu.com” # Suche nach Subdomains von baidu.com,
* ist ein Platzhalter
- ip = ‘1.1.1.1’ # Suche nach IP, unterstützt CIDR
'192.168.1.0/24' und Platzhaltersuche '192.168.1.*'
- port = ‘80’ # Suche nach Port
- app = ’nginx’ # Suche nach Komponente
- country = ‘cn’ # Suche nach Land
- service = ‘mysql’ # Suche nach Dienst
- bug = 'xx' # Suche nach einer vorhandenen Schwachstelle
- Benutzerdefinierte Anlagenkonfiguration
- Durch die Definition von unternehmensrelevanten Domains oder IP-Anlagen hilft w12scan automatisch, die entsprechenden Anlagenziele zu finden. Beim Durchsuchen eines Ziels gibt es eine auffällige Kennzeichnung, die die Zugehörigkeit anzeigt.
- Automatische Verknüpfung
- Wenn Sie die Detailseite eines Ziels aufrufen und das Ziel eine IP ist, werden automatisch alle Domains auf dieser IP und alle Domains im selben C-Bereich verknüpft. Wenn das Ziel eine Domain ist, werden automatisch benachbarte Sites, C-Bereiche und Subdomains verknüpft.
- Multi-Node-Verwaltung
- Das WEB-Frontend überprüft alle paar Minuten den Betriebszustand der Nodes. Sie können die Anzahl der gescannten Nodes und die Scan-Logs einsehen.
- RESTful Tasks
- Bietet eine Schnittstelle zum Hinzufügen von Tasks. Sie können Tasks im WEB-Frontend hinzufügen oder die Schnittstelle in jeder Software integrieren.
Scan-Teil (Client)
- Rechtzeitige PoC-Überprüfung
- Über die Anbindung der airbug-API werden online die neuesten PoC-Überprüfungsskripte aufgerufen. airbug gewährleistet die Aktualität der Schwachstellen-Updates. Sie können das airbug-Projekt auch forken und eigene PoC-Regeln hinzufügen.
- Überprüfungs-Angriffe
- Der Scan-Client enthält integrierte Dienste zur Überprüfung gängiger Schwachstellen. Bei jedem Scan einer URL werden diese Dienste ausgeführt, und die Ergebnisse werden schließlich im WEB-Teil von w12scan angezeigt.
- Scannen und Erkennung
- Port-Scannen verwendet masscan, Port-Erkennung verwendet nmap, Web-Anwendungserkennung ruft wappalyzer und eine abgespeckte Version von w11scan (Fingerabdruck-Erkennung) auf.
- Einfache Verteilung
- Dies wurde bereits bei der Architekturdesign berücksichtigt. Der Scan-Client akzeptiert nur Tasks und interagiert nur mit dem WEB-Teil für die Ergebnisse. Daher ist die Verteilung sehr einfach: Führen Sie den Scan-Client einfach auf einem anderen Rechner aus. Docker-basierte Verteilung sowie die einfache Integration eines Celery-Dienstes sind möglich.
Installation
Basiert auf einem Docker-Ein-Klick-Deployment.
mkdir ~/w12scan-data/db # Dieses Verzeichnis speichert die Ergebnisse von w12scan
mkdir ~/w12scan-data/data # Dieses Verzeichnis speichert die Ergebnisse von ES
git clone https://github.com/boy-hack/w12scan
cd w12scan
docker-compose up -d
Nach einer Weile rufen Sie http://127.0.0.1:8000 auf.
Standardbenutzername und -passwort: boyhack:boyhack
Datenspeicherung
- Sie können die
docker-compose.yml bearbeiten und nach ~/w12scan-data/db oder ~/w12scan-data/data suchen, um die Speicherorte anzupassen.
Verwandte Probleme
- Für hohe Verfügbarkeit stellen Sie bitte einen Server mit mindestens 8 GB RAM und 4 Kernen zum Testen bereit (ES benötigt viel Speicher). Falls der Server diese Anforderungen nicht erfüllt, müssen Sie dem ES-Datenbank-Container in der Dockerfile
- "ES_JAVA_OPTS=-Xms2048m -Xmx2048m" hinzufügen, um den Speicher zuzuweisen – dies garantiert jedoch keine hohe Verfügbarkeit.
- Bei der Installation unter Windows ist auf das
.sh-Dateiformat zu achten: https://github.com/boy-hack/w12scan/issues/12 (Danke @Hotsunrize).
- F: Wie verteilt man das System? A: Bereitstellungsplan
- F: Nach dem Start beträgt die Suche 0? A: Scanziele müssen hinzugefügt werden.
- Nicht gleichzeitig scannen und suchen. Elasticsearch führt beim Einfügen von Daten Analysen, Tokenisierungen usw. durch (dann ist die Effizienz gering). Wenn Sie zu diesem Zeitpunkt suchen, könnte ein 503-Fehler auftreten. Es wird empfohlen, nach Abschluss des Scans zu suchen. (Später wird eine Datenmigration dieses Problem lösen.)
Verwandte Links
Rechtliches
Dieses Programm dient hauptsächlich zum Sammeln von Netzwerkdaten für Analyse- und Forschungszwecke. Vor der Nutzung dieses Programms beachten Sie bitte die geltenden lokalen Gesetze.