Les 8 étapes du nettoyage WordPress
Activer le mode maintenance immédiatement
La première priorité est de limiter l'exposition : activez un mode maintenance pour que vos visiteurs ne chargent pas de code potentiellement malveillant. Ne supprimez et ne modifiez aucun fichier à ce stade — chaque modification efface des preuves qui seront utiles pour comprendre le vecteur d'attaque.
Changer tous les accès (mais pas encore les fichiers)
Changez immédiatement : le mot de passe admin WordPress, le mot de passe FTP/SFTP, le mot de passe de base de données, et si possible les clés de sécurité WordPress (wp-config.php AUTH_KEY, SECURE_AUTH_KEY, etc.). Ne touchez pas encore aux fichiers — le nettoyage vient après l'audit.
Scanner l'intégralité des fichiers
Un scan complet doit couvrir tous les fichiers PHP, JS, .htaccess et SVG — pas seulement le répertoire WordPress. Les attaquants déposent souvent des webshells dans wp-content/uploads/ (qui contient des médias et est rarement scruté) ou dans des répertoires temporaires. Utilisez un scanner externe qui analyse octet par octet sans exécuter de code.
Vérifier les checksums des fichiers core
WordPress.org publie les checksums MD5 officiels de tous les fichiers core pour chaque version. Comparez votre wp-login.php, wp-includes/, wp-admin/ aux valeurs officielles. Tout écart révèle une modification — soit une infection, soit une personnalisation à documenter. Cette étape est complémentaire au scan YARA : les fichiers core infectés ne correspondent pas toujours à des signatures connues.
Identifier la porte d'entrée
Consultez vos logs d'accès serveur (access.log) pour identifier la première requête suspecte : date, IP source, fichier ciblé, user-agent. Cette information est critique pour éviter une reinfection. Les vecteurs les plus fréquents : plugin vulnérable non mis à jour, thème nullé (version piratée), credential stuffing via wp-login.php.
Quarantaine — ne jamais supprimer
Déplacez les fichiers infectés hors du webroot vers un répertoire de quarantaine (jamais supprimés). Pour les fichiers core modifiés, remplacez-les par la version propre téléchargée depuis wordpress.org/download/releases/ — jamais par une « désinfection » manuelle qui pourrait laisser des traces. Pour les plugins et thèmes infectés, supprimez et réinstallez depuis le dépôt officiel.
Vérifier la base de données
Les injections SQL peuvent ajouter des backdoors dans la table wp_options (option_name: 'active_plugins' ou 'siteurl' modifié) ou injecter des scripts JS dans le contenu des articles via wp_posts. Exportez et inspectez en particulier wp_options, wp_users (vérifiez les comptes admin inconnus) et wp_usermeta.
Restaurer, mettre à jour, durcir
Après nettoyage : mettez à jour WordPress core, tous les plugins et tous les thèmes. Supprimez les thèmes et plugins inactifs (vecteurs d'attaque même désactivés). Activez l'authentification à deux facteurs sur tous les comptes admin. Configurez un scanner automatique pour détecter toute reinfection dans les 48 heures suivantes.