Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
webstor — Enumera tutti i siti web attraverso le reti di un'organizzazione tramite trasferimenti di zona DNS e masscan, memorizza le risposte e consente di interrogare tecnologie web vulnerabili note e pattern regex personalizzati. | Kitploit
Strumenti/GitHubGitHub/rossgeerlings/webstor
RicognizioneScanner di VulnerabilitàRaccolta InformazioniSicurezza WebAnalisi DNS
GitHubrossgeerlings/webstor

webstor

Enumera tutti i siti web attraverso le reti di un'organizzazione tramite trasferimenti di zona DNS e masscan, memorizza le risposte e consente di interrogare tecnologie web vulnerabili note e pattern regex personalizzati.

Vedi Repository
1582012 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

 

WebStor

Identificazione rapida di tecnologie web vulnerabili nella tua organizzazione

WebStor è uno strumento implementato in Python sotto licenza MIT per enumerare rapidamente tutti i siti web in tutte le reti della tua organizzazione, memorizzare le loro risposte e interrogare tecnologie e versioni web note, come quelle con vulnerabilità zero-day. È progettato in particolare per risolvere il problema unico che si presenta nelle organizzazioni di medie e grandi dimensioni con amministrazione decentralizzata, dove può essere quasi impossibile tenere traccia di tutte le tecnologie web implementate da vari amministratori distribuiti in diverse unità e reti.

WebStor raggiunge il suo obiettivo eseguendo le seguenti azioni:

  1. Esegue trasferimenti di zona DNS per raccogliere i record A e CNAME di un'organizzazione.
  2. Utilizza Masscan per scansionare le porte HTTP/HTTPS aperte sui range di rete dell'organizzazione, nonché su qualsiasi indirizzo IP al di fuori di tali range presente nei record A e CNAME dell'organizzazione.
  3. Utilizza la libreria Python requests per raccogliere tutte le risposte e archiviarle in un database MariaDB. Tutti i nomi DNS corrispondenti a un IP con porte HTTP/HTTPS aperte saranno inclusi nelle richieste oltre all'indirizzo IP, in modo che i siti che utilizzano intestazioni diverse non facciano perdere un sito web.
  4. Scarica il database delle tecnologie web Wappalyzer e lo archivia nel database MariaDB, consentendo agli utenti di interrogare le posizioni di una tecnologia web comune per nome.
  5. Consente agli utenti di interrogare le posizioni in cui sono contenute espressioni regolari personalizzate all'interno delle risposte memorizzate.

Piattaforme supportate

WebStor attualmente funziona su sistemi Linux. Poiché è scritto in Python, la conversione per supportare Windows sarebbe banale e probabilmente avverrà in futuro.

Prerequisiti

Applicazioni

  • Masscan
    • Se intendi utilizzare un cron job per aggiornare il database (tipico), è fondamentale che configuri sudo nopasswd per qualsiasi utente che esegue la scansione Masscan tramite WebStor.
  • MariaDB 10.0.5 o successiva
    • Le credenziali predefinite provate da WebStor saranno root e password vuota. Vedere la sezione "Opzioni di sicurezza" per configurare WebStor all'uso di altri nomi utente e password per connettersi al database.

Librerie Python

  • pip3 install dnspython
  • pip3 install beautifulsoup4
  • pip3 install mysql-connector-python
  • pip3 install js-regex
  • pip3 install gevent
  • pip3 install requests

Disponibilità tramite PyPI

  • Se desideri semplicemente eseguire WebStor e non modificarlo, puoi installare i applicazioni prerequisiti e quindi utilizzare 'sudo pip3 install webstor'.
  • Dopo aver installato WebStor tramite PyPI, webstor sarà nel percorso e può essere eseguito dalla riga di comando indipendentemente dalla directory di lavoro con 'webstor' invece di 'webstor.py', ad esempio 'webstor -g'.

Utilizzo di base

