WPScan est un outil communautaire pour Linux vous permettant d’analyser et de déceler des failles potentielles sur vos sites web WordPress uniquement.
L’outil est libre et gratuit, en plus d’avoir l’avantage de s’installer sur tout type de distribution. Les mises à jour sont effectuées via GIT (un dépôt est présent sur GitHub), vous n’êtes cependant pas obligé de re-cloner à chaque fois le dépôt pour bénéficier des nouveautés – une commande est donnée plus bas pour mettre à jour WPScan.
Cet article est seulement présent pour vous présenter une solution de pentest. Je ne pourrai être tenu pour responsable si vous employez cet outil à des fins malintentionnées.
I. PRÉPARATION & INSTALLATION
L’installation de WPScan ne se fait pas en claquant des doigts – Il faut préparer auparavant votre machine de pentesting pour ensuite installer l’outil.
Vous devez installer ces utilitaires ci-dessous :
sudo pacman -Syu git ruby libyaml
« GIT » est incontournable, sans lui, vous ne pouvez pas récupérer WPScan dans sa dernière version. « Ruby » est l’outil vous permettant d’utiliser WPScan – En effet, WPScan est codé en Ruby, il faut donc l’interpréteur de commandes spécifique.
Lorsque vos outils de base sont installés, il est maintenant possible de rapatrier WPScan sur votre machine – En clonant le dépôt, un dossier sera automatiquement créé (« wpscan »). Pour une question d’organisation et de facilité, je me suis connecté en tant qu’utilisateur avec les droits sudo et je me suis dirigé à la racine de la machine.
sudo git clone https://github.com/wpscanteam/wpscan.git
L’outil est très léger, vous ne devriez donc pas attendre très longtemps.
Lorsque le téléchargement est terminé, vous pouvez entrer dans le dossier « wpscan » pour lancer l’installation.
cd wpscan
« Gem » est un outil de Ruby – La configuration par défaut a été laissée, un message d’erreur peut alors apparaître si vous tentez « rapidement » l’installation. C’est pour cette raison (et pour contourner le problème) qu’il faut absolument mettre l’attribut "--no-user-install" N’oubliez pas non plus « sudo bundle ». L’utilitaire Bundle a besoin des droits « sudo » pour pouvoir exécuter l’installation.
Vous ne pouvez pas lancer les installations et les compilations Ruby avec le compte « root ». Un message d’erreur s’affichera et bloquera l’installation. Utilisez donc un compte utilisateur disposant des droits sudo.
sudo gem install bundler --no-user-install && sudo bundle install --without test
Vos outils sont à présent installés, vous pouvez passer à l’installation des utilitaires nécessaires à l’exécution / l’exploitation de WPScan :
sudo gem install typhoeus && sudo gem install nokogiri
Lorsque toutes les commandes et les installations sont effectuées, WPScan est dès maintenant utilisable !!
Exemples d'utilisation
Toutes ces commandes sont à passer dans le dossier WPScan que vous avez cloné grâce à Git.
Mettre à jour la base de données des vulnérabilités (IMPÉRATIF)
sudo ruby wpscan.rb --update
Il est primordial d’effectuer une mise à jour de la liste des vulnérabilités si vous souhaitez détecter au maximum les failles. Cette commande permet donc de mettre à jour votre WPScan et d’être assuré d’avoir les dernières définitions / failles reconnues (ou pas) pour WordPress.
Lancer un scan complet sur un site WordPress
La commande ci-dessous est le test de référence : il scannera le site web ciblé à la recherche des failles possibles selon les sécurités du site web. La durée du test dépend du site web scanné.
sudo ruby wpscan.rb --url http://computerz.solutions/ -r -v --log
Explications de la commande
- --url nom_site_web : vous devez remplacer « http://… » par le site web ciblé. Vous pouvez aussi y mettre une adresse IP, mais n’oubliez pas de saisir devant "https://".
- L’attribut « -r » permet de choisir un User-Agent aléatoire : le script de test peut se faire passer pour un téléphone portable ou alors comme un PC utilisant le navigateur « Safari »…
- -v : mode « verbose » – Tous les tests passés vous seront montrés à l’écran.
- --log : permet de créer un fichier .txt avec le résultat de l’analyse du site (y compris les tests effectués)
Lancer un scan sur les thèmes d’un site WordPress
Vous pouvez restreindre WPScan à un test spécifique – c’est le cas de cette commande, où je souhaite scanner principalement le ou les thèmes disponibles et utilisés sur le site ciblé.
sudo ruby wpscan.rb --url http://computerz.solutions/ --enumerate t -r -v --log
Pour préciser les failles à rechercher, il faut donc utiliser l’attribut « --enumerate » avec l’option « t », pour « themes » (logique…). Notez bien que la lettre « t » est seule, il y a un espace entre « enumerate » et la lettre « t ».
Tout comme la commande au-dessus, les attributs « -r », « -v » et « –log » ont les mêmes fonctions.
Lancer un scan sur les plugins d’un site WordPress
sudo ruby wpscan.rb --url http://computerz.solutions/ --enumerate p -r -v --log
Même principe que les autres commandes, à la différence de l’attribut « enumerate » qui change : il faut utiliser la lettre « p » pour « plugins ». Ainsi, WPScan se concentrera sur les plugins actifs et visibles.
Lancer un scan sur les utilisateurs d’un site WordPress
sudo ruby wpscan.rb --url http://computerz.solutions/ --enumerate u -r -v --log
Lancer un scan sur l’exploit « TimThumb » d’un site WordPress
Pour plus d’information sur cette faille, je vous conseille cette adresse (Korben).
Certains sites sous WordPress possèdent de nombreuses failles, puisqu’ils ne sont pas à jour. La faille « TimThumb » est donc exploitable et (malheureusement) encore présente sur de nombreux sites. WPScan est capable de rechercher cette faille en modifiant l’attribut « enumerate » en y ajoutant deux « t ».
sudo ruby wpscan.rb --url http://computerz.solutions/ --enumerate tt -r -v --random-agent --log