Développé par Andrew Horton urbanadventurer et Brendan Coles bcoles
Dernière version : v0.5.5. 16 janvier 2021
Licence : GPLv2
Ce produit est soumis aux conditions détaillées dans le contrat de licence. Pour plus d’informations sur WhatWeb, visitez :
Page d'accueil : https://morningstarsecurity.com/research/whatweb
Wiki : https://github.com/urbanadventurer/WhatWeb/wiki/
Si vous avez des questions, des commentaires ou des préoccupations concernant WhatWeb, veuillez consulter la documentation avant de contacter l'un des développeurs. Vos commentaires sont toujours les bienvenus.
WhatWeb identifie les sites Web. Son objectif est de répondre à la question « Quel est ce site Web ? ». WhatWeb reconnaît les technologies Web, notamment les systèmes de gestion de contenu (CMS), les plateformes de blogs, les packages de statistiques/analyses, les bibliothèques JavaScript, les serveurs Web et les appareils intégrés. WhatWeb dispose de plus de 1 800 plugins, chacun reconnaissant quelque chose de différent. WhatWeb identifie également les numéros de version, les adresses e-mail, les identifiants de compte, les modules de structure Web, les erreurs SQL, etc.
WhatWeb peut être furtif et rapide, ou minutieux mais lent. WhatWeb prend en charge un niveau d'agressivité pour contrôler le compromis entre vitesse et fiabilité. Lorsque vous visitez un site Web dans votre navigateur, la transaction inclut de nombreux indices sur les technologies Web qui alimentent ce site Web. Parfois, une seule visite d'une page Web contient suffisamment d'informations pour identifier un site Web, mais lorsque ce n'est pas le cas, WhatWeb peut interroger davantage le site Web. Le niveau d'agressivité par défaut, appelé « furtif », est le plus rapide et ne nécessite qu'une seule requête HTTP d'un site Web. Ceci convient à l’analyse de sites Web publics. Des modes plus agressifs ont été développés pour être utilisés dans les tests d'intrusion.
La plupart des plugins WhatWeb sont complets et reconnaissent une gamme d'indices allant du subtil à l'évident. Par exemple, la plupart des sites Web WordPress peuvent être identifiés par la balise méta HTML, par exemple '', mais une minorité de sites Web WordPress suppriment cette balise d'identification mais cela ne contrecarre pas WhatWeb. Le plugin WordPress WhatWeb propose plus de 15 tests, qui incluent la vérification du favicon, des fichiers d'installation par défaut, des pages de connexion et la vérification de « /wp-content/ » dans les liens relatifs.
Utiliser WhatWeb pour analyser reddit.com.
$ ./whatweb reddit.com
http://reddit.com [301 Moved Permanently] Country[UNITED STATES][US], HTTPServer[snooserv], IP[151.101.65.140], RedirectLocation[https://www.reddit.com/], UncommonHeaders[retry-after,x-served-by,x-cache-hits,x-timer], Via-Proxy[1.1 varnish]
https://www.reddit.com/ [200 OK] Cookies[edgebucket,eu_cookie_v2,loid,rabt,rseor3,session_tracker,token], Country[UNITED STATES][US], Email[[email protected],[email protected]], Frame, HTML5, HTTPServer[snooserv], HttpOnly[token], IP[151.101.37.140], Open-Graph-Protocol[website], Script[text/javascript], Strict-Transport-Security[max-age=15552000; includeSubDomains; preload], Title[reddit: the front page of the internet], UncommonHeaders[fastly-restarts,x-served-by,x-cache-hits,x-timer], Via-Proxy[1.1 varnish], X-Frame-Options[SAMEORIGIN]
.$$$ $. .$$$ $.
$$$$ $$. .$$$ $$$ .$$$$$$. .$$$$$$$$$$. $$$$ $$. .$$$$$$$. .$$$$$$.
$ $$ $$$ $ $$ $$$ $ $$$$$$. $$$$$ $$$$$$ $ $$ $$$ $ $$ $$ $ $$$$$$.
$ `$ $$$ $ `$ $$$ $ `$ $$$ $$' $ `$ `$$ $ `$ $$$ $ `$ $ `$ $$$'
$. $ $$$ $. $$$$$$ $. $$$$$$ `$ $. $ :' $. $ $$$ $. $$$$ $. $$$$$.
$::$ . $$$ $::$ $$$ $::$ $$$ $::$ $::$ . $$$ $::$ $::$ $$$$
$;;$ $$$ $$$ $;;$ $$$ $;;$ $$$ $;;$ $;;$ $$$ $$$ $;;$ $;;$ $$$$
$$$$$$ $$$$$ $$$$ $$$ $$$$ $$$ $$$$ $$$$$$ $$$$$ $$$$$$$$$ $$$$$$$$$'
WhatWeb - Next generation web scanner version 0.5.5.
Developed by Andrew Horton (urbanadventurer) and Brendan Coles (bcoles)
Homepage: https://morningstarsecurity.com/research/whatweb
Usage: whatweb [options] <URLs>
TARGET SELECTION:
<TARGETs> Enter URLs, hostnames, IP addresses, filenames or
IP ranges in CIDR, x.x.x-x, or x.x.x.x-x.x.x.x
format.
--input-file=FILE, -i Read targets from a file. You can pipe
hostnames or URLs directly with -i /dev/stdin.
TARGET MODIFICATION:
--url-prefix Add a prefix to target URLs.
--url-suffix Add a suffix to target URLs.
--url-pattern Insert the targets into a URL. Requires --input-file,
eg. www.example.com/%insert%/robots.txt
AGGRESSION:
The aggression level controls the trade-off between speed/stealth and
reliability.
--aggression, -a=LEVEL Set the aggression level. Default: 1.
Aggression levels are:
1. Stealthy Makes one HTTP request per target. Also follows redirects.
3. Aggressive If a level 1 plugin is matched, additional requests will be
made.
4. Heavy Makes a lot of HTTP requests per target. Aggressive tests from
all plugins are used for all URLs.
HTTP OPTIONS:
--user-agent, -U=AGENT Identify as AGENT instead of WhatWeb/0.5.5.
--header, -H Add an HTTP header. eg "Foo:Bar". Specifying a default
header will replace it. Specifying an empty value, eg.
"User-Agent:" will remove the header.
--follow-redirect=WHEN Control when to follow redirects. WHEN may be `never',
`http-only', `meta-only', `same-site', or `always'.
Default: always.
--max-redirects=NUM Maximum number of contiguous redirects. Default: 10.
AUTHENTICATION:
--user, -u=<user:password> HTTP basic authentication.
--cookie, -c=COOKIES Provide cookies, e.g. 'name=value; name2=value2'.
--cookiejar=FILE Read cookies from a file.
PROXY:
--proxy <hostname[:port]> Set proxy hostname and port.
Default: 8080.
--proxy-user <username:password> Set proxy user and password.
PLUGINS:
--list-plugins, -l List all plugins.
--info-plugins, -I=[SEARCH] List all plugins with detailed information.
Optionally search with keywords in a comma
delimited list.
--search-plugins=STRING Search plugins for a keyword.
--plugins, -p=LIST Select plugins. LIST is a comma delimited set of
selected plugins. Default is all.
Each element can be a directory, file or plugin name and
can optionally have a modifier, eg. + or -
Examples: +/tmp/moo.rb,+/tmp/foo.rb
title,md5,+./plugins-disabled/
./plugins-disabled,-md5
-p + is a shortcut for -p +plugins-disabled.
--grep, -g=STRING|REGEXP Search for STRING or a Regular Expression. Shows
only the results that match.
Examples: --grep "hello"
--grep "/he[l]*o/"
--custom-plugin=DEFINITIONtDefine a custom plugin named Custom-Plugin,
--custom-plugin=DEFINITION Define a custom plugin named Custom-Plugin,
Examples: ":text=>'powered by abc'"
":version=>/powered[ ]?by ab[0-9]/"
":ghdb=>'intitle:abc "powered by abc"'"
":md5=>'8666257030b94d3bdb46e05945f60b42'"
--dorks=PLUGIN List Google dorks for the selected plugin.
OUTPUT:
--verbose, -v Verbose output includes plugin descriptions. Use twice
for debugging.
--colour,--color=WHEN control whether colour is used. WHEN may be `never',
`always', or `auto'.
--quiet, -q Do not display brief logging to STDOUT.
--no-errors Suppress error messages.
LOGGING:
--log-brief=FILE Log brief, one-line output.
--log-verbose=FILE Log verbose output.
--log-errors=FILE Log errors.
--log-xml=FILE Log XML format.
--log-json=FILE Log JSON format.
--log-sql=FILE Log SQL INSERT statements.
--log-sql-create=FILE Create SQL database tables.
--log-json-verbose=FILE Log JSON Verbose format.
--log-magictree=FILE Log MagicTree XML format.
--log-object=FILE Log Ruby object inspection format.
--log-mongo-database Name of the MongoDB database.
--log-mongo-collection Name of the MongoDB collection. Default: whatweb.
--log-mongo-host MongoDB hostname or IP address. Default: 0.0.0.0.
--log-mongo-username MongoDB username. Default: nil.
--log-mongo-password MongoDB password. Default: nil.
--log-elastic-index Name of the index to store results. Default: whatweb
--log-elastic-host Host:port of the elastic http interface. Default: 127.0.0.1:9200
PERFORMANCE & STABILITY:
--max-threads, -t Number of simultaneous threads. Default: 25.
--open-timeout Time in seconds. Default: 15.
--read-timeout Time in seconds. Default: 30.
--wait=SECONDS Wait SECONDS between connections.
This is useful when using a single thread.
HELP & MISCELLANEOUS:
--short-help Short usage help.
--help, -h Complete usage help.
--debug Raise errors in plugins.
--version Display version information. (WhatWeb 0.5.5).
EXAMPLE USAGE:
* Scan example.com.
./whatweb example.com
* Scan reddit.com slashdot.org with verbose plugin descriptions.
./whatweb -v reddit.com slashdot.org
* An aggressive scan of wired.com detects the exact version of WordPress.
./whatweb -a 3 www.wired.com
* Scan the local network quickly and suppress errors.
whatweb --no-errors 192.168.0.0/24
* Scan the local network for https websites.
whatweb --no-errors --url-prefix https:// 192.168.0.0/24
* Scan for crossdomain policies in the Alexa Top 1000.
./whatweb -i plugin-development/alexa-top-100.txt
--url-suffix /crossdomain.xml -p crossdomain_xml
Les types de journalisation suivants sont pris en charge :
Vous pouvez générer simultanément plusieurs journaux en spécifiant plusieurs options de journalisation en ligne de commande. Les utilisateurs avancés qui souhaitent une sortie SQL doivent lire le code source pour voir les fonctionnalités non prises en charge.
Les matchs se font avec :
Pour lister les plugins pris en charge :
$ ./whatweb -l
Plugin Name - Description
--------------------------------------------------------------------------------
1024-CMS - 1024 is one of a few CMS's leading the way with the implementation...
360-Web-Manager - 360-Web-Manager
3COM-NBX - 3COM NBX phone system. The NBX NetSet utility is a web interface i...
3dcart - 3dcart - The 3dcart Shopping Cart Software is a complete ecommerce s...
4D - 4D web application deployment server
4images - 4images is a powerful web-based image gallery management system. Fe...
... (truncated)
Pour afficher plus de détails sur un plugin ou rechercher des plugins pour un mot-clé :
$ ./whatweb -I phpBB
WhatWeb Detailed Plugin List
Searching for phpBB
================================================================================
Plugin: phpBB
--------------------------------------------------------------------------------
Description: phpBB is a free forum
Website: http://phpbb.org/
Author: Andrew Horton
Version: 0.3
Features: [Yes] Pattern Matching (7)
[Yes] Version detection from pattern matching
[Yes] Function for passive matches
[Yes] Function for aggressive matches
[Yes] Google Dorks (1)
Google Dorks:
[1] "Powered by phpBB"
================================================================================
Tous les plugins sont chargés par défaut.
Les plugins peuvent être sélectionnés par répertoires, fichiers ou noms de plugins sous forme de liste délimitée par des virgules avec l'option de ligne de commande -p ou --plugin.
Chaque élément de la liste peut avoir un modificateur : + ajoute à l'ensemble complet, - supprime de l'ensemble complet et aucun modificateur ne remplace les valeurs par défaut.
L'option de ligne de commande --dorks renvoie Google Dorks pour le plugin sélectionné. Par exemple, --dorks wordpress renvoie "est fièrement propulsé par WordPress"
L'option de ligne de commande --grep, -g recherche dans la page cible la chaîne sélectionnée et renvoie une correspondance dans un plugin appelé Grep si elle est trouvée.
WhatWeb présente plusieurs niveaux d'agression. Par défaut, le niveau d'agression est défini sur 1 (furtif) qui envoie une seule requête HTTP GET et suit également les redirections.
--aggression, -a
1. Stealthy Makes one HTTP request per target. Also follows redirects.
2. Unused
3. Aggressive Can make a handful of HTTP requests per target. This triggers
aggressive plugins for targets only when those plugins are
identified with a level 1 request first.
4. Heavy Makes a lot of HTTP requests per target. Aggressive tests from
all plugins are used for all URLs.
Les plugins agressifs de niveau 3 devineront davantage d'URL et effectueront des actions potentiellement inappropriées sans autorisation. WhatWeb ne prend actuellement en charge aucun test de niveau d'intrusion/d'exploitation dans les plugins.
Une analyse furtive de niveau 1 identifie que smartor.is-root.com/forum/ utilise phpBB version 2 :
$ ./whatweb smartor.is-root.com/forum/
http://smartor.is-root.com/forum/ [200] PasswordField[password], HTTPServer[Apache/2.2.15], PoweredBy[phpBB], Apache[2.2.15], IP[88.198.177.36], phpBB[2], PHP[5.2.13], X-Powered-By[PHP/5.2.13], Cookies[phpbb2mysql_data,phpbb2mysql_sid], Title[Smartors Mods Forums - Reloaded], Country[GERMANY][DE]
Une analyse agressive de niveau 3 déclenche des tests supplémentaires dans le plugin phpBB qui identifient que le site Web utilise phpBB version 2.0.20 ou supérieure :
$ ./whatweb -p plugins/phpbb.rb -a 3 smartor.is-root.com/forum/
http://smartor.is-root.com/forum/ [200] phpBB[2,>2.0.20]
Notez l'utilisation de l'argument -p pour sélectionner uniquement le plugin phpBB. Il est conseillé, mais pas obligatoire, de sélectionner un plugin spécifique lorsque vous tentez d'identifier les versions de logiciels en mode agressif. Cette approche est beaucoup plus furtive car elle limitera le nombre de requêtes.
WhatWeb n'a pas de mise en cache, donc si vous utilisez des plugins agressifs pour rediriger les URL, vous pouvez récupérer les mêmes fichiers plusieurs fois.
WhatWeb propose plusieurs options pour augmenter les performances et la stabilité.
Les commandes --wait et --max-threads peuvent être utilisées pour faciliter l'évasion IDS.
Changer l'agent utilisateur à l'aide de l'option de ligne de commande -U ou --user-agent évitera la règle Snort IDS pour WhatWeb.
Si vous analysez des plages d'adresses IP, il est beaucoup plus efficace d'utiliser un scanner de ports tel que massscan pour découvrir lesquels ont le port 80 ouvert avant de numériser avec WhatWeb.
La détection des jeux de caractères, avec le plugin Charset, diminue considérablement les performances en nécessitant plus de CPU. Ceci est requis par la journalisation JSON et MongoDB.
Pour activer la journalisation MongoDB, installez la gemme mongo. gemme installer mongo
Pour activer la détection des jeux de caractères et la journalisation MongoDB, installez la gemme rchardet. gem install rchardet cp plugins-disabled/charset.rb my-plugins/
Les plugins sont faciles à écrire. Commencez par parcourir les didacticiels des plugins dans le dossier my-plugins/ .
Un aperçu des didacticiels du plugin est ici. plugin-tutorials.txt
Après avoir progressé dans les didacticiels, lisez la section Développement du wiki.
La version de développement WhatWeb propose des mises à jour régulières.
Parcourez le wiki pour plus de documentation et de techniques d'utilisation avancées.
Merci aux personnes suivantes qui ont contribué à WhatWeb.
Il est difficile de suivre toutes les personnes qui ont contribué à WhatWeb. Si votre nom manque, faites-le-moi savoir.