Nettoyer malware WordPress : méthode complète pour une désinfection durable
Un scanner qui affiche « zéro menace » ne prouve pas que votre site est sain. Pour nettoyer malware WordPress durablement, il faut retrouver chaque fichier, chaque ligne de base de données et chaque accès que l’intrus a laissés derrière lui. Sinon, le même script revient quelques jours plus tard, souvent au pire moment.
L’agence Référenceur intervient auprès des artisans, commerçants, professions libérales, associations loi 1901 et boutiques en ligne de toute la France pour une désinfection méthodique et traçable, entièrement à distance. Vous trouverez ci-dessous la méthode que nous appliquons, les vérifications à votre portée et les points où l’aide d’un spécialiste ou de l’hébergeur devient utile.
Analysez la sécurité de votre site WordPress : lancez dès maintenant une première analyse gratuite avec notre outil ci-dessous.
Si l’attaque vient tout juste d’être découverte, commencez par la page qui liste les premières mesures quand WordPress est compromis. Le guide central de la sécurité WordPress replace ce sujet dans un ensemble plus large. Une analyse gratuite de sécurité de votre domaine est également accessible sur cette page.
Avant de supprimer virus WordPress, figer l’état du site
La tentation est forte d’effacer tout de suite les fichiers douteux. Pourtant, supprimer virus WordPress sans garder de trace revient à brouiller la piste qui mène à la faille. Commencez par une archive complète des fichiers et de la base, datée, étiquetée « infectée » et stockée hors du serveur. Elle sert à comprendre, jamais à restaurer.
Demandez à votre hébergeur les journaux du serveur web et l’historique des connexions FTP, SFTP ou SSH sur les dernières semaines. Rapprochés des dates de modification des fichiers, ces relevés désignent souvent le point d’entrée : formulaire d’une extension oubliée, identifiant partagé avec un ancien prestataire, mot de passe déjà divulgué ailleurs.
Changez ensuite tous les secrets depuis un ordinateur dont vous êtes sûr : espace client de l’hébergeur, FTP, utilisateur MySQL, comptes WordPress, mais aussi la messagerie qui reçoit les liens de réinitialisation. Tant que l’attaquant lit ces e-mails, il peut reprendre la main.
Ce que WP-CLI prouve en quelques minutes
Lorsque l’hébergement propose un accès SSH, l’outil en ligne de commande officiel WP-CLI fournit un constat objectif. La page de référence de la commande verify-checksums explique qu’elle confronte les fichiers du cœur aux empreintes publiées par WordPress.org pour la version installée.
wp core verify-checksums --include-root
wp plugin verify-checksums --all
wp user list --role=administrator --fields=ID,user_login,user_registered
wp cron event list
Avec --include-root, les fichiers ajoutés à la racine sont eux aussi signalés. Pour les extensions, seules celles hébergées sur WordPress.org disposent d’empreintes : un module acheté chez un éditeur ou codé sur mesure doit être retéléchargé à la source ou relu par un développeur.
Les deux dernières commandes révèlent les administrateurs, avec leur date de création, et les tâches planifiées. Un compte apparu la nuit de l’attaque ou un hook au nom fantaisiste doit être traité avant la reconstruction, faute de quoi il réinstallera le code malveillant.
Les cachettes que les scanners oublient
Les empreintes officielles ne couvrent ni les médias, ni la configuration, ni les extensions chargées automatiquement. Les attaquants le savent et y déposent leurs portes dérobées de secours.

