Détecter les vulnérabilités d’un site WordPress avec WPSCAN.

Détecter les vulnérabilités d’un site WordPress avec WPSCAN.

Rappel : L’article qui va suivre contient des techniques et méthodes qui peuvent s’avérer être dangereuses si elles sont utilisées à mauvais escient. Ce tutoriel a pour unique but de vous enseigner à vous protéger contre les “black-hat” (Hackers mal intentionnés) et ne doit en aucun cas être utilisé contre une entreprise, une organisation ou une administration publique de quelconque pays. Je me dédouane de toute responsabilité en cas de problèmes ou d’incidents de quelque nature que ce soit. Bon visionnage 🙂

Bonjour, aujourd’hui nous allons voir comment faire un scan complet de votre site WordPress afin de détecter d’éventuelles failles de sécurités sur votre site. Enfin, Nous essayerons de brutforcer la page de connexion du site. (/wp-login)

À la fin de cet article, je vous proposerai quelques solutions afin de limiter les scans de vulnérabilités contre votre site wordpress.

Comme je l’ai dit dans le titre, nous allons utilisé est WPscan, qui est l’outil le connut et le plus complet actuellement.

Alors, je vous rassure, rien de bien compliqué pour ce tutoriel, il suffit de disposer des bons outils, et de connaitre quelques lignes de commandes associées à WPscan.

Mise en pratique

Prérequis : Machine Linux de la Debian Family de préférence. J’utilise Kalilinux 2021.x, et un site wordpress accessible depuis la machine attaquante (Kali).

Pour ceux que sa intéresse, j’ai écrit un article sûr comment déployer rapidement un site wordpress. avec docker.

Kali : 192.168.40.200/24

WordPress : 192.168.40.134/24

Nous allons procéder dans un premier temps à un état des lieux du site wordpress avec la commande suivante :

wpscan --url http://192.168.40.134 --enumerate u
# le scan peut prendre du temps en fonction du volume de votre site wordpress. 

Affichage des caractéristiques du thème du site, est-il à jour (…)

Ce scan, permet notament de visualiser les caractéristiques des fonctionnalités suivantes :

  • Thème
  • Version de wordpress
  • Liste des plugins (Vulnérables, à jour ou non)
  • Liste des extensions (Vulnérables, à jour ou non)
  • Détecter les comptes utilisateurs

Nous allons détailler ce dernier point.

Comme vous le voyez sans mesures de protection, voilà ce qu’on peut arriver à dégager du test, et dans certains cas, notamment sur des sites « en production (où on ne pense pas à mettre un mdp robuste par flemme) », cela peut représenter une énorme faille de sécurité bien plus sensible à une attaque force brute par dictionnaire, car nous connaissons déjà l’identité des comptes du site. (User, Administratoooooor)

C’est ce que nous allons voir tout de suite :

Note : pour réaliser cette attaque j’utilise un dictionnaire de mot de passe avec environ une trentaine de mots de passe pré-sélectionnés, mais de manière générale, une attaque brute force par dico se conduit avec un fichier avec des centaines de milliers de ligne. (si vous n’avez pas de fichier contenant une liste de mdp de ce genre, rdv ici

Voici la commande, à taper suite à l’exécution du test d’audit ci-dessus :

wpscan --url http://192.168.40.134 -P /home/user/dicoMdp.txt -U user
# chemin absolu, pour le fichier .txt 
# user correspond, à l'administrateur, propriétaire du site que le test à détecté plutôt. 

Voilà, en quelques secondes avec un mot de passe très faible, on a « brute forcé » très facilement, ce compte qui je le rappelle est le compte « propriétaire du site », imaginez les dégâts …

Essayons la même attaque le deuxième utilisateur :

wpscan --url http://192.168.40.134 -P /home/user/dicoMdp.txt -U administratoooooor
# chemin absolu, pour le fichier .txt 
# administratoooooor correspond, à un administrateur du site que le test à détecté plutôt. 

Comment limiter ce genre de scan ?

Plusieurs « bonnes pratiques » sont à appliquer :

  • Chosir un Mdp robuste (Cela va de soi…)
  • Ne pas « ranger » son site wordpress à la racine d’un site (http://site.com/) , mais dans un sous dossier : http://site.com/monsuperblog/, cela est peut-être moins esthétique pour certains puristes, mais ça vous évitera d’être la cible de robot scanneurs de domaine automatique. (Détecteur de failles)
  • Installer l’extension Wordfence ou WP Cerber Security, Anti-spam & Malware Scan qui permettent de bloquer les attaques brute forces, et les IP des attaquants.
  • Utiliser un ou plusieurs compte uniquement pour la rédaction (en abaissant les privilèges de ces utilisateurs)
  • Implémenter un fichier de type robot.txt sur votre serveur, afin d’appliquer certaines règles et filtres de sécurité pour votre blog.

J’espère que ce tutoriel vous aura aidé à prendre conscience de l’importance de la sécurité pour des site wordpress, qui je le rappelle sont plus sensibles au attaque des black-hats contenu de la popularité de cette solution CMS. (Selon W3Techs, WordPress fait tourner plus de 35% de tous les sites web sur Internet en 2020)

À bientôt 🙂

Geoffrey Sauvageot-Berland

Ingénieur diplômé par l’état en Informatique et Cybersécurité. Généraliste, à l'origine administrateur systèmes et réseaux, j’occupe actuellement un poste d’auditeur en sécurité offensive. J’apprécie également la programmation/automatisation. Fondateur du blog : "Le Guide du SecOps", anciennement "Le Guide du SysOps"

Related Posts

Tester la sécurité d’une API : Un Guide Pratique

Tester la sécurité d’une API : Un Guide Pratique

Weevely – un Webshell interactif polyvalent (cheat sheet)

Weevely – un Webshell interactif polyvalent (cheat sheet)

Reconstruction d’OS non chiffrés : Analyse post-exploitation

Reconstruction d’OS non chiffrés : Analyse post-exploitation

Reverse/Bind shell – Quésaco

Reverse/Bind shell – Quésaco