Aller au contenu
Nous contacter

Sécurité

Nettoyage WordPress piraté : étapes pour désinfecter et sécuriser

Redirections, comptes inconnus ou alerte de sécurité peuvent révéler une intrusion sur votre site. Voici les étapes pour contenir l’incident, nettoyer WordPress et préparer sa remise en ligne.

Mains manipulant une tablette devant un ordinateur portable
Au sommaire

Le nettoyage d’un WordPress piraté consiste à contenir l’incident, supprimer les éléments malveillants dans les fichiers et la base de données, puis corriger la faille utilisée. Avant toute intervention, protégez les visiteurs, changez les accès compromis et conservez une copie du site infecté. Vérifiez ensuite que l’infection ne revient pas avant de remettre le site en ligne.

Contenir le piratage et préserver une copie du site

Ne supprimez pas de fichiers au hasard dès les premiers signes d’intrusion. Votre priorité est de limiter l’exposition des visiteurs et de conserver les éléments nécessaires à l’analyse.

  1. Restreignez l’accès au site. Activez le mode maintenance ou protégez l’accès par un mot de passe serveur, avec une authentification HTTP. Un simple écran de maintenance ne bloque pas nécessairement tous les accès : une restriction au niveau du serveur offre une protection plus adaptée.
  2. Sauvegardez l’état actuel. Copiez les fichiers et exportez la base de données avant les modifications importantes. Conservez cette archive infectée hors du serveur, dans un espace sécurisé ou sur un support local chiffré.
  3. Changez les accès depuis un appareil sain. Renouvelez les mots de passe des administrateurs WordPress, de l’hébergement, du FTP ou SFTP, de la base de données et des e-mails liés au domaine. Utilisez des mots de passe longs et différents.
  4. Régénérez les clés et les jetons exposés. Vérifiez notamment les services d’e-mailing, les passerelles de paiement et le CDN. Un jeton dérobé peut rester utilisable après le nettoyage du site.

Si vous modifiez les identifiants de la base de données, reportez aussi les nouvelles valeurs dans wp-config.php. Sans cette mise à jour, WordPress ne pourra plus s’y connecter. En cas de difficulté, consultez la procédure pour résoudre une erreur de connexion à la base de données.

La copie de l’état infecté n’est pas une sauvegarde propre à restaurer en production. Elle sert à examiner les modifications, à rechercher la cause de l’incident et à retrouver des données si nécessaire.

Diagnostiquer l’étendue de l’infection WordPress

Un piratage ne remplace pas toujours la page d’accueil par un message visible. Certains indices apparaissent uniquement sur certaines pages, dans les résultats de recherche ou dans l’administration.

Recherchez notamment :

  • des redirections vers des sites inconnus ou des fenêtres intempestives ;
  • des pages de spam, des liens cachés ou des scripts ajoutés au contenu ;
  • des administrateurs inconnus ou des réglages modifiés ;
  • des envois massifs d’e-mails ou une consommation inhabituelle des ressources serveur ;
  • des avertissements dans Google Search Console ou dans le navigateur.

Dans le tableau de bord, vérifiez les comptes, les extensions et les thèmes récemment installés. Contrôlez également l’adresse du site, l’e-mail d’administration et les réglages des services de paiement. Le guide pour détecter un site WordPress piraté détaille les signes à examiner.

Sur le serveur, repérez les fichiers récemment modifiés et les fichiers PHP inhabituels dans wp-content/uploads. Examinez aussi les tâches planifiées du serveur et les événements WP-Cron : une tâche malveillante peut réinstaller une porte dérobée après sa suppression.

Déterminez enfin si l’incident touche uniquement WordPress ou aussi d’autres sites du même hébergement et la messagerie du domaine. Si plusieurs installations partagent les mêmes accès, elles doivent également être contrôlées.

Sécuriser les comptes et remplacer les fichiers infectés

Verrouiller les sessions et les permissions

Dans Utilisateurs, examinez les comptes administrateurs. Supprimez les comptes inconnus et retirez les droits d’administration aux personnes qui n’en ont pas besoin. Limitez également les accès FTP ou SFTP aux utilisateurs autorisés.

Modifiez les clés de sécurité WordPress, notamment AUTH_KEY et SECURE_AUTH_KEY, dans wp-config.php. Le changement de ces clés invalide les cookies de connexion et oblige les utilisateurs à se reconnecter.

Contrôlez les permissions des fichiers et dossiers. Évitez les droits trop ouverts, comme 777 : 644 pour les fichiers et 755 pour les dossiers conviennent généralement, selon la configuration de l’hébergement. Les droits de wp-config.php peuvent être plus restrictifs si le serveur le permet.

Réinstaller le cœur, les extensions et le thème