root@kitploit:~
       webstor.py [-h] [--ADD-HTTP-PORT HTTPPORTTOADD] [--CLEAR-HTTP]
                  [--ADD-HTTPS-PORT HTTPSPORTTOADD] [--CLEAR-HTTPS]
                  [--ADD-CUSTOM-FINGERPRINT FINGERPRINT]
                  [--DELETE-CUSTOM-FINGERPRINT FINGERPRINTNAMETODELETE]
                  [--IMPORT-CUSTOM-FINGERPRINT IMPORTFINGERPRINTFILE]
                  [--CLEAR-CUSTOM-FINGERPRINTS] [--SHOW-CONFIG]
                  [--SHOW-CONFIG-FULL] [--RUN-MASSCAN]
                  [--SET-MASSCAN-RANGES SETSCANRANGES]
                  [--ADD-RANGE RANGETOADD] [--DELETE-RANGE RANGETODELETE]
                  [--IMPORT-MASSCAN-RANGES IMPORTSCANRANGES]
                  [--ADD-PATH PATHTOADD] [--DELETE-PATH PATHTODELETE]
                  [--CLEAR-PATHS] [--REFRESH-RESPONSES]
                  [--RESPONSES-ADD-FOR-PATH RESPONSESADDFORPATH]
                  [--SEARCH-PATTERN SEARCHPATTERN]
                  [--SEARCH-CUSTOM-FINGERPRINT SEARCHFINGERPRINT]
                  [--SEARCH-WAPPALYZER SEARCHWAPPALYZER] [--NO-TSIG-KEY]
                  [--TSIG-KEY-IMPORT IMPORTTSIGFILE]
                  [--TSIG-KEY-REPLACE REPLACEMENTTSIGFILE]
                  [--DELETE-TSIG TSIGTODELETE]
                  [--USE-TSIG-FILE-ONLY USETSIGFILEONLY]
                  [--DOWNLOAD-NEW-WAPPALYZER] [--LIST-WAPPALYZER-TECH-NAMES]
                  [--ZONE-XFER] [--ADD-DOMAIN DOMAINDETAILS]
                  [--DELETE-DOMAIN DOMAINTODELETE]
                  [--IMPORT-ZONE-FILE IMPORTZONEFILE] [--CLEAR-DOMAINS]
                  [--LIST-DOMAINS] [--LIST-OUTSIDE] [--SQL-CREDS SQLCREDSFILE]

