Comme vous le savez, WordPress est un CMS très populaire et très utilisé pour créer toutes sortes de sites web, et il est possible d'intégrer des plugins et des thèmes pour ajouter des fonctionnalités.
Or tous ces éléments, que ce soit le cœur de Wordpress ou les plugins et les thèmes, peuvent contenir des vulnérabilités qui peuvent être exploitées par des attaquants pour compromettre le site.
Il peut également y avoir des problèmes de configuration ou de mauvaises pratiques qui peuvent être exploitées.
WPScan va donc vous permettre de scanner un site WordPress pour trouver les différents problèmes de sécurité qu'il peut contenir.
Vous pouvez retrouver le contenu de cet article sous forme de vidéo sur ma chaîne YouTube :
Installation
WPScan est un outil open-source développé en Ruby que vous pouvez trouver sur GitHub : https://github.com/wpscanteam/wpscan
Il est aussi généralement disponible dans les dépôts des distributions Linux. Par exemple, sur Kali Linux, vous pouvez l'installer avec la commande suivante :
sudo apt install wpscan
Sous MAC, vous pouvez l'installer avec la commande suivante :
brew install wpscanteam/tap/wpscan
Vous pouvez aussi l'utiliser avec Docker, ce qui est très pratique pour ne pas avoir à installer Ruby sur votre machine ou quand vous avez des problèmes de dépendances.
docker run -it --rm wpscanteam/wpscan --url https://target.tld/ --enumerate u
Ensuite, pour avoir accès à toutes les fonctionnalités de WPScan, vous devez vous inscrire sur le site de WPScan pour avoir une clé API : https://wpscan.com/api/
C'est gratuit et ça vous permettra d'avoir des détails supplémentaires sur les vulnérabilités trouvées.
Utilisation
Pour commencer, sachez que vous pouvez mettre à jour WPScan avec la commande suivante :
wpscan --update
En fonction de votre installation, vous pouvez avoir besoin de sudo pour mettre à jour WPScan.
Voici la commande que j'utilise généralement pour scanner un site WordPress :
wpscan --url http://target.com/ --enumerate u,m,at,ap,dbe,cb, --api-token <token>
Les options de la commande sont les suivantes :
-
--url
: l'URL du site à scanner -
--api-token
: votre clé API -
--enumerate
: les options pour scanner le site (c'est les options par défaut, mais je vous les mets quand même pour les expliquer)-
u
: les utilisateurs -
m
: les médias -
vt
: Recherches les thèmes vulnérables installés -
vp
: Recherches les plugins vulnérables installés -
dbe
: Recherche d'exports de base de données -
cb
: Recherche de backup de configuration
-
On recherche les plugins et les thèmes installés sur le site, car ils peuvent être vulnérables, même s'ils ne sont pas activés. Le simple fait de les avoir installés peut permettre d'exploiter les vulnerability qu'ils pourraient contenir.
Autres options intéressantes :
- Vous pouvez utiliser des méthodes plus agressives pour scanner le site avec les options
--detection-mode
,--plugins-detection
et--main-theme-detection
. - Vous pouvez aussi utiliser l'option
--force
pour forcer le scan même si le site n'est pas détecté comme étant un site WordPress. - Vous pouvez utiliser l'option
--disable-tls-checks
pour désactiver les vérifications TLS.
Exemple de résultats :
Il vous suffit ensuite d'analyser les résultats pour trouver les vulnérabilités et les exploiter et les corriger.
Vous pouvez aussi tester des attaques bruteforce sur les utilisateurs avec l'option --passwords
.
wpscan --url example.com -e u --passwords /path/to/password_file.txt
Vous pouvez aller voir la documentation de WPScan pour plus d'informations sur les options disponibles : https://github.com/wpscanteam/wpscan/wiki/WPScan-User-Documentation
Conclusion
WPScan est un outil essentiel pour tous ceux qui gèrent des sites WordPress et veulent s'assurer de leur sécurité. En détectant les vulnérabilités potentielles et en appliquant les correctifs nécessaires, vous pouvez protéger votre site contre les attaques.
N'oubliez jamais d'utiliser WPScan de manière éthique et légale. Assurez-vous d'avoir l'autorisation nécessaire avant de scanner un site.