Pour retrouver des fichiers WordPress fiables, partez d’une archive officielle plutôt que d’essayer de repérer chaque modification à la main :

  1. Téléchargez une copie propre de WordPress, de la même version que celle installée ou de la dernière version stable si vous procédez aussi à une mise à jour.
  2. Remplacez intégralement les dossiers wp-admin et wp-includes, ainsi que les fichiers du cœur situés à la racine, depuis cette copie.
  3. Conservez wp-content et wp-config.php, mais inspectez-les : ils peuvent eux aussi contenir du code malveillant.
  4. Supprimez les extensions inutilisées. Réinstallez celles que vous conservez depuis le répertoire WordPress ou une archive fiable fournie par leur éditeur.
  5. Réinstallez le thème actif depuis une source fiable. Pour un thème premium, récupérez l’archive d’origine auprès de son éditeur.

Préservez les personnalisations légitimes avant de remplacer un thème, notamment si elles ont été faites directement dans ses fichiers. Comparez-les avec une copie saine avant de les réintroduire.

Dans wp-content, inspectez aussi uploads, mu-plugins et les dossiers de cache. Les fichiers .php, .phtml ou .phar dans les dossiers de téléversement méritent une vérification particulière, tout comme les fichiers aux noms aléatoires. Ne supprimez pas un fichier uniquement sur la base de son extension sans avoir vérifié son rôle.

Examinez les modifications de functions.php, header.php, wp-config.php et .htaccess, ainsi que la configuration Nginx si votre serveur l’utilise. Des fonctions comme base64_decode, eval, gzinflate, str_rot13 ou de longues lignes illisibles peuvent aider à repérer du code obfusqué, sans prouver à elles seules qu’un fichier est malveillant.

Si l’analyse ou la réinstallation dépasse vos possibilités, le nettoyage et la sécurisation d’un site WordPress piraté peuvent être confiés à un intervenant spécialisé. Demandez une liste des actions réalisées et des mesures préventives proposées.

Avec W-Maintenance

Confiez le nettoyage de votre site piraté

W-Maintenance peut examiner votre installation WordPress, supprimer les éléments malveillants et rechercher le point d’entrée.

Nettoyer et sécuriser mon site

Nettoyer la base de données et rechercher la faille

Une installation peut rester infectée même après le remplacement de ses fichiers. La base de données peut contenir des comptes frauduleux, des liens de spam, des scripts ou des réglages modifiés.

À l’aide de phpMyAdmin ou d’un outil adapté, examinez les éléments suivants :

  • Utilisateurs et rôles : comptes inconnus, adresses e-mail suspectes et administrateurs non autorisés.
  • Table wp_options : scripts, iframes, liens de spam et valeurs inhabituelles. Le préfixe wp_ peut être différent sur votre installation.
  • Widgets et réglages de thème : vérifiez notamment les options widget_* et theme_mods, susceptibles de contenir du contenu injecté.
  • Articles et pages : recherchez les liens masqués, par exemple avec display:none, les scripts et les redirections ajoutées.

Avant toute modification de la base, assurez-vous de disposer d’un export. Évitez les requêtes de remplacement global à l’aveugle : certaines données sont sérialisées et peuvent être endommagées par une modification directe. Un outil compatible WordPress, comme la commande search-replace de WP-CLI, permet de traiter ces données avec précaution.

Cherchez ensuite le point d’entrée. Les causes possibles comprennent une extension obsolète ou abandonnée, un thème provenant d’une source non fiable, des identifiants réutilisés ou dérobés, un poste infecté, ou encore une configuration serveur trop permissive.

Un thème ou une extension « nulled », c’est-à-dire une copie modifiée d’un produit normalement payant, peut contenir une porte dérobée. Retirez les composants de source douteuse et remplacez-les par des copies obtenues auprès de leurs éditeurs. Si le point d’entrée n’est pas corrigé, le site peut être compromis de nouveau.

Durcir WordPress après la désinfection

Une fois les éléments malveillants supprimés, réduisez les possibilités d’accès non autorisé. Mettez à jour WordPress, les extensions et les thèmes conservés, puis retirez les composants inutiles. Vérifiez également que la version de PHP utilisée par l’hébergement est compatible avec le site et maintenue.

Pour les comptes et l’administration :

  • activez l’authentification à deux facteurs pour les administrateurs et les éditeurs ;
  • limitez les tentatives de connexion pour réduire les attaques par force brute ;
  • restreignez l’accès à /wp-admin par adresse IP lorsque c’est possible, ou par authentification HTTP, après avoir vérifié les usages nécessaires au site ;
  • supprimez les comptes inactifs et appliquez à chacun le rôle adapté.