optional arguments:
  -h, --help            show this help message and exit
  --ADD-HTTP-PORT HTTPPORTTOADD, -a HTTPPORTTOADD
                        Add a custom HTTP port.
  --CLEAR-HTTP, -aC     Clear any custom HTTP ports and revert to default of
                        80.
  --ADD-HTTPS-PORT HTTPSPORTTOADD, -b HTTPSPORTTOADD
                        Add a custom HTTPS port.
  --CLEAR-HTTPS, -bC    Clear any custom HTTPS ports and revert to default of
                        443.
  --ADD-CUSTOM-FINGERPRINT FINGERPRINT, -c FINGERPRINT
                        Add a custom fingerprint in the form <Name>,<RegEx>.
  --DELETE-CUSTOM-FINGERPRINT FINGERPRINTNAMETODELETE, -cD FINGERPRINTNAMETODELETE
                        Delete a custom fingerprint by name.
  --IMPORT-CUSTOM-FINGERPRINT IMPORTFINGERPRINTFILE, -cI IMPORTFINGERPRINTFILE
                        Import a custom fingerprint file with the path
                        specified.
  --CLEAR-CUSTOM-FINGERPRINTS, -cC
                        Clears all custom fingerprints stored in DB.
  --SHOW-CONFIG, -g     Show current WebStor configuration (brief).
  --SHOW-CONFIG-FULL, -gF
                        Show current WebStor configuration (full).
  --RUN-MASSCAN, -m     Runs a new port scan with Masscan on all configured
                        TCP ports for HTTP and HTTPS, against all configured
                        ranges and any IP addresses from DNS records that are
                        outside those ranges.
  --SET-MASSCAN-RANGES SETSCANRANGES, -mR SETSCANRANGES
                        Scan range or ranges, replaces existing ranges in DB,
                        comma separated, such as: -s
                        10.10.0.0/16,10.13.0.0/16,192.168.1.0/24
  --IMPORT-MASSCAN-RANGES IMPORTSCANRANGES, -mI IMPORTSCANRANGES
                        Import scan ranges (CIDR blocks) from a specified
                        file.
  --DELETE-RANGE RANGETODELETE, -mD RANGETODELETE
                        Delete scan range.
  --ADD-PATH PATHTOADD, -p PATHTOADD
                        Add paths for which to request and store responses
                        besides '/'.
  --DELETE-PATH PATHTODELETE, -pD PATHTODELETE
                        Delete paths for which to request and store responses
                        besides '/'.
  --CLEAR-PATHS, -pC    Clear any custom URL request paths and revert to
                        default of '/'.
  --REFRESH-RESPONSES, -r
                        Refresh URL responses in DB.
  --RESPONSES-ADD-FOR-PATH RESPONSESADDFORPATH, -rP RESPONSESADDFORPATH
                        Add URL responses for a one-time path in with the
                        current responses in the DB.
  --SEARCH-PATTERN SEARCHPATTERN, -sP SEARCHPATTERN
                        Search for string or regular expression in WebStor
                        database.
  --SEARCH-CUSTOM-FINGERPRINT SEARCHFINGERPRINT, -sC SEARCHFINGERPRINT
                        Search for technology by name of user-provided custom
                        fingerprint.
  --SEARCH-WAPPALYZER SEARCHWAPPALYZER, -sW SEARCHWAPPALYZER
                        Search for technology by name (from Wappalyzer Tech
                        DB) in WebStor DB.
  --NO-TSIG-KEY, -tN    Do not use DNSSec TSIG key stored in database or a
                        file, even if present.
  --TSIG-KEY-IMPORT IMPORTTSIGFILE, -tI IMPORTTSIGFILE
                        Import a specified TSIG key file into the database
  --TSIG-KEY-REPLACE REPLACEMENTTSIGFILE, -tR REPLACEMENTTSIGFILE
                        Replace a TSIG key in the database with a specified
                        file
  --DELETE-TSIG TSIGTODELETE, -dT TSIGTODELETE
                        Delete a TSIG key from the database by name.
  --USE-TSIG-FILE-ONLY USETSIGFILEONLY, -tF USETSIGFILEONLY
                        Only use tsig file specified (full path), do not use
                        TSIGs stored in the DB. Applies to all domains,
                        limiting WebStor to one TSIG for zone transfers in the
                        current execution.
  --DOWNLOAD-NEW-WAPPALYZER, -w
                        Download a new Wappalyzer fingerprints file directly
                        from GitHub. Overwrites existing Wappalyzer
                        fingerprint data.
  --LIST-WAPPALYZER-TECH-NAMES, -wL
                        List the names of all Wappalyzer technologies in the
                        database.
  --ZONE-XFER, -z       Forces a new zone transfer using all domains, servers,
                        and associated TSIG keys in DB
  --ADD-DOMAIN DOMAINDETAILS, -zA DOMAINDETAILS
                        Add a domain in the form <Domain name>,<Server>,<TSIG
                        Key Name>.
  --DELETE-DOMAIN DOMAINTODELETE, -zD DOMAINTODELETE
                        Delete a DNS domain from the database by name.
  --IMPORT-ZONE-FILE IMPORTZONEFILE, -zI IMPORTZONEFILE
                        Add domains for zone transfers from a file.
  --CLEAR-DOMAINS, -zC  Clears all DNS domains stored in DB.
  --LIST-DOMAINS, -zL   Lists all DNS domains stored in DB.
  --LIST-OUTSIDE, -e    Prints a list of all names and IPs from our zone
                        transfers that are outside defined net ranges.
  --SQL-CREDS SQLCREDSFILE, -q SQLCREDSFILE
                        Use SQL credentials in file at specified path.