| Zone à examiner | Ce qui doit alerter | Vérification pratique |
|---|---|---|
| wp-content/uploads | Présence du moindre fichier .php, parfois déguisé en miniature | Commande find ci-dessous, puis mise en quarantaine |
| Fichiers .htaccess de chaque dossier | Règle de réécriture vers un script inconnu | Comparer au bloc standard publié par WordPress |
| wp-config.php | Inclusion d’un fichier externe en tête de fichier | Ne conserver que les constantes que vous savez expliquer |
| wp-content/mu-plugins | Fichier inconnu, absent de la liste habituelle des extensions | Justifier chaque fichier, supprimer le reste |
| functions.php du thème enfant | Bloc ajouté en fin de fichier, souvent compressé | Diff avec votre dernière version maîtrisée |
| Tâches planifiées | Événement qui réécrit un fichier à heure fixe | Liste WP-CLI et suppression des hooks orphelins |
find wp-content/uploads -type f -name "*.php" -print
La documentation WordPress précise que le contenu de mu-plugins s’exécute sans activation et n’apparaît pas dans la liste habituelle des extensions, seulement dans un onglet à part. Une simple ligne y suffit à recréer un administrateur après chaque nettoyage.
À la lecture, méfiez-vous des chaînes interminables passées à base64_decode, gzinflate ou eval. Certaines extensions légitimes s’en servent aussi : isolez le fichier dans un dossier de quarantaine et notez son emplacement plutôt que de l’effacer à l’aveugle.
La base de données, second terrain d’infection
Un site aux fichiers irréprochables peut rester contaminé par sa base. Dans wp_options, les valeurs siteurl et home doivent reprendre votre domaine à l’identique, protocole compris, et aucune option ne doit charger un script hébergé ailleurs.
wp db search "<script" --all-tables
Cette recherche parcourt toutes les tables à la recherche de balises script. Le résultat inclut parfois des usages normaux, comme un code de mesure d’audience : chaque occurrence se vérifie à la main. Dans wp_posts, guettez aussi les iframes, les liens vers des sites de jeux ou de pharmacie et les pages publiées sans auteur identifiable.
Pour les comptes, relevez la date de création de chaque profil suspect avant de le supprimer : c’est un repère précieux pour dater l’intrusion. Notre fiche consacrée au compte administrateur WordPress détourné détaille la reprise de contrôle des accès.
Reconstruire plutôt que réparer : l’ordre des opérations
Une fois l’inventaire terminé, on remplace les composants au lieu de corriger ligne à ligne. Chaque étape repose sur la propreté de la précédente.
- Cœur WordPress : remplacez wp-admin et wp-includes par l’archive officielle de la même version.
- Extensions : supprimez les dossiers puis réinstallez-les depuis WordPress.org ou l’éditeur, jamais depuis une copie « nulled ».
- Thème : reprenez le thème parent d’origine et relisez le thème enfant fichier par fichier.
- Ménage : effacez thèmes inactifs, extensions désactivées, archives .zip et sous-dossiers de préproduction.
- Clés secrètes : lancez
wp config shuffle-saltspour invalider toutes les sessions ouvertes, y compris celle du pirate. - Contrôle final : relancez les vérifications WP-CLI, puis parcourez le site en navigation privée et sur smartphone.
Prévenez vos collaborateurs qu’ils devront se reconnecter. Quand l’installation est trop ancienne pour être reconstruite sereinement, une nouvelle version du site WordPress coûte parfois moins d’énergie qu’une succession de nettoyages.
Refermez ensuite la brèche : mises à jour du cœur, des extensions et du thème, version de PHP maintenue, double authentification et define( 'DISALLOW_FILE_EDIT', true ); dans wp-config.php. Les réglages complémentaires sont réunis dans notre guide du renforcement de la sécurité WordPress.
CNIL, Cybermalveillance.gouv.fr, plainte : les démarches en France
Dès que le site traite des données personnelles (formulaire de devis d’un artisan, prise de rendez-vous d’un cabinet, adhérents d’une association, clients d’une boutique), le RGPD s’applique. Si la violation présente un risque pour les personnes, l’article 33 prévoit une notification à la CNIL dans les meilleurs délais et, si possible, dans les 72 heures, via le téléservice dédié sur cnil.fr. Une notification initiale peut être complétée ensuite.
En cas de risque élevé, l’article 34 impose d’informer les personnes concernées. Même sans notification, l’incident doit être consigné dans votre documentation interne. Notre page sur la fuite de données d’un site WordPress détaille ces obligations ; elle ne remplace pas l’avis d’un juriste.
Côté assistance, Cybermalveillance.gouv.fr accompagne particuliers, entreprises, associations et collectivités. Depuis décembre 2024, la plateforme 17Cyber, portée avec la police et la gendarmerie, propose un diagnostic en ligne et un échange avec un policier ou un gendarme si l’atteinte le justifie. En cas de préjudice ou de chantage, déposez plainte au commissariat ou à la brigade de gendarmerie, avec l’archive infectée et vos notes.
Une désinfection pilotée 100 % en visioconférence
Nettoyer un WordPress ne demande aucune présence physique. Tout se déroule en visioconférence avec des accès délégués. Un premier échange sert à recenser les accès, à décider ce qui doit être conservé et à coordonner l’intervention avec votre hébergeur.
Vous pouvez suivre le travail en partage d’écran ou nous laisser opérer avec des identifiants temporaires que vous supprimez ensuite. À la fin, un compte rendu liste les fichiers retirés, les comptes effacés et l’origine la plus probable de l’attaque.
Une courte formation enregistrée montre à votre équipe les contrôles à refaire, et un suivi mensuel peut prendre en charge mises à jour et sauvegardes. Qu’il s’agisse d’un cabinet à Lyon ou d’une boutique à Nantes, la démarche est identique ; la page dépannage d’un site WordPress piraté présente notre offre complète.
Nettoyer malware WordPress : réponses aux questions courantes
Puis-je simplement remettre une sauvegarde récente ?
C’est risqué. Un script malveillant reste parfois en sommeil des semaines avant de se déclencher, si bien que la sauvegarde de la veille le contient déjà. Et même une copie plus ancienne laisse la faille ouverte et les mots de passe volés valides. Une restauration n’a de sens qu’après avoir daté l’intrusion, corrigé la vulnérabilité et renouvelé chaque accès.
Combien de temps faut-il pour nettoyer malware WordPress ?
Cela dépend de la taille du site, du nombre d’extensions et des accès disponibles. Un site vitrine bien documenté se traite plus vite qu’une boutique chargée de modules premium sans historique. Le délai le plus long tient souvent à la récupération des identifiants et des journaux. Prévoir ces éléments en amont permet de nettoyer malware WordPress sans attente inutile.
Une extension de sécurité suffit-elle pour supprimer virus WordPress ?
Elle repère les signatures déjà connues, mais peut manquer un code inédit, une injection en base ou un administrateur créé avec un nom crédible. Pour supprimer virus WordPress réellement, associez le scanner aux empreintes WP-CLI, à l’examen des zones sensibles et à une réinstallation propre. L’extension sert ensuite de sentinelle, pas de remède unique.
Mon hébergeur peut-il faire le nettoyage à ma place ?
Certains hébergeurs proposent une analyse antivirus ou suspendent un compte infecté pour protéger leurs serveurs, mais le contenu de WordPress reste généralement sous votre responsabilité. Réclamez au minimum les journaux d’accès, une sauvegarde côté serveur et la liste des fichiers modifiés récemment. Ces pièces accélèrent fortement le diagnostic et la recherche de la faille.
Faut-il prévenir la CNIL pour un site vitrine infecté ?
Tout dépend des données exposées. Un site sans formulaire ni compte utilisateur présente un risque différent d’une boutique en ligne. Si l’attaquant a pu accéder à des données personnelles et qu’un risque pour les personnes existe, la notification à la CNIL est attendue dans les meilleurs délais, si possible sous 72 heures. Dans tous les cas, documentez l’incident en interne et faites-vous conseiller.
Pourquoi le malware revient-il après chaque intervention ?
Parce qu’un élément a échappé au ménage : fichier PHP dans les médias, extension must-use, tâche cron, compte administrateur ou mot de passe FTP jamais changé. La porte d’entrée, souvent une extension non mise à jour, peut aussi rester ouverte. Un inventaire exhaustif avant la reconstruction est le seul moyen d’en finir.
J’héberge plusieurs sites sur le même compte : comment procéder ?
Traitez-les comme un incident unique. Sur un hébergement mutualisé, un script passe sans difficulté d’un dossier à l’autre, par exemple d’un site de préproduction oublié vers le site principal. Supprimez les installations inutiles, désinfectez les autres en même temps et donnez à chaque base de données un utilisateur et un mot de passe distincts.
Un doute sur l’état de votre site ? Lancez une analyse de sécurité gratuite de votre site WordPress :
Le même code malveillant réapparaît sur votre site WordPress ? Planifiez un appel visio de 20 minutes pour diagnostiquer le site : nous examinons avec vous les symptômes, les accès disponibles et la méthode de désinfection adaptée.