Pour le serveur, désactivez l’exécution de PHP dans wp-content/uploads avec une règle adaptée à Apache ou à Nginx. Forcez HTTPS et envisagez HSTS ainsi que des en-têtes de sécurité, comme Content-Security-Policy ou X-Frame-Options, après avoir vérifié leur compatibilité avec le site.

Désactivez XML-RPC s’il n’est pas utilisé et limitez les points d’accès inutiles. Un pare-feu applicatif peut compléter ces mesures selon les besoins du site. Activez enfin la journalisation pour disposer d’informations en cas de nouvelle activité suspecte.

Contrôler la réinfection et préparer la remise en ligne

Avant de rouvrir le site, parcourez les pages publiques et testez les principales fonctions : connexion, formulaires, contenus et, le cas échéant, commandes. Vérifiez aussi que les redirections suspectes ne réapparaissent pas et que les fichiers supprimés ne sont pas recréés.

Lancez des analyses côté serveur et côté application, puis complétez-les par une revue manuelle. Un scan ne détecte pas nécessairement tous les logiciels malveillants.

Consultez les journaux d’accès HTTP et d’erreur. Recherchez des requêtes vers des fichiers récemment créés, des appels POST inhabituels ou des tentatives répétées sur des URL sensibles. Comparez les adresses IP, les agents utilisateurs et les dates avec les modifications constatées sur le serveur.

Vérifiez également les comptes administrateurs, les tâches planifiées et WP-Cron après la remise en ligne. Le retour d’un compte inconnu, d’une tâche ou d’un fichier supprimé indique qu’un accès ou une porte dérobée peut encore être présent.

Rétablir la visibilité et organiser la maintenance

Si Google a signalé un problème de sécurité, corrigez-le avant de demander un réexamen dans Google Search Console. Contrôlez les URL indexées, le sitemap et l’absence de redirections cachées.

Supprimez les pages de spam et vérifiez leur réponse HTTP : un code 410 peut signaler une suppression définitive, tandis qu’une redirection 301 convient lorsqu’il existe un remplacement légitime. Ne redirigez pas systématiquement les pages de spam vers l’accueil.

Si le site collecte des données personnelles, évaluez les conséquences de l’incident et les éventuelles obligations de notification. Lorsque vous informez les utilisateurs, indiquez factuellement ce qui s’est passé, les mesures prises et les actions qu’ils doivent éventuellement effectuer, comme changer leur mot de passe.

Pour limiter le risque de récidive, organisez une routine de mises à jour, de sauvegardes vérifiées et de surveillance. Testez les modifications sur un environnement de staging avant de les déployer en production, puis vérifiez les fonctions du site. Le guide pour tester une extension avant son installation en production aide à préparer ces contrôles.

Avec W-Maintenance

Faites vérifier et sécuriser votre site WordPress

W-Maintenance peut prendre en charge le contrôle de votre site après une intrusion et les mesures de sécurisation.

Voir les formules

À retenir

  • Restreignez l’accès au site et conservez une copie des fichiers et de la base avant le nettoyage.
  • Changez les mots de passe et les jetons depuis un appareil sain, puis invalidez les sessions WordPress.
  • Réinstallez les fichiers depuis des sources fiables et contrôlez aussi la base de données.
  • Corrigez la faille d’origine et surveillez les signes de réinfection avant et après la remise en ligne.
  • Vérifiez les alertes Google et maintenez des sauvegardes ainsi que des mises à jour testées.

Questions fréquentes

Comment savoir si mon site WordPress est piraté ?

Des redirections inconnues, des pages de spam, des comptes administrateurs inhabituels ou une alerte dans Google Search Console sont des indices possibles. Vérifiez aussi les fichiers modifiés, les envois d’e-mails et les tâches planifiées.

Peut-on nettoyer un WordPress piraté sans supprimer ses contenus ?

Oui, le remplacement des fichiers du cœur ne nécessite pas de supprimer les contenus stockés dans la base de données. Il faut toutefois vérifier ces contenus et wp-content, qui peuvent contenir des injections, et conserver une sauvegarde avant toute intervention.

Pourquoi un site WordPress se réinfecte-t-il après nettoyage ?

Une porte dérobée, une tâche planifiée, un compte compromis ou une extension vulnérable peuvent permettre le retour de l’infection. Recherchez le point d’entrée, corrigez-le et surveillez les fichiers, les comptes et les journaux après la remise en ligne.

Article rédigé avec l’aide d’une IA à partir des sources citées et de notre pratique de la maintenance WordPress. Notre méthode éditoriale.

Parlons de votre site

Un souci avec votre site WordPress ?

Mises à jour, panne, piratage, lenteur : décrivez-nous la situation, un expert vous répond en général dans les deux heures ouvrées.

Décrire mon problèmeVoir les formules

Nous contacter