
Raccoglitore di Informazioni per Applicazioni Web
wig è uno strumento di raccolta informazioni per applicazioni web, in grado di identificare numerosi Content Management System e altre applicazioni amministrative.
Il fingerprinting dell'applicazione si basa su checksum e corrispondenza di stringhe di file noti per diverse versioni di CMS. Ciò comporta il calcolo di un punteggio per ogni CMS rilevato e le sue versioni. Ogni CMS rilevato viene visualizzato insieme alla/e versione/i più probabile/i. Il calcolo del punteggio si basa su pesi e sul numero di "hit" per un dato checksum.
wig tenta anche di indovinare il sistema operativo sul server basandosi sugli header 'server' e 'x-powered-by'. In wig è incluso un database contenente valori noti degli header per diversi sistemi operativi, che consente a wig di indovinare le versioni di Microsoft Windows e le distribuzioni e versioni Linux.
wig è costruito con Python 3, e quindi non è compatibile con Python 2.
wig può essere eseguito dalla riga di comando o installato con distuils.
$ python3 wig.py example.com
Installare con
$ python3 setup.py install
e poi wig può essere importato da qualsiasi posizione in questo modo:
>>>> from wig.wig import wig
>>>> w = wig(url='example.com')
>>>> w.run()
>>>> results = w.get_results()
Il comportamento predefinito di wig è identificare un CMS e uscire dopo il rilevamento della versione del CMS. Questo viene fatto per limitare la quantità di traffico inviato al server di destinazione. Questo comportamento può essere sovrascritto impostando il flag '-a', nel qual caso wig testerà tutte le impronte digitali conosciute. Poiché alcune configurazioni delle applicazioni non utilizzano la posizione predefinita per file e risorse, è possibile far recuperare a wig tutte le risorse statiche che incontra durante la scansione. Questo viene fatto con l'opzione '-c'. L'opzione '-m' testa tutte le impronte digitali su tutti gli URL recuperati, il che è utile se la posizione predefinita è stata modificata.
usage: wig.py [-h] [-l INPUT_FILE] [-q] [-n STOP_AFTER] [-a] [-m] [-u] [-d]
[-t THREADS] [--no_cache_load] [--no_cache_save] [-N]
[--verbosity] [--proxy PROXY] [-w OUTPUT_FILE]
[url]
WebApp Information Gatherer
positional arguments:
url L'url da scansionare, es. http://example.com
optional arguments:
-h, --help mostra questo messaggio di aiuto ed esci
-l INPUT_FILE File con url, uno per riga.
-q Imposta wig per non chiedere input all'utente durante l'esecuzione
-n STOP_AFTER Fermati dopo che questo numero di CMS è stato rilevato. Predefinito: 1
-a Non fermarti dopo il primo CMS rilevato
-m Prova più a fondo a trovare una corrispondenza senza fare più richieste
-u User-agent da utilizzare nelle richieste
-d Disabilita la ricerca di sottodomini
-t THREADS Numero di thread da utilizzare
--no_cache_load Non caricare le risposte memorizzate nella cache
--no_cache_save Non salvare la cache per usi futuri
-N Scorciatoia per --no_cache_load e --no_cache_save
--verbosity, -v Aumenta la verbosità. Usa più volte per più informazioni
--proxy PROXY Tunnel attraverso un proxy (formato: localhost:8080)
-w OUTPUT_FILE File in cui salvaguardare i risultati (JSON)
$ python3 wig.py example.com
wig - WebApp Information Gatherer