Aller au contenu

WhatWeb : savoir ce que votre site révèle de lui-même

WHATWEB : SAVOIR CE QUE VOTRE SITE RÉVÈLE DE LUI-MÊME

Yankam Ngueguim Joël Stéphane Par 1

Sécurité des applications web vs. sécurité des API

Avant toute attaque, il y a une question simple : « qu'est-ce qui tourne là-dedans ? » WhatWeb y répond en une requête. C'est précisément pour cela qu'il faut savoir ce qu'il trouve sur votre propre site.

WhatWeb est un outil d'identification de technologies web, écrit en Ruby par Andrew Horton et Brendan Coles. Il est libre, livré d'office avec Kali Linux, et compte aujourd'hui plus de 1 800 greffons de reconnaissance. Son principe tient en une phrase : il demande une page, lit ce que la réponse contient, et compare ces indices à sa base de signatures.

Ce que fait WhatWeb, concrètement

Un serveur web est bavard. Sans que personne ne l'ait voulu, une réponse HTTP ordinaire annonce souvent le logiciel qui la produit, sa version, le langage de l'application, le gestionnaire de contenu, parfois jusqu'au nom du thème installé. WhatWeb ne force aucune porte : il lit ce que le site publie de lui-même.

Schéma : WhatWeb envoie une requête, lit les en-têtes, le HTML, les cookies et les scripts de la réponse, puis compare ces indices à ses signatures pour identifier nginx, PHP, WordPress et jQuery.

Les indices viennent de partout : l'en-tête Server, l'en-tête X-Powered-By, le nom des cookies, la balise <meta name="generator">, les chemins de fichiers (/wp-content/ trahit WordPress), le nom des bibliothèques JavaScript, jusqu'à la mise en forme des messages d'erreur.

Pourquoi cela vous concerne, même sans être pentester

Mettons les choses dans l'ordre. Connaître la version exacte d'un logiciel ne donne aucun accès. Mais cela transforme une recherche vague en recherche précise : « WordPress 6.2.1 » saisi dans une base de vulnérabilités publique renvoie en quelques secondes la liste des failles connues de cette version-là.

Un administrateur a donc deux raisons d'utiliser WhatWeb :

  • Inventaire. Savoir ce qui tourne réellement sur ses propres machines, et constater les versions oubliées.
  • Mesure d'exposition. Voir son site comme le voit un inconnu, et décider ce qu'on accepte de laisser visible.

Installer WhatWeb

Sous Kali Linux, l'outil est déjà présent. Ailleurs, sur Debian ou Ubuntu :

sudo apt update
sudo apt install whatweb

whatweb --version

Pour disposer d'une version plus récente que celle des dépôts, on passe par le dépôt officiel :

git clone https://github.com/urbanadventurer/WhatWeb.git
cd WhatWeb
sudo gem install bundler
bundle install
./whatweb --version

Le premier scan, et comment le lire

La forme la plus simple tient en deux mots :

whatweb example.com

La réponse tient sur une ligne, dense :

http://example.com [200 OK] Apache[2.4.41], Country[CAMEROON][CM],
HTTPServer[Ubuntu Linux][Apache/2.4.41 (Ubuntu)], IP[102.x.x.x],
PHP[7.4.3], Title[Mon site], WordPress[6.2.1], JQuery[3.7.1]

Chaque élément se lit ainsi :

ÉlémentCe qu'il dit
[200 OK]Le code de réponse HTTP. Un 301 signalerait une redirection.
HTTPServer[…]Le serveur web et, ici, le système qui l'héberge.
PHP[7.4.3]Le langage et sa version : lue dans X-Powered-By.
WordPress[6.2.1]Le gestionnaire de contenu et sa version.
Country[…], IP[…]Localisation de l'hébergeur, déduite de l'adresse.

Pour que WhatWeb explique chacune de ses trouvailles plutôt que de les aligner, on ajoute -v :

whatweb -v example.com

Les niveaux d'agressivité

C'est le réglage le plus important, et le plus mal compris. Il décide du nombre de requêtes envoyées, donc de la précision du résultat, et de la trace laissée dans les journaux du serveur.

Les quatre niveaux d'agressivité de WhatWeb : niveau 1 discret avec une seule requête et réglage par défaut, niveau 2 inutilisé, niveau 3 agressif relançant les greffons déjà reconnus, niveau 4 lourd interrogeant tous les greffons.

whatweb -a 1 example.com     # discret, une requête : le défaut
whatweb -a 3 example.com     # affine les versions déjà repérées
whatweb -a 4 example.com     # tous les greffons, URL devinées

Le niveau 1 ne fait rien de plus qu'un navigateur ordinaire : une requête, une page publique. Le niveau 4 devine des adresses et interroge tous les greffons ; il se voit immédiatement dans les journaux, et doit être réservé aux cibles pour lesquelles vous disposez d'un accord écrit.

Les options qui servent vraiment

OptionEffet
-vDétaille chaque greffon reconnu. -vv sert au débogage.
-a NIVEAUAgressivité, de 1 à 4.
-i FICHIERLit la liste des cibles dans un fichier.
-t NNombre de fils d'exécution. 25 par défaut.
-U AGENTChange l'en-tête User-Agent, celui par défaut étant reconnu par certaines sondes de détection.
--proxy HÔTE:PORTPasse par un mandataire, avec --proxy-user si besoin.
-p LISTERestreint ou étend les greffons employés.
--no-errorsTait les erreurs : indispensable sur une plage d'adresses.

