Un matin, votre page d'accueil affiche un article de casino en russe. Trois comptes administrateurs que vous n'avez jamais créés dorment dans la base. Voici la méthode complète que nous avons documentée pour nettoyer un WordPress piraté et éviter la rechute, testée sur un cas réel.
Comment ils entrent, en 2026
Le scénario le plus courant n'a rien de sophistiqué : un brute force distribué sur wp-login.php. Des dizaines d'adresses IP se relaient, chacune ne tente que quelques mots de passe. Résultat : un limiteur de tentatives par IP ne voit jamais rien d'anormal.
Les signes qui doivent alerter :
- des comptes admin inconnus, souvent avec des noms proches des vrais (
wpadmin4JJ,wordpress_29006d...) et des emails sur des domaines invalides - des articles que vous n'avez pas écrits, parfois épinglés en une
- des pics de POST sur
wp-login.phpouxmlrpc.phpdans les logs serveur
Étape 1 : préserver les preuves avant de nettoyer
Avant de supprimer quoi que ce soit, exportez ce qui documentera l'incident : liste des utilisateurs et leurs dates de création, articles suspects, extraits de logs. Un simple export JSON suffit. Vous en aurez besoin pour comprendre le vecteur d'entrée, et sans ça vous nettoierez à l'aveugle.
Étape 2 : couper les accès
Dans l'ordre :
- supprimer les comptes pirates et réattribuer leurs contenus à un compte sain
- régénérer le mot de passe de chaque admin légitime
- détruire toutes les sessions actives (WordPress garde les sessions en meta utilisateur)
- révoquer tous les mots de passe d'application
- faire tourner les clés et sels de
wp-config.phppour invalider les cookies
Étape 3 : vérifier l'intégrité des fichiers
Le nettoyage ne s'arrête pas à la base. Comparez le core avec les checksums officiels, et les plugins avec leurs distributions propres. Cherchez du PHP dans wp-content/uploads (il ne doit y en avoir aucun) et des tâches cron inconnues. Dans notre cas réel : thème, core et uploads étaient sains, l'attaque n'avait touché que la base. C'est fréquent, mais il faut le prouver, pas le supposer.
Étape 4 : fermer la porte d'entrée
C'est l'étape que tout le monde bâcle, et c'est pour ça que les sites repiratés existent. Contre un brute force distribué, deux mesures changent tout :
- un mot de passe long et aléatoire sur chaque compte à privilèges
-
une couche d'authentification serveur devant
wp-login.php(HTTP Basic Auth via.htaccess). Le botnet continue de frapper, mais plus aucune requête n'atteint le formulaire WordPress. Nous l'avons vérifié en conditions réelles : plusieurs centaines de tentatives le lendemain du durcissement, zéro n'a atteint WordPress.
Complétez avec le blocage de l'énumération des utilisateurs via l'API REST (/wp-json/wp/v2/users ne doit rien renvoyer aux anonymes) et DISALLOW_FILE_EDIT.
Étape 5 : surveiller 72 heures
Les attaquants reviennent vérifier leur accès. Pendant trois jours, surveillez les créations de comptes, les fichiers modifiés et les logs de connexion. Si le site reste propre, l'incident est clos. Documentez tout : la prochaine fois, vous irez dix fois plus vite.
La checklist complète
Le guide détaillé pas à pas, avec les commandes et les requêtes exactes pour chaque étape, est ici : Site WordPress piraté : nettoyer et sécuriser.
Pour vérifier en 30 secondes l'état d'exposition de votre site (38 contrôles, gratuit, sans inscription) : notre scanner WordPress.
Et pour durcir avant l'incident plutôt qu'après : sécuriser WordPress avec WAF, headers et CSP.