Analyse de vulnérabilités WordPress avec WPScan

Présentation de WPScan

WordPress alimente une part majeure du web mondial, ce qui en fait une cible de choix pour les audits de sécurité. WPScan est un scanner de vulnérabilités "black box" conçu spécifiquement pour tester la résilience des installations WordPress. Écrit en Ruby, cet outil permet d'identifier les versions obsolètes du noyau, des thèmes et des extensions, tout en s'appuyant sur une base de données de vulnérabilités maintenue à jour.

Installation et configuration

WPScan est généralement préinstallé sur les distributions axées sur la sécurité comme Kali Linux, Parrot OS ou BlackArch. Pour les autres systèmes Linux ou macOS, il peut être installé via RubyGems ou en clonant le dépôt source :

# Installation via RubyGems
gem install wpscan

# Mise à jour de la base de données locale
wpscan --update

Pour obtenir des détails précis sur les vulnérabilités (références CVE, scores de critiicté), l'utilisation d'une API Token est nécessaire. Vous pouvez obtenir un jeton gratuit (limité à un certain nombre de requêtes quotidiennes) en créant un compte sur le site officiel de WPScan.

Méthodes d'énumération fondamentales

La puissance de WPScan réside dans sa capacité à extraire des informations structurelles d'un site sans accès administratif.

1. Analyse de base

Une commande simple permet d'iedntifier la version de WordPress et les thèmes/plugins visibles :

wpscan --url http://mon-site-test.com --api-token VOTRE_JETON_ICI

2. Énumération des utilisateurs

L'identification des identifiants valides est une étape cruciale pour les tests de force brute. WPScan utilise différentes techniques (API REST, archives d'auteurs) pour lister les utilisateurs :

wpscan --url http://mon-site-test.com --enumerate u

3. Détection des extensions et thèmes vulnérables

Il est possible de cibler spécifiquement les composants additionnels pour gagner du temps :

  • vp (Vulnerable Plugins) : Analyse uniquement les extensions présentant des failles connues.
  • ap (All Plugins) : Tente de lister tous les plugins installés.
  • vt (Vulnerable Themes) : Recherche les thèmes vulnérables.
wpscan --url http://mon-site-test.com -e vp,vt

Tests de robustesse des mots de passe

Une fois les noms d'utilisateurs récupérés, WPScan peut effectuer une attaque par dictionnaire sur l'interface de connexion :

# Test de force brute sur un utilisateur spécifique
wpscan --url http://mon-site-test.com --usernames admin --wordlist /chemin/vers/dictionnaire.txt --threads 15

Note : L'utilisation du paramètre --threads permet d'accélérer le processus, mais peut déclencher des mécanismes de protection (WAF) ou saturer les ressources du serveur cible.

Techniques avancées de contournement

Certains administrateurs bloquent les requêtes identifiées par l'User-Agent par défaut de WPScan. Pour contourner ces restrictions basiques, vous pouvez utiliser des en-têtes aléatoires ou passer par un proxy :

# Utilisation d'un User-Agent aléatoire et d'un proxy HTTP
wpscan --url http://mon-site-test.com --random-user-agent --proxy http://127.0.0.1:8080

Si WordPress est installé dans un répertoire personnalisé ou si le chemin du contenu (wp-content) a été modifié, utilisez les options dédiées :

wpscan --url http://mon-site-test.com --wp-content-dir custom-content-folder

Synthèse des options courantes

Option Description
--url L'adresse cible du site WordPress.
-e / --enumerate Lance l'énumération (u: utilisateurs, p: plugins, t: thèmes, tt: timthumbs).
--api-token Clé pour interroger la base de données de vulnérabilités.
-o / --output Enregistre le rapport dans un fichier externe.
--force Force le scan même si WordPress n'est pas détecté au premier abord.

Étiquettes: wpscan wordpress-security vulnerability-scanning penetration-testing kali-linux

Publié le 16 juin à 19h49