Plusieurs cibles à la fois

WhatWeb accepte une plage d'adresses ou un fichier. Sur un parc, c'est la forme utile :

# toutes les machines d'un réseau local
whatweb --no-errors 192.168.1.0/24

# une liste de domaines, un par ligne
whatweb -i mes-domaines.txt --no-errors

Garder une trace exploitable

Une sortie dans le terminal se perd. Pour un inventaire que l'on compare d'un mois sur l'autre, on enregistre :

whatweb -i mes-domaines.txt --log-json=inventaire.json
whatweb -i mes-domaines.txt --log-xml=inventaire.xml
whatweb -i mes-domaines.txt --log-brief=resume.txt

Le format JSON se prête bien au traitement. Pour extraire les serveurs repérés, par exemple :

jq -r '.[] | .target + " -> " +
       (.plugins.HTTPServer.string // ["inconnu"] | join(","))' inventaire.json

Le revers : réduire ce que votre site laisse voir

Une fois le scan passé sur vos propres domaines, vient la partie utile. Voici la même réponse HTTP avant et après nettoyage :

Comparaison de deux réponses HTTP : à gauche, les en-têtes Server, X-Powered-By et X-Generator annoncent les versions exactes ; à droite, ces en-têtes ont été retirés et il ne reste que le nécessaire.

Sous Apache, dans la configuration principale :

ServerTokens Prod
ServerSignature Off
Header unset X-Powered-By

Sous nginx :

server_tokens off;
proxy_hide_header X-Powered-By;

Sous PHP, dans php.ini :

expose_php = Off

Et sous WordPress, la balise generator se retire depuis le fichier functions.php du thème :

remove_action('wp_head', 'wp_generator');

Une mise en garde, parce qu'elle compte plus que tout ce qui précède : masquer une version ne corrige aucune faille. Cela retire un panneau indicateur, rien de plus. Un attaquant un peu patient retrouve la version par d'autres moyens : le comportement des erreurs, l'empreinte des fichiers statiques, la présence de chemins caractéristiques. La seule protection réelle reste la mise à jour.

Ce que WhatWeb ne fait pas

Il ne cherche aucune vulnérabilité, n'exploite rien, ne teste aucun mot de passe. Il identifie, et s'arrête là. Confondre une empreinte technologique avec un audit de sécurité est l'erreur la plus courante des débutants : savoir qu'un site tourne sous WordPress 6.2.1 ne dit pas s'il est vulnérable, seulement où regarder.

Le cadre légal : à lire avant de lancer la commande

Une nuance mérite d'être posée clairement. Au niveau 1, WhatWeb demande une page publique : techniquement, il fait ce que fait n'importe quel navigateur. Au niveau 4, il devine des adresses et sollicite des ressources que le site n'a pas publiées : l'intention change, et la qualification juridique peut suivre.

Au Cameroun, la loi n° 2010/012 du 21 décembre 2010 relative à la cybersécurité et à la cybercriminalité réprime l'accès et le maintien frauduleux dans un système d'information. En France, l'article 323-1 du Code pénal punit l'accès ou le maintien frauduleux dans un système de traitement automatisé de données de trois ans d'emprisonnement et 100 000 € d'amende, peines portées à cinq ans et 150 000 € si des données sont modifiées ou le fonctionnement altéré.

La règle pratique tient en une ligne : vos propres domaines, ou un accord écrit du propriétaire. Un accord verbal ne vous protège pas. Les plateformes de bug bounty et les laboratoires d'entraînement : TryHackMe, Hack The Box, ou une machine virtuelle montée chez vous : offrent un terrain où s'exercer sans ambiguïté.

Pour aller plus loin

OutilCe qu'il apporte en plus
WappalyzerLa même idée, depuis le navigateur, en naviguant normalement.
nmap -sVIdentifie les services sur tous les ports, pas seulement le web.
httpxTrès rapide sur de grandes listes de domaines.
NucleiPasse de l'identification à la recherche de failles connues.

En résumé

WhatWeb répond à une question précise et s'y tient : qu'est-ce qui fait tourner ce site ? Une commande, une requête, une ligne de réponse. Sa vraie valeur, pour qui administre un site, n'est pas d'aller regarder chez les autres, c'est de retourner l'outil vers soi, de constater ce que l'on annonce au monde entier sans le savoir, et de décider ce que l'on garde.

Lancez-le sur votre propre domaine. Le résultat est souvent instructif.

Sur le même sujet

Questions / Réponses

Aucune question. Soyez le premier à poser une question.
★ ★ ★ ★ ★
Aucune note. Soyez le premier à attribuer une note !

Commentaires

  • GTA138

    1 GTA138 Le 12/10/2025

    Tulisan ini sangat menarik,
    membuat saya lebih paham topiknya.
    Saya sangat terbantu membacanya dan belakangan juga menjelajahi **GTA138**
    yang menyuguhkan konten digital dengan bahasa sederhana.

    Semoga selalu berkembang.

Ajouter un commentaire

Anti-spam