Passaggi per configurare inizialmente WebStor e popolare il database:

NOTA: Questi passaggi presuppongono che la tua organizzazione utilizzi una sola chiave TSIG per i trasferimenti di zona e che tutti i record possano essere interrogati da un unico server DNS. Se non è così, vedere la sezione casi d'uso sicuri/esoterici di seguito.

  1. Ottieni un file della chiave TSIG che ti permetta di effettuare trasferimenti di zona, posizionalo nella tua directory di lavoro.
  2. Ottieni un file di elenco delimitato da nuove righe di tutti i range di rete della tua organizzazione (notazione CIDR). Se stai utilizzando grandi quantità di spazio privato RFC1918, in particolare spazio 10.X, non aggiungere semplicemente 10.0.0.0/8 poiché ciò farebbe impiegare molto tempo a Masscan in seguito. Utilizza invece più blocchi più piccoli effettivamente allocati (ad esempio 10.10.3.0/24). Con una tipica rete aziendale o universitaria al momento della stesura, puoi aspettarti che ogni milione di indirizzi IP scansionati richieda circa 15 minuti durante la scansione massiva con le attuali impostazioni di limitazione di WebStor.
  3. Crea un file di testo con i nomi di dominio per i quali effettuerai i trasferimenti di zona. All'inizio del file, inserisci due righe: la prima con il nome della tua chiave TSIG (se non sai cos'è, sarà nella prima riga del tuo file TSIG subito dopo "key"), e la seconda riga deve essere il nome o l'indirizzo IP del tuo server DNS. Il resto del file deve contenere ogni nome di dominio DNS per la tua organizzazione, uno per riga. Per una tipica grande università, questi saranno nomi come engineering.stateu.edu.
  4. Esegui ./webstor.py -g per mostrare la configurazione e confermare la funzionalità del database.
  5. Esegui ./webstor.py -tI <file tsig> -mI <file range di rete> -zI <file domini> NOTA: durante la parte di importazione TSIG di questo processo ti verrà chiesto un dominio da associare al TSIG e un server DNS a cui destinare quel TSIG. Questo perché il file TSIG stesso non contiene queste informazioni. Fornisci semplicemente uno qualsiasi dei tuoi domini, ad esempio stateu.edu, e l'indirizzo IP del tuo server DNS. Le informazioni nel file di importazione dei domini, elaborate successivamente, sovrascriveranno l'associazione del dominio.
  6. WebStor è ora pronto per raccogliere dati. Esegui ./webstor.py -z -m -r -w. Questo raccoglierà i record DNS tramite trasferimento di zona, scansionerà le porte web aperte con Masscan, effettuerà richieste HTTP/HTTPS contro tutti gli host con porte web aperte (il superset di quelli nei tuoi range di rete e degli host con record DNS al di fuori di tali range) e memorizzerà le risposte nel database. L'opzione -w scarica anche la copia più recente del database delle tecnologie web di Wappalyzer da GitHub.

Esempi di utilizzo

root@kitploit:~
# Cerca una stringa/regex associata a una tecnologia web:
./webstor.py -sP "content=\"wordpress 4.[7-9]"
# Viene restituito un elenco di siti con questa regex, risposte previste da siti Wordpress v4.7-9.

# Per salvare la regex nell'esempio sopra come impronta personalizzata che puoi interrogare per nome (e non devi ricordare la regex ogni volta):
./webstor.py -c "wordpress4.7-9,content=\"wordpress 4.[7-9]"

# Dopo aver eseguito il comando sopra, la query può essere effettuata semplicemente con:
./webstor.py -sC wordpress4.7-9

# Utilizzo di WebStor per cercare siti Wordpress tramite definizioni Wappalyzer:
./webstor.py -sW wordpress
# Viene restituito un elenco di siti Wordpress raggiungibili sulle reti della tua organizzazione. NOTA: Le ricerche Wappalyzer possono essere più lente delle ricerche per pattern/regex a causa del numero di proprietà interrogate per la verifica.

