- Isoler imm?diatement le site (mode maintenance ou suspension)
- Changer TOUS les mots de passe sans exception
- Scanner et identifier les fichiers malveillants
- Nettoyer ou restaurer depuis une sauvegarde saine
- Identifier la faille d'entr?e et colmater d?finitivement
Comment savoir si votre site est compromis
Un site WordPress hack? ne se manifeste pas toujours de fa?on ?vidente. Les attaquants modernes cherchent ? rester discrets le plus longtemps possible pour exploiter les ressources du serveur (crypto-mining, spam, phishing) sans que vous ne vous en rendiez compte.
Signes visibles
- Le site redirige vers un site inconnu ou affiche des pages de phishing
- Du contenu spam (liens vers des pharmacies, casinos, sites adultes) appara?t dans les pages
- Une alerte "Site trompeur" de Google Chrome s'affiche aux visiteurs
- Votre h?bergeur a suspendu le compte ou envoy? une alerte de malware
Signes discrets (? v?rifier activement)
- Des comptes administrateurs WordPress que vous n'avez pas cr?s
- Des fichiers PHP dans des dossiers qui ne devraient en contenir aucun (
/uploads/,/images/) - Google Search Console signale des URLs inconnues index?es sur votre domaine
- Des pics inexpliqu?s de trafic ou de charge serveur
Urgence : Chaque minute compte. Un site compromis peut ?tre utilis? pour attaquer d'autres sites, envoyer du spam ou h?berger du phishing ? ce qui entra?ne le blacklistage de votre domaine et de votre IP d'h?bergement.
Étape 1 ? Isoler le site imm?diatement
Avant toute chose, emp?chez les visiteurs d'?tre expos?s au contenu malveillant et limitez les d?g?ts potentiels.
- Passer en mode maintenance ? installez un plugin de maintenance ou ajoutez un fichier
.maintenance? la racine WordPress - R?voquer tous les acc?s FTP/SSH ? changez les mots de passe imm?diatement, ou demandez ? votre h?bergeur de suspendre l'acc?s
- Prendre une snapshot du serveur ? avant de nettoyer quoi que ce soit, conservez une copie forensique pour analyser l'attaque plus tard
# Cr?er un fichier maintenance WordPress (? la racine)
echo "" > .maintenance
# Ou bloquer l'acc?s au public via Nginx
location / {
return 503;
}
Étape 2 ? Changer tous les mots de passe
C'est non-n?gociable. Tous les mots de passe, sans exception, doivent ?tre chang?s car vous ne savez pas encore comment l'attaquant est entr? ? il a peut-?tre acc?s ? plusieurs vecteurs.
- Mot de passe WordPress admin ? tous les comptes, pas seulement le v?tre
- Mot de passe base de donn?es MySQL ? et mettre ? jour
wp-config.phpen cons?quence - Mot de passe FTP/SFTP ? via le panel de votre h?bergeur
- Mot de passe du panel d'h?bergement (cPanel, Plesk, etc.)
- Cl?s secr?tes WordPress ? les r?g?n?rer dans
wp-config.phpinvalide toutes les sessions actives
# R?g?n?rer les cl?s secr?tes WordPress
# Allez sur https://api.wordpress.org/secret-key/1.1/salt/
# Et remplacez les lignes correspondantes dans wp-config.php
define('AUTH_KEY', 'nouvelle-cl?-g?n?r?e-ici');
define('SECURE_AUTH_KEY', 'nouvelle-cl?-g?n?r?e-ici');
define('LOGGED_IN_KEY', 'nouvelle-cl?-g?n?r?e-ici');
define('NONCE_KEY', 'nouvelle-cl?-g?n?r?e-ici');
Étape 3 ? Scanner et identifier les fichiers malveillants
Il faut maintenant cartographier l'?tendue de l'infection. Plusieurs approches compl?mentaires :
Via un plugin de s?curit? (si l'admin est encore accessible)
Wordfence est le scanner le plus complet pour WordPress. Il compare chaque fichier de votre installation avec les fichiers officiels de WordPress.org et signale les diff?rences.
# Via WP-CLI (en ligne de commande)
wp plugin install wordfence --activate
wp wordfence scan --type=full
Via le serveur directement
# Trouver les fichiers PHP modifi?s r?cemment (7 derniers jours)
find /var/www/html -name "*.php" -mtime -7 -ls
# Chercher les patterns typiques de backdoors
grep -r "eval(base64_decode" /var/www/html --include="*.php"
grep -r "system(" /var/www/html --include="*.php"
grep -r "exec(" /var/www/html --include="*.php"
grep -r "passthru(" /var/www/html --include="*.php"
# Fichiers PHP dans le dossier uploads (toujours suspect)
find /var/www/html/wp-content/uploads -name "*.php"
Backdoors cach?es : Les attaquants ins?rent souvent du code dans des fichiers l?gitimes (functions.php, wp-config.php) et cr?ent des fichiers avec des noms inoffensifs (wp-cache.php, index.php dans /uploads/). V?rifiez tous les fichiers modifi?s, pas seulement les fichiers inconnus.
Étape 4 ? Nettoyer ou restaurer
Option A : Restaurer depuis une sauvegarde saine (recommand?)
Si vous avez une sauvegarde ant?rieure ? l'infection (v?rifiez la date de compromission dans les logs), la restauration est plus fiable qu'un nettoyage manuel.
- Restaurez les fichiers WordPress depuis la sauvegarde
- Restaurez la base de donn?es depuis la sauvegarde
- Mettez ? jour WordPress, tous les plugins et th?mes imm?diatement apr?s
- Supprimez les plugins et th?mes inutilis?s
Option B : Nettoyage manuel
- Supprimez tous les fichiers PHP inconnus identifi?s dans le scan
- R?installez WordPress core en ?crasant les fichiers existants
- R?installez chaque plugin et th?me depuis les sources officielles
- Nettoyez la base de donn?es des contenus et comptes malveillants
# R?installer WordPress core sans toucher ? wp-content et wp-config
wp core download --force
# Supprimer les comptes admin inconnus
wp user list --role=administrator
wp user delete ID_SUSPECT --reassign=ID_ADMIN_LEGITIME
# Nettoyer les options WordPress corrompues
wp option get siteurl
wp option get home
Étape 5 ? Identifier et colmater la faille d'entr?e
C'est l'?tape la plus importante et la plus souvent saut?e. Sans identifier comment l'attaquant est entr?, votre site sera re-compromis dans les heures qui suivent.
Analyser les logs d'acc?s
# Chercher les requ?tes POST suspectes dans les logs Apache/Nginx
grep "POST" /var/log/apache2/access.log | grep -v "wp-login\|wp-cron\|xmlrpc" | tail -100
# Chercher les acc?s ? des fichiers PHP dans des r?pertoires suspects
grep "\.php" /var/log/nginx/access.log | grep "uploads\|images\|cache" | tail -50
# Identifier l'IP d'attaque la plus fr?quente
awk '{print $1}' /var/log/apache2/access.log | sort | uniq -c | sort -rn | head -20
Vecteurs d'entr?e les plus courants
- Plugin ou th?me vuln?rable ? v?rifiez les CVE r?cents pour vos plugins via WPScan
- Mot de passe admin faible ? credential stuffing ou brute force sur wp-login.php
- Upload de fichier malveillant ? formulaire de contact ou plugin d'upload mal configur?
- Injection SQL ? via un plugin vuln?rable, acc?s direct ? la base
- H?bergement partag? compromis ? un autre site sur le m?me serveur ?tait infect?
Évitez la prochaine fois avec CyberGuard
CyberGuard surveille votre site WordPress en temps r?el : d?tection d'injections, blocage des tentatives de connexion brute force, alerte imm?diate en cas de comportement suspect ? avant que l'infection ne s'installe.
Prot?ger mon site maintenant ?