Retour au blog Sécurité WordPress - 12 min

Comment nettoyer un WordPress infecté : procédure complète étape par étape

Votre WordPress est compromis ? Cette procédure méthodique vous guide du diagnostic au nettoyage complet, en passant par la suppression des backdoors et la prévention de la réinfection.

Découvrir que votre WordPress est infecté est stressant, mais paniquer est votre pire ennemi. Un nettoyage précipité sans méthode risque de manquer des backdoors qui permettront une réinfection rapide. Cette procédure pas à pas vous guide à travers chaque étape pour nettoyer complètement votre site et éviter que l'histoire se répète.

Avant de commencer : évaluer la situation

Confirmer l'infection

Ne partez pas d'une hypothèse. Vérifiez concrètement :

  • Sucuri SiteCheck : sitecheck.sucuri.net — scan externe gratuit
  • Google Safe Browsing : transparencyreport.google.com/safe-browsing/search?url=votresite.fr
  • Wordfence : Lancez un scan complet depuis le tableau de bord
  • Symptômes visibles : Contenu étrange dans les pages, redirections vers des sites tiers, avertissements navigateur

Identifier le type d'infection

Différentes infections nécessitent des approches différentes :

Type d'infectionSymptôme principalGuide dédié
Pharma hackContenu médicament dans GoogleGuide pharma hack
Casino hackLiens casino dans les pagesGuide casino hack
Redirections malveillantesVisiteurs redirigésGuide redirections
DéfacementPage remplacée par un message pirateGuide défacement
Backdoor seuleAucun symptôme visible mais présence confirméeCe guide

Phase 1 : Isolation et sauvegarde de l'infecté

Isoler le site

  1. Activez une page de maintenance (503 + Retry-After 7200)
  2. Notifiez votre hébergeur — il peut avoir des alertes sur votre compte
  3. Isolez le site du reste de votre hébergement si vous en gérez plusieurs

Sauvegarder le site infecté

Oui, sauvegardez le site infecté. Cette archive servira à :

  • Analyse post-incident pour comprendre le vecteur d'entrée
  • Point de référence pour mesurer l'efficacité du nettoyage
  • Documentation pour votre déclaration CNIL si nécessaire

Stockez cette sauvegarde hors du serveur compromis.

Phase 2 : Analyse des fichiers compromis

Trouver les fichiers modifiés récemment

```bash
# Fichiers PHP modifiés dans les 30 derniers jours
find /var/www/html -name "*.php" -newer /var/www/html/wp-config.php -mtime -30

# Fichiers PHP dans des répertoires qui ne devraient pas en avoir
find /var/www/html/wp-content/uploads -name "*.php"
find /var/www/html/wp-content/cache -name "*.php"
```

Rechercher les patterns malveillants

``bash # Code encodé et fonctions dangereuses grep -rl "eval(base64_decode" /var/www/html/ grep -rl "gzinflate(str_rot13" /var/www/html/ grep -rl "create_function" /var/www/html/wp-content/plugins/ grep -rl "\$_POST\['pass'\]" /var/www/html/ ``

Vérifier les fichiers système WordPress

Comparez votre wp-admin/ et wp-includes/ avec une installation WordPress fraîche de la même version. Toute différence est suspecte.

Phase 3 : Nettoyage

Option A : Restauration depuis backup propre (recommandée)

Si vous disposez d'une sauvegarde antérieure à l'infection (vérifiez la date avec les logs d'accès) :

  1. Vérifiez d'abord que la sauvegarde est propre (scan Sucuri sur la sauvegarde)
  2. Restaurez les fichiers via FTP
  3. Restaurez la base de données via phpMyAdmin
  4. Changez immédiatement tous les mots de passe (suite au point suivant)

Option B : Nettoyage manuel

1. Réinstaller WordPress core :
Téléchargez WordPress depuis wordpress.org, remplacez les dossiers wp-admin/ et wp-includes/ en conservant wp-content/ et wp-config.php.

2. Réinstaller les plugins :
Supprimez tous les plugins et réinstallez-les depuis wordpress.org ou depuis les sites officiels des développeurs. Ne réinstallez jamais depuis une source tierce.

3. Réinstaller le thème :
Même procédure pour le thème actif.

4. Nettoyer la base de données :
```sql
-- Chercher du contenu injecté dans les posts
SELECT ID, post_title, post_content FROM wp_posts
WHERE post_content LIKE '%eval(%'
OR post_content LIKE '%base64_decode%'
OR post_content LIKE '%casino%'
OR post_content LIKE '%viagra%';

-- Chercher des options suspectes
SELECT option_name, LEFT(option_value, 100) FROM wp_options
WHERE option_value LIKE '%eval(%' OR option_value LIKE '%base64%';
```

5. Supprimer les utilisateurs inconnus :
Vérifiez tous les comptes administrateurs dans WordPress. Supprimez ceux que vous ne reconnaissez pas.

Phase 4 : Durcissement post-nettoyage

Changer tous les accès

  • Mot de passe WordPress (tous les comptes)
  • Mot de passe FTP et SFTP
  • Mot de passe base de données MySQL (et mettre à jour wp-config.php)
  • Mot de passe cPanel / hébergement
  • Clés secrètes WordPress dans wp-config.php

Activer les mesures préventives

Consultez notre guide de sécurisation WordPress pour les mesures complètes : 2FA, WAF, blocage XML-RPC, changement URL de connexion.

Surveillance renforcée pendant 4 semaines

Une réinfection dans les jours suivants est fréquente si le vecteur d'entrée n'a pas été colmaté. Mettez en place un monitoring actif de votre contenu pour détecter immédiatement toute réinfection.


Articles connexes : Pharma hack | Site blacklisté Google | Sécuriser WordPress

Surveiller mes URL