Risultati mostrati per nome e IP

I siti vengono interrogati in base alle risposte sia ai nomi che agli indirizzi IP. Questo è importante perché alcuni server web ospitano più siti con più nomi. Altri server possono servire solo un sito predefinito o una risposta predefinita del provider quando richiesti per IP (ad esempio https://68.66.216.42) e un sito aziendale reale quando richiesti per nome (ad esempio https://www.seekerdlp.com). Per questo motivo, se hai un sito nominato che viene servito anche quando viene richiesto l'IP del server web, vedrai i risultati della query per entrambi.

Mantenere i risultati aggiornati

Si consiglia di impostare un cron job per eseguire WebStor quotidianamente in modo che i risultati delle query riflettano sempre lo stato attuale della tua rete.

Opzioni di sicurezza

Se non desideri utilizzare le credenziali predefinite di MariaDB (root, password vuota), puoi utilizzare l'opzione -q per specificare il percorso di un file con le credenziali. La prima riga del file deve essere il server, ad esempio localhost. La seconda riga deve essere il nome utente SQL. La terza riga deve essere la password.

Se non desideri archiviare la tua TSIG nel database, puoi utilizzare l'opzione -tF per specificare il percorso di un file della chiave TSIG con ACL.

Se la tua organizzazione utilizza più chiavi TSIG, dovrai archiviarle nel database. Ciascuna può essere aggiunta con l'opzione -tI e i domini possono essere aggiunti tramite le opzioni normali, specificando la chiave e il server appropriati.

Attribuzione

WebStor utilizza il database delle tecnologie di Wappalyzer per ricerche di tecnologie pre-popolate e indicizzate per nome sulle risposte memorizzate di WebStor. Wappalyzer è concesso in licenza secondo i termini della licenza MIT.

Ringraziamenti speciali

  • Brandon Bailey <Twitter: @ge0stigm4> (Co-progettista del concetto originale)
  • Bob Harold (Guida su DNS)
  • Neamen Negash <nnegash@umich.edu> (Programma di installazione)
  • afreudenreich (Multiple bug fixes and enhancements)

Licenza e Autore

WebStor è stato scritto da Ross Geerlings <rjgeer@umich.edu>, <ross@seekerdlp.com>.

WebStor è concesso in licenza secondo i termini della licenza MIT, riprodotta di seguito.

La licenza MIT

Copyright (c) 2020-2024 The University of Michigan Board of Regents.

Con la presente viene concessa l'autorizzazione, gratuitamente, a chiunque ottenga una copia di questo software e dei relativi file di documentazione (il "Software"), di trattare il Software senza restrizioni, inclusi, a titolo esemplificativo ma non esaustivo, i diritti di utilizzare, copiare, modificare, unire, pubblicare, distribuire, concedere in sublicenza e/o vendere copie del Software, e di consentire alle persone a cui il Software è fornito di fare altrettanto, alle seguenti condizioni:

L'avviso di copyright sopra riportato e questo avviso di autorizzazione devono essere inclusi in tutte le copie o parti sostanziali del Software.

IL SOFTWARE VIENE FORNITO "COSÌ COM'È", SENZA GARANZIA DI ALCUN TIPO, ESPRESSA O IMPLICITA, INCLUSE MA NON LIMITATE ALLE GARANZIE DI COMMERCIABILITÀ, IDONEITÀ PER UN PARTICOLARE SCOPO E NON VIOLAZIONE. IN NESSUN CASO GLI AUTORI O I TITOLARI DEL COPYRIGHT POTRANNO ESSERE RITENUTI RESPONSABILI PER QUALSIASI RECLAMO, DANNO O ALTRA RESPONSABILITÀ, SIA IN UN'AZIONE CONTRATTUALE, ILLECITA O ALTRIMENTI, DERIVANTE DA, O IN CONNESSIONE CON IL SOFTWARE O L'USO O ALTRE OPERAZIONI NEL SOFTWARE.

Scarica lo strumento