w12scan
w12scan è un motore di scoperta di asset di rete, che permette di inviare compiti tramite interfaccia WEB. w12scan aggrega automaticamente gli asset correlati per facilitarne l'analisi e l'uso. w12scan è anche il mio progetto di laurea.
w12scan è suddiviso in parte WEB (per la visualizzazione dei dati) e parte Client (per la ricerca degli asset correlati).
Qui c'è il codice open source per la parte web, il client si trova su https://github.com/boy-hack/w12scan-client
Un video per conoscere W12SCAN

Ideologia di progettazione
Basato su Python3 + Django + Elasticsearch + Redis (per deduplicazione e middleware di comunicazione tra web e client). Utilizza API WEB per aggiungere target di scansione, dopo la scansione i risultati vengono visualizzati sul lato WEB.

Caratteristiche
Lato WEB
- Potente sintassi di ricerca
- Utilizzando la sintassi di ricerca è possibile cercare CMS, nomi di servizi, titoli, paesi, ecc., per trovare rapidamente i target correlati.
- title="abc" # Cerca nel titolo
- header="abc" # Cerca nell'header HTTP
- body="123" # Cerca nel body
- url = "*.baidu.com" # Cerca sottodomini di baidu.com,
* è un carattere jolly
- ip = '1.1.1.1' # Cerca IP, supporta CIDR
'192.168.1.0/24' e carattere jolly '192.168.1.*'
- port = '80' # Cerca porta
- app = 'nginx' # Cerca componente
- country = 'cn' # Cerca paese
- service = 'mysql' # Cerca servizio
- bug = 'xx' # Cerca una vulnerabilità esistente
- Configurazione personalizzata degli asset
- Definendo domini o IP associati a un'azienda, w12scan troverà automaticamente i target corrispondenti. Quando navighi su quel target, un'etichetta ben visibile ti indicherà l'appartenenza del target.
- Associazione automatica
- Entrando nei dettagli del target, se il target è un IP, verranno automaticamente associati tutti i domini su quell'IP e tutti i domini nella stessa sottorete C. Se il target è un dominio, verranno automaticamente associati i siti vicini, la sottorete C e i sottodomini.
- Gestione multi-nodo
- Il lato WEB controlla lo stato dei nodi ogni pochi minuti, puoi vedere il numero di scansioni eseguite dai nodi e i log di scansione.
- Task RESTful
- Viene fornita un'interfaccia per aggiungere attività, puoi aggiungerle dal lato WEB o integrare l'interfaccia in qualsiasi software.
Lato Client (Scansione)
- Verifica PoC tempestiva
- Collegandosi all'API di airbug, vengono richiamati online gli script PoC più recenti. airbug garantisce l'aggiornamento tempestivo delle vulnerabilità; puoi anche fare il fork del progetto airbug e aggiungere regole PoC personalizzate.
- Attacchi di verifica
- Il lato client include servizi comuni di verifica delle vulnerabilità. Ogni volta che viene scansionato un URL, questi servizi vengono eseguiti e i risultati vengono infine mostrati sul lato WEB di w12scan.
- Scansione e riconoscimento
- La scansione delle porte utilizza masscan, il riconoscimento delle porte usa nmap, il riconoscimento delle applicazioni web utilizza wappalyzer e una versione ridotta di w11scan (riconoscimento delle impronte digitali).
- Distribuzione facile
- Questo è stato considerato nella progettazione dell'architettura: il lato client accetta solo attività e interagisce solo con il lato WEB per i risultati finali, quindi è molto facile da distribuire: basta eseguire il client su un'altra macchina. Può essere distribuito tramite Docker e può anche integrare facilmente il servizio Celery.
Installazione
Distribuzione一键 con Docker
mkdir ~/w12scan-data/db # La directory salva i risultati di w12scan
mkdir ~/w12scan-data/data # La directory salva i risultati di ES
git clone https://github.com/boy-hack/w12scan
cd w12scan
docker-compose up -d
Dopo aver atteso un po', visita http://127.0.0.1:8000
Nome utente e password predefiniti: boyhack:boyhack
Archiviazione dati
- Puoi modificare il file
docker-compose.yml, cercare ~/w12scan-data/db o ~/w12scan-data/data per cambiare la posizione di archiviazione.
Problemi correlati
- Per garantire l'alta disponibilità, prepara almeno un server con 8 GB di RAM e 4 core CPU per i test (ES consuma molta memoria). Se il server non soddisfa questi requisiti, è necessario aggiungere
- "ES_JAVA_OPTS=-Xms2048m -Xmx2048m" al Dockerfile di ES per specificare la memoria, ma ciò non garantisce l'alta disponibilità.
- Su Windows, presta attenzione al formato dei file
.sh https://github.com/boy-hack/w12scan/issues/12 (grazie @Hotsunrize).
- D: Come distribuire in modo distribuito? R: Schema di distribuzione
- D: Dopo l'avvio il conteggio delle ricerche è 0? R: È necessario aggiungere target di scansione.
- Non cercare mentre si esegue la scansione. Elasticsearch esegue analisi, tokenizzazione, ecc. durante l'inserimento dei dati (in questo momento non è efficiente). Se si cerca in questo momento, si potrebbe ottenere un errore 503. Si consiglia di cercare dopo che la scansione è completata (in futuro verrà utilizzata la migrazione dei dati per risolvere il problema).
Link correlati
Legale
Questo programma è principalmente utilizzato per raccogliere dati di rete per analisi e ricerca. Prima di utilizzare il programma, si prega di rispettare le leggi locali pertinenti.