
Collecteur d'informations pour applications web
wig est un outil de collecte d'informations sur les applications Web, capable d'identifier de nombreux systèmes de gestion de contenu (CMS) et autres applications administratives.
La reconnaissance d'applications repose sur des sommes de contrôle et la correspondance de chaînes de fichiers connus pour différentes versions de CMS. Il en résulte un score calculé pour chaque CMS détecté et ses versions. Chaque CMS détecté est affiché avec la ou les versions les plus probables. Le calcul du score est basé sur des pondérations et le nombre de « hits » pour une somme de contrôle donnée.
wig tente également de deviner le système d'exploitation du serveur en se basant sur les en-têtes « server » et « x-powered-by ». Une base de données contenant les valeurs d'en-têtes connues pour différents systèmes d'exploitation est incluse dans wig, ce qui permet à wig de deviner les versions de Microsoft Windows ainsi que les distributions et versions Linux.
wig est construit avec Python 3, et n'est donc pas compatible avec Python 2.
wig peut être exécuté depuis la ligne de commande ou installé avec distutils.
$ python3 wig.py example.com
Installez avec
$ python3 setup.py install
puis wig peut être importé depuis n'importe quel emplacement comme ceci :
>>>> from wig.wig import wig
>>>> w = wig(url='example.com')
>>>> w.run()
>>>> results = w.get_results()
Le comportement par défaut de wig est d'identifier un CMS, puis de se terminer après la détection de sa version. Cela permet de limiter le trafic envoyé au serveur cible. Ce comportement peut être outrepassé en activant l'option '-a', auquel cas wig testera toutes les empreintes connues. Comme certaines configurations d'applications n'utilisent pas l'emplacement par défaut des fichiers et ressources, il est possible de demander à wig de récupérer toutes les ressources statiques rencontrées lors de son analyse. Cela se fait avec l'option '-c'. L'option '-m' teste toutes les empreintes sur toutes les URL récupérées, ce qui est utile si l'emplacement par défaut a été modifié.
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 The url to scan e.g. http://example.com
optional arguments:
-h, --help show this help message and exit
-l INPUT_FILE File with urls, one per line.
-q Set wig to not prompt for user input during run
-n STOP_AFTER Stop after this amount of CMSs have been detected. Default:
1
-a Do not stop after the first CMS is detected
-m Try harder to find a match without making more requests
-u User-agent to use in the requests
-d Disable the search for subdomains
-t THREADS Number of threads to use
--no_cache_load Do not load cached responses
--no_cache_save Do not save the cache for later use
-N Shortcut for --no_cache_load and --no_cache_save
--verbosity, -v Increase verbosity. Use multiple times for more info
--proxy PROXY Tunnel through a proxy (format: localhost:8080)
-w OUTPUT_FILE File to dump results into (JSON)
$ python3 wig.py example.com
wig - WebApp Information Gatherer
Redirected to http://www.example.com
Continue? [Y|n]:
Scanning http://www.example.com...
_____________________________________________________ SITE INFO _____________________________________________________
IP Title
256.256.256.256 PAGE_TITLE
______________________________________________________ VERSION ______________________________________________________
Name Versions Type
Drupal 7.38 CMS
nginx Platform
amazons3 Platform
Varnish Platform
IIS 7.5 Platform
ASP.NET 4.0.30319 Platform
jQuery 1.4.4 JavaScript
Microsoft Windows Server 2008 R2 OS
_____________________________________________________ SUBDOMAINS ____________________________________________________
Name Page Title IP
http://m.example.com:80 Mobile Page 256.256.256.257
https://m.example.com:443 Secure Mobil Page 256.256.256.258
____________________________________________________ INTERESTING ____________________________________________________
URL Note Type
/test/ Test directory Interesting
/login/ Login Page Interesting
_______________________________________________ PLATFORM OBSERVATIONS _______________________________________________
Platform URL Type
ASP.NET 2.0.50727 /old.aspx Observation
ASP.NET 4.0.30319 /login/ Observation
IIS 6.0 http://www.example.com/templates/file.css Observation
IIS 7.0 https://www.example.com/login/ Observation
IIS 7.5 http://www.example.com Observation
_______________________________________________________ TOOLS _______________________________________________________
Name Link Software
droopescan https://github.com/droope/droopescan Drupal
CMSmap https://github.com/Dionach/CMSmap Drupal
__________________________________________________ VULNERABILITIES __________________________________________________
Affected #Vulns Link
Drupal 7.38 5 http://cvedetails.com/version/185744
_____________________________________________________________________________________________________________________
Time: 11.3 sec Urls: 310 Fingerprints: 37580