Compte administrateur inconnu sur WordPress
Un admin que vous n'avez pas créé apparaît dans WordPress ? C'est un signe clair de piratage. Voici comment le supprimer sans vous verrouiller dehors, et fermer la porte.
Vous ouvrez la liste des utilisateurs de votre WordPress et vous tombez sur un compte administrateur inconnu : un nom que vous n’avez jamais saisi, une adresse e-mail qui n’est pas la vôtre, une inscription datée d’il y a quelques jours. Ce n’est pas un bug d’affichage ni un ancien collègue oublié. Un compte admin inconnu sur WordPress est l’un des signes les plus nets d’un piratage, et il demande une réaction précise, pas une suppression à la va-vite.
d’où vient ce compte que vous n’avez pas créé
Trois mécaniques expliquent presque tous les cas.
L’inscription ouverte exploitée. Si l’option « tout le monde peut s’inscrire » est activée et que le rôle par défaut a été détourné, un attaquant peut créer un compte puis le faire monter en grade. Même sans inscription ouverte, certaines extensions de formulaire ou de membres laissent passer des inscriptions non prévues.
L’élévation de privilèges via une extension vulnérable. C’est le scénario le plus courant. Une faille dans un plugin ou un thème permet à un visiteur ordinaire de se promouvoir administrateur, ou de créer un compte admin directement. Le compte apparaît alors comme légitime aux yeux de WordPress.
L’injection directe en base de données. Quand l’attaquant a déjà un pied dans la base (via une autre faille, ou un accès volé à phpMyAdmin), il insère une ligne dans la table wp_users et lui attribue le rôle administrateur dans wp_usermeta. Aucune trace dans les journaux de connexion : le compte est simplement apparu.
Dans les trois cas, le résultat est le même : quelqu’un d’autre a les pleins pouvoirs sur votre site.
supprimer le compte ne suffit pas
C’est le point le plus important, et celui que la plupart des gens ratent. Vous repérez le compte, vous le supprimez, vous vous sentez soulagé. Mais le pirate qui a réussi à créer un admin a presque toujours laissé un autre accès : une porte dérobée dans un fichier .php, une tâche planifiée, un second compte caché. Quelques heures plus tard, un nouvel admin réapparaît.
Supprimer le compte traite le symptôme visible. Il faut aussi couper l’accès qui a permis de le créer. Concrètement, ça veut dire enchaîner la suppression du compte, le changement de tous les mots de passe, la fermeture des sessions ouvertes, puis un nettoyage complet du site. Sauter une étape, c’est laisser la porte entrouverte.
Si vous voulez le contexte complet, voyez les autres signes d’un site piraté : un compte inconnu vient rarement seul.
repérer le compte dans Comptes > Utilisateurs
Connectez-vous à /wp-admin, allez dans Comptes (ou Utilisateurs selon la version) puis filtrez sur le rôle Administrateur. Cherchez :
- un nom d’utilisateur que vous n’avez pas créé, souvent une suite de caractères aléatoires ;
- une adresse e-mail inconnue, parfois sur un domaine douteux ;
- une date d’inscription récente qui ne correspond à aucune action de votre part.
Notez bien l’identifiant et l’e-mail avant toute manipulation : ça vous servira à vérifier ensuite en base.
attention aux comptes cachés
Un attaquant un peu soigneux fait en sorte que son compte n’apparaisse pas dans cette liste. Du code injecté (dans functions.php du thème, dans un plugin factice, ou via un filtre WordPress) masque le compte à l’affichage de l’admin tout en le laissant pleinement fonctionnel. Vous ne voyez rien dans Comptes, et pourtant l’admin existe.
Le seul moyen fiable de les débusquer, c’est de regarder la table wp_users directement en base. Ouvrez phpMyAdmin depuis votre hébergeur, sélectionnez la base de votre site, et listez les administrateurs avec cette requête :
SELECT u.ID, u.user_login, u.user_email, u.user_registered
FROM wp_users u
INNER JOIN wp_usermeta m ON u.ID = m.user_id
WHERE m.meta_key = 'wp_capabilities'
AND m.meta_value LIKE '%administrator%';
Si le préfixe de vos tables n’est pas wp_ (vérifiez dans wp-config.php la ligne $table_prefix), adaptez wp_users, wp_usermeta et wp_capabilities en conséquence, par exemple xyz_users et xyz_capabilities.
Comparez le résultat avec la liste de l’admin. Tout compte présent en base mais absent de l’écran Comptes est masqué volontairement : c’est une confirmation directe du piratage.
supprimer proprement, sans perdre de contenu
Quand vous supprimez un compte qui a publié des articles, des pages ou des produits, WordPress vous demande quoi faire de ce contenu. Choisissez Attribuer tout le contenu à et sélectionnez un compte légitime (le vôtre). Si vous cochez « supprimer tout le contenu », vous risquez d’effacer des publications réelles que le pirate aurait modifiées ou signées.
Pour un compte caché repéré uniquement en base, ne le supprimez pas à la main dans phpMyAdmin sauf si vous savez ce que vous faites : il faut nettoyer à la fois wp_users et les lignes liées dans wp_usermeta. Le plus sûr est de d’abord neutraliser le code qui le masque (voir le nettoyage plus bas), pour que le compte réapparaisse dans l’admin, puis de le supprimer normalement avec réattribution du contenu.
changer les mots de passe et régénérer les clés de sécurité
Une fois le ou les comptes pirates supprimés, fermez tous les accès existants.
Changez le mot de passe de chaque compte administrateur légitime, avec un mot de passe long et unique. Profitez-en pour vérifier qu’aucun abonné ou contributeur n’a été promu administrateur : dans la liste des utilisateurs, parcourez les autres rôles et confirmez que personne n’a un niveau qu’il ne devrait pas avoir.
Ensuite, régénérez les clés de sécurité (salts) de wp-config.php. Ces clés signent les cookies de session : les changer déconnecte instantanément tout le monde, y compris le pirate qui aurait une session ouverte. Rendez-vous sur le générateur officiel api.wordpress.org/secret-key/1.1/salt, copiez le bloc généré, et remplacez dans wp-config.php les lignes correspondantes :
define('AUTH_KEY', '...');
define('SECURE_AUTH_KEY', '...');
define('LOGGED_IN_KEY', '...');
define('NONCE_KEY', '...');
define('AUTH_SALT', '...');
define('SECURE_AUTH_SALT', '...');
define('LOGGED_IN_SALT', '...');
define('NONCE_SALT', '...');
Collez les huit nouvelles lignes à la place des anciennes. Tous les utilisateurs devront se reconnecter, c’est normal et voulu.
couper la porte d’entrée
Reste à fermer le mécanisme qui a permis la création du compte.
Dans Réglages > Général, vérifiez l’option Tout le monde peut s’inscrire (users_can_register). Si vous n’avez pas besoin d’inscriptions publiques, décochez-la. Juste en dessous, le Rôle par défaut de tout nouvel utilisateur doit être Abonné, jamais Administrateur ni Éditeur. Un rôle par défaut détourné est un boulevard pour l’attaquant.
Puis nettoyez le site : c’est l’étape qui élimine la backdoor et le code qui masque les comptes. Mettez à jour le cœur, le thème et toutes les extensions, supprimez celles que vous n’utilisez pas, et inspectez functions.php ainsi que les fichiers récemment modifiés. La marche à suivre détaillée est dans le guide complet quand WordPress est piraté. Une fois le site propre, sécurisez WordPress pour que ça ne recommence pas.
questions fréquentes
Le compte inconnu n’a rien publié, je peux juste le supprimer ?
La suppression est nécessaire mais pas suffisante. Tant que vous n’avez pas changé les mots de passe, régénéré les salts et nettoyé la backdoor, le compte peut réapparaître. Faites les étapes dans l’ordre.
Je ne vois aucun admin suspect dans l’admin, je suis tranquille ?
Pas forcément. Les comptes cachés n’apparaissent pas dans l’écran Comptes. Lancez la requête SQL sur wp_users ci-dessus et comparez : c’est le seul moyen de confirmer qu’il n’y a pas d’admin masqué.
Régénérer les salts va-t-il casser mon site ? Non. Ça déconnecte simplement tous les utilisateurs, qui devront se reconnecter. Le contenu, les réglages et les extensions ne sont pas touchés.
vous préférez ne pas y toucher
Si tout ça vous semble risqué, ou si vous voulez la certitude que rien n’a été oublié, WP-Detox s’en occupe. Un scan gratuit repère les comptes administrateurs anormaux, y compris ceux masqués en base, et les backdoors qui permettent de les recréer. En cas d’infection confirmée, le nettoyage prend environ 30 minutes : suppression des comptes pirates avec réattribution du contenu légitime, changement des accès, régénération des clés et nettoyage complet du site. Une sauvegarde est prise avant toute intervention. Tarif unique de 149 €, tout compris, remboursé si le nettoyage échoue.