Comment nettoyer un site Web ou un blog WordPress piraté

Publié: 2021-02-16

Que votre site Web WordPress ait été piraté et que vous soyez actuellement en contrôle des dégâts, ou que vous vous prépariez au pire, cet article vous guidera tout au long du processus de nettoyage d'un site Web WordPress piraté. Le processus est documenté dans un format étape par étape facile à suivre pour vous aider à accomplir les tâches suivantes :

  • Reprenez le contrôle de votre site WordPress
  • Identifier la source probable de l'infection
  • Trouver l'infection et le code malveillant
  • Supprimez tous les logiciels malveillants, les portes dérobées et les shells Web
  • Supprimez votre domaine de toutes les listes de logiciels malveillants telles que la base de données Google Safe Browsing
  • Prévenir une récidive

Votre site WordPress piraté est-il vraiment piraté ?

Site WordPress piraté

Parfois, il est assez clair qu'un site WordPress a été piraté, par exemple, si votre site Web a été dégradé. Dans d'autres cas, ce n'est peut-être pas aussi clair. Avant de vous lancer dans un processus de nettoyage de WordPress, confirmez que votre site Web WordPress a bien été piraté et qu'il ne s'agit pas d'un problème technique sans rapport. Lisez l'article comment vérifier si mon WordPress est piraté pour déterminer si votre site Web ou votre blog a été piraté ou non.

Reprenez le contrôle

La reprise de contrôle commence en fonction de la quantité d'accès que vous avez pu perdre à la suite d'une attaque. Par exemple, en accédant à un serveur, un attaquant peut faire pivoter les informations d'identification pour empêcher les utilisateurs légitimes d'accéder au serveur, ou peut-être peut-il modifier le mot de passe de l'administrateur WordPress pour empêcher un administrateur WordPress de se connecter.

Bien que cela dépende beaucoup de votre configuration, votre fournisseur d'hébergement pourra très probablement vous aider à récupérer l'accès à un environnement d'hébergement partagé ou à un serveur privé virtuel (VPS) exécutant votre site Web. Si vous avez perdu l'accès à l'administrateur WordPress, suivez le guide officiel de WordPress sur la réinitialisation de votre mot de passe administrateur.

Effectuer une sauvegarde

Même si vous avez une solution de sauvegarde WordPress en place, faites une sauvegarde du site Web WordPress actuel. Faire une sauvegarde WordPress à ce stade est très important pour un certain nombre de raisons, notamment les suivantes.

  • Une sauvegarde permet d'analyser l'infection ultérieurement,
  • Certains hébergeurs peuvent avoir recours à la suppression de sites Web piratés par mesure de précaution pour éviter qu'ils ne propagent des logiciels malveillants ou des spams - selon votre hébergeur, cela peut se produire sans avertissement,
  • Si vous n'avez pas de stratégie de sauvegarde actuellement en place, vous pourrez peut-être récupérer une partie du contenu du site Web à partir de cette sauvegarde avant que les choses n'empirent.

De plus, si vous utilisez WordPress sur un serveur privé virtuel (VPS), envisagez de prendre un instantané de l'intégralité de la machine virtuelle si possible (gardez à l'esprit que cela est généralement associé à un coût supplémentaire). Lorsque vous prenez des instantanés, gardez à l'esprit que si vous utilisez des volumes externes pour héberger votre installation WordPress (par exemple, un stockage en réseau), vous devez également prendre une copie de tous les volumes qui stockent l'installation principale de WordPress, wp-content , votre base de données MySQL , ainsi que tous les accès au serveur Web et les journaux d'erreurs.

Restauration à partir d'une sauvegarde

Si vous avez une stratégie de sauvegarde en place, il est maintenant temps de la mettre en action. En supposant que vous ayez accès à une sauvegarde récente, la restauration peut être le moyen le plus rapide de vous remettre en ligne. résoudre pourquoi vous avez été piraté en premier lieu.

Si votre site Web WordPress a été piraté à la suite d'une vulnérabilité exploitée ou d'une faille de sécurité, il est essentiel de s'efforcer de comprendre ce qui s'est passé (si possible).

Que se passe-t-il si je n'ai pas de sauvegarde ou si je ne peux pas restaurer ma sauvegarde avec succès ?

Si vous n'avez pas de sauvegarde, vous pouvez restaurer avec succès, selon la gravité de la situation, vous souhaiterez peut-être mettre votre site Web WordPress en mode maintenance pour vous permettre de travailler sur la restauration de votre site tout en informant les visiteurs qu'ils doivent revenir plus tard. En attendant, continuez à suivre le reste de ce guide. En mettant votre site Web en mode maintenance, grâce à l'utilisation de wp_maintenance() 1 fonction, WordPress renverra un code d'état HTTP 503. Un statut 503 indique à Google et aux autres robots d'exploration que quelque chose s'est mal passé sur la page, et qu'ils doivent vérifier plus tard.

Une réponse HTTP 503 est importante pour le référencement car elle évitera d'endommager votre classement de recherche en cas d'arrêt temporaire de votre site Web. Pour plus d'informations sur le code d'état HTTP 503 et son importance dans le référencement, consultez l'article de Yoast sur le sujet.

Identifiez comment WordPress a été piraté

Une fois votre site sauvegardé, la prochaine chose à l'ordre du jour est de découvrir autant que possible ce qui s'est passé, c'est-à-dire quelle faille de sécurité l'attaquant a exploitée pour accéder à votre installation WordPress.

Vérification des journaux d'activité, des journaux du serveur Web et du serveur FTP

Si vous conservez un journal d'activité WordPress, c'est peut-être le meilleur endroit pour commencer votre analyse. Voyez si vous pouvez identifier un comportement suspect. Recherchez les événements des utilisateurs nouvellement créés ou les changements de mot de passe utilisateur. Vérifiez également si WordPress, des plugins ou des fichiers de thème ont été modifiés.

Vous devriez également consulter les fichiers journaux du serveur Web, du serveur FTP et du système d'exploitation pour détecter tout comportement inhabituel ou suspect. Bien que cela puisse être un peu fastidieux, vous voudrez commencer par vérifier s'il y a un trafic étrange provenant d'une seule adresse IP. Vous pouvez le faire en utilisant une variété de scripts shell utilitaires et une doublure. Pour une vue en temps réel sur les journaux de votre serveur Web, GoAccess peut être utile.

Plugins et thèmes WordPress inutilisés et obsolètes

Vérifiez la liste des plugins installés, à la fois depuis le tableau de bord WordPress et dans le répertoire /wp-content/plugins/ . Tous les plugins WordPress sont-ils utilisés ? Sont-ils tous à jour ? Vérifiez également les thèmes et le répertoire des thèmes /wp-content/themes/ . Vous ne devriez avoir qu'un seul thème installé, celui que vous utilisez. Si vous utilisez un thème enfant, vous aurez deux répertoires.

Code et installations WordPress inutilisés

Le code restant et inutilisé est un autre problème courant. Parfois, les développeurs et les administrateurs système mettent à jour les fichiers directement sur le serveur et effectuent une sauvegarde du fichier d'origine avec une extension telle que .old , .orig ou .bak . Les attaquants profitent fréquemment de cette mauvaise pratique et les outils pour rechercher de tels fichiers de sauvegarde sont largement et facilement disponibles.

La façon dont cela fonctionne est qu'un attaquant tente d'accéder à des fichiers tels que index.php.old . Habituellement, les fichiers .php sont configurés pour être exécutés par l'interpréteur PHP, mais en ajoutant une extension .old (ou autre) à la fin du fichier, le serveur Web sert le fichier à l'utilisateur. En étant simplement capable de deviner le nom d'un fichier de sauvegarde, un attaquant peut être en mesure de télécharger le code source qui peut contenir des informations sensibles, ou peut fournir à l'attaquant des indices sur ce qu'il faut exploiter.

Un problème similaire est la conservation des anciennes installations de WordPress. Lorsque les administrateurs système reconstruisent leurs sites Web, ils laissent parfois des copies d'anciennes installations WordPress dans un sous-répertoire /old/ . Ces anciennes installations de WordPress seraient généralement toujours accessibles sur Internet, et donc une cible juteuse pour un attaquant pour exploiter les vulnérabilités connues dans les anciennes versions de WordPress avec tous les plugins.

Il est conseillé de supprimer tout code inutilisé, installations WordPress, plugins WordPress, thèmes WordPress et tout autre fichier ancien ou inutilisé (rappelez-vous que vous pouvez toujours vous tourner vers votre sauvegarde si vous avez besoin de restaurer quelque chose que vous avez accidentellement supprimé). Votre site Web ne doit contenir que les fichiers dont vous avez besoin. Tout ce qui est supplémentaire ou inutilisé doit être traité comme une surface d'attaque supplémentaire.

Utilisateurs et rôles WordPress

Vérifiez que tous les utilisateurs de WordPress sont utilisés. Y a-t-il de nouveaux suspects ? Vérifiez que tous les rôles sont intacts. Si vous suivez les directives des utilisateurs et des rôles WordPress, vous ne devriez avoir qu'un seul utilisateur avec un rôle d'administrateur WordPress.

Fournisseurs d'hébergement mutualisé

Si votre WordPress fonctionne sur un fournisseur d'hébergement partagé, la source du piratage pourrait être un autre site Web qui s'est avéré être exécuté sur le même serveur que le vôtre. Dans ce cas, le scénario le plus probable serait que l'attaquant aurait réussi à élever ses privilèges. Ensuite, en conséquence, accédez à l'ensemble du serveur, et à son tour à votre site Web WordPress. Si vous soupçonnez qu'une telle attaque a eu lieu, le meilleur recours serait de contacter immédiatement votre fournisseur d'hébergement, après avoir sauvegardé votre site Web.

fichiers .htaccess

Les fichiers .htaccess (fichiers de configuration du serveur HTTP Apache au niveau du répertoire) sont également une cible courante pour les pirates. Ils sont généralement utilisés pour rediriger les utilisateurs vers d'autres sites Web de spam, de phishing ou autrement malveillants. Vérifiez tous les fichiers .htaccess sur votre serveur, même ceux qui ne sont pas utilisés par WordPress. Certaines des redirections peuvent être difficiles à repérer.

Portez une attention particulière à la configuration qui redirige les requêtes HTTP en fonction de chaînes d'agent utilisateur spécifiques - les attaquants peuvent cibler des appareils spécifiques (par exemple, les utilisateurs mobiles), ou même s'engager dans le SEO black hat en configurant votre serveur Web pour qu'il réponde différemment aux robots des moteurs de recherche.

Si possible, envisagez d'adopter une configuration globale plutôt que de vous fier aux fichiers .htaccess dans Apache HTTP Server. Non seulement les fichiers .htaccess dégradent les performances, mais ils ouvrent votre site Web WordPress à une variété de vulnérabilités de sécurité si un attaquant est en mesure de lire, ou pire encore, d'écrire le contenu de ces fichiers. Selon la documentation Apache HTTP Server 2 , l'utilisation des fichiers .htaccess peut être complètement désactivée en définissant la directive AllowOverride sur none dans le fichier httpd.conf principal.

Vérification d'autres points d'entrée

Il existe plusieurs autres points d'entrée sur un serveur Web. Assurez-vous de tous les vérifier, tels que les serveurs FTP, SSH, le serveur Web, etc.

Trouver l'infection WordPress et le code malveillant

Avant de commencer : Un hack WordPress implique généralement l'insertion de code dans un thème, un plugin ou un fichier principal WordPress. Par conséquent, pour procéder à un nettoyage, vous devez être à l'aise avec la modification du code. Si ce n'est pas le cas, engagez des professionnels de la sécurité WordPress.

Une fois que vous avez identifié le point d'entrée des pirates, il est généralement relativement facile de trouver l'infection. Bien que juste au cas où vous n'auriez pas encore trouvé l'infection, il existe plusieurs méthodes que vous pouvez utiliser pour trouver l'infection. Voici quelques-uns.

Vérifier quels fichiers ont été modifiés au cours des derniers jours

Idéalement, vous devriez utiliser un plugin de surveillance de fichiers WordPress qui surveille les fichiers de votre installation WordPress pour les modifications et vous alerte immédiatement. Si vous ne disposez pas d'un plug-in de surveillance de l'intégrité des fichiers (FIM), vous devrez rechercher manuellement les modifications de fichiers.

Si vous avez un accès SSH à votre serveur, vérifiez quels fichiers de votre site Web WordPress ont été modifiés récemment. En règle générale, il serait conseillé de commencer à rechercher les changements dans les cinq derniers jours suivant la découverte du piratage, en élargissant votre recherche si nécessaire. Pour ce faire, accédez au répertoire où se trouve votre site Web WordPress et utilisez la commande de recherche.

find .mtime -5 –ls

La commande ci-dessus liste (-ls) tous les fichiers qui ont été modifiés (.mtime) au cours des cinq derniers jours (-5). Si la liste est trop longue, utilisez le moins de téléavertisseur pour parcourir et rechercher plus facilement dans la liste.

find .mtime -5 –ls | less

Si vous avez récemment mis à jour un plugin ou un thème, toutes les modifications de fichiers associées apparaîtront dans vos résultats de recherche. Les journaux et les fichiers de débogage sont également mis à jour fréquemment, ils apparaîtront donc également dans vos résultats. Par conséquent, vous devrez peut-être effectuer un filtrage approfondi des résultats pour trouver les modifications de fichiers qui vous intéressent. Notez que les plugins spécialisés tels que le plugin WordPress File Changes Monitor pour WordPress sont spécifiquement conçus pour éliminer automatiquement ces faux positifs pour vous. Le plugin est spécialement conçu pour WordPress et peut identifier un changement de fichier à partir d'un noyau WordPress, des mises à jour de plugin ou de thème, installer ou désinstaller.

Vérification de tous les fichiers HTML

Dans WordPress, il y a très peu de fichiers HTML et les pirates aiment en profiter. Recherchez sur votre site Web tous les fichiers HTML et analysez leur contenu. Assurez-vous que tous les fichiers HTML que vous avez sur votre site Web sont légitimes et que vous savez à quoi ils servent.

Un moyen simple de répertorier tous les fichiers HTML de votre répertoire WordPress (et de ses sous-répertoires) consiste à utiliser la commande suivante.

 
find . -type f -name '*.html' 

Recherche de texte d'infection

Si votre site Web a été dégradé ou si du texte apparaît sur votre site Web à la suite de l'infection, recherchez-le avec l'outil grep. Par exemple, si vous avez vu le texte "hacked by", accédez au répertoire racine du site Web et exécutez la commande suivante.

grep –Ril "hacked by"

La commande ci-dessus renverra une liste de fichiers qui incluent le contenu « piraté par ». Une fois que vous avez la liste des fichiers infectés, vous pouvez analyser le code et supprimer l'infection.

Que signifient les commutateurs grep ?

  • -R indique à grep d'effectuer une recherche récursive (recherche dans toute la structure du répertoire, y compris tous les sous-répertoires et liens symboliques).
  • -i indique à grep que la recherche doit être insensible à la casse (c'est-à-dire ignorer la casse du terme de recherche). Ceci est très important dans les environnements Linux/Unix, car contrairement à Windows, les systèmes de fichiers Linux sont sensibles à la casse.
  • -l indique à grep qu'il doit renvoyer le nom du fichier plutôt que le contenu du fichier. Lorsque votre site WordPress est piraté, il s'agit d'un autre code malveillant à rechercher.

Outre la chaîne évidente "hacked by", vous trouverez ci-dessous une liste de phrases de code et de texte généralement utilisées dans les sites Web WordPress piratés. Vous pouvez utiliser l'outil grep pour rechercher les éléments suivants :

  • base64_decode
  • est_admin
  • eval
  • gzuncompress
  • passer à travers
  • exec
  • shell_exec
  • affirmer
  • str_rot13
  • système
  • phpinfo
  • chmod
  • mkdir
  • ouvrir
  • fermer
  • lirefichier

Un moyen rapide d'y parvenir à l'aide de grep consiste à utiliser la commande grep suivante qui recherche les fichiers de manière récursive (suit tous les liens symboliques), recherche les chaînes correspondant à l'expression régulière PCRE spécifiée 3 , et renvoie la correspondance de texte ainsi que le numéro de ligne où la correspondance s'est produite.

grep -RPn "(base64_decode|is_admin|eval|gzuncompress|passthru|exec|shell_exec|assert|str_rot13|system|phpinfo|chmod|mkdir|fopen|fclose|readfile) *\("

REMARQUE : Une partie de ce code peut également être utilisée dans du code légitime, alors analysez le code correctement et comprenez comment il est utilisé avant de signaler quelque chose comme une infection ou un piratage.

Comparez les fichiers avec une installation WordPress originale

Il s'agit d'une méthode à l'ancienne, et même si elle prend un peu de temps, elle fonctionne à merveille. Comparez les fichiers de votre site Web avec ceux d'un site Web non falsifié. Par conséquent, si vous avez une copie de sauvegarde de votre site Web, comparez le site Web falsifié. Sinon, installez une nouvelle copie de WordPress et les plugins que vous avez sur le site Web infecté sur un autre hébergeur et comparez-les.

Il existe plusieurs outils que vous pouvez utiliser pour comparer des fichiers. Dans cet exemple, nous utilisons un outil commercial appelé Beyond Compare, bien qu'il existe plusieurs alternatives gratuites. Vous trouverez ci-dessous quelques captures d'écran d'un exemple de comparaison.

Lors de la comparaison des répertoires racine de deux sites Web WordPress, l'outil met en évidence la différence dans le contenu du fichier index.php , les nouveaux fichiers .htaccess et wp-config.php , et les différences dans les sous-répertoires.

Comparaison du répertoire racine de deux sites Web WordPress

En double-cliquant sur le fichier index.php , nous pouvons voir quelles sont les différences.

Index.php infecté sur le site WordPress

Que rechercher dans une comparaison de fichiers WordPress ?

Recherchez les fichiers qui ne font pas partie du noyau de WordPress. La plupart des infections ajoutent des fichiers à la racine de l'installation de WordPress ou au répertoire wp-content . Si le piratage est le résultat d'un plugin vulnérable, les fichiers du plugin peuvent avoir été modifiés.

Nettoyer le piratage WordPress

Il est temps de commencer à nettoyer en suivant la procédure ci-dessous, une fois que vous connaissez la source du piratage WordPress et que vous avez trouvé l'infection.

Trouver l'infection automatiquement avec un service WordPress

Si ce qui précède vous semble trop difficile à gérer, ne désespérez pas. Il existe plusieurs services et plugins de sécurité WordPress que vous pouvez utiliser pour analyser votre site Web à la recherche de logiciels malveillants et d'autres infections. Nous recommandons les services de sécurité Malcare WordPress.

Notez cependant que ces plugins ont une liste limitée de signatures de logiciels malveillants qu'ils recherchent. En tant que tel, si l'attaque qui a affecté votre site Web WordPress n'est pas aussi courante, ces plugins pourraient ne pas identifier l'infection. Il n'est pas rare que nous recevions des commentaires d'administrateurs WordPress dont le site Web WordPress a été victime d'une attaque selon laquelle les plugins de logiciels malveillants WordPress n'ont rien identifié de mal.

Le point à retenir ici est que des contrôles de sécurité efficaces impliquent d'avoir plusieurs couches de défense et de détection. Alors que l'analyse manuelle est presque toujours la meilleure voie à suivre lorsque vous pouvez le faire ; ces plugins ne doivent pas non plus être sous-estimés - ils peuvent toujours être utilisés et seront utiles à un moment donné.

Restaurer votre WordPress à partir d'une sauvegarde

Si vous avez une sauvegarde de votre site Web ou blog WordPress, restaurez-la. C'est toujours beaucoup plus facile que de nettoyer manuellement le code.

Changer tous les mots de passe, supprimer les utilisateurs inutilisés et vérifier les rôles des utilisateurs WordPress

Modifiez tous les mots de passe de tous vos utilisateurs et services, y compris WordPress, CPanel, MySQL, FTP et votre propre ordinateur personnel. Vérifiez la liste des utilisateurs sur votre FTP, WordPress, MySQL et tout autre service pour confirmer que tous les utilisateurs sont légitimes. S'il y a des utilisateurs qui ne sont plus utilisés, supprimez-les. Vérifiez que tous les utilisateurs de WordPress ont les bons rôles et autorisations.

Mise à niveau du noyau WordPress, des plugins, des thèmes et d'autres logiciels

Assurez-vous que vous utilisez la version la plus récente de tous les logiciels requis pour faire fonctionner votre site Web WordPress. Cela ne se limite pas à WordPress lui-même, mais s'étend également à tous les plugins, thèmes, ainsi qu'aux correctifs du système d'exploitation, PHP, MySQL et serveur Web (par exemple Apache HTTP Server ou Nginx) et à tout serveur FTP que vous utilisez.

Sauvegarde de votre site WordPress

Sauvegarde du site WordPress

Une fois à ce stade, avant de supprimer le code réellement infecté, effectuez une sauvegarde de votre site Web WordPress.

Supprimer l'alerte de malware Google Safe Browser

Avertissement Google sur les logiciels malveillants

Si votre site Web a été refusé par Google Safe Browsing, vous pouvez demander un examen de sécurité pour supprimer l'alerte.

Une fois que vous avez supprimé le hack WordPress…

Processus de sécurité WordPress

Félicitations, vous avez récupéré votre site WordPress d'un piratage. Maintenant, vous devez vous assurer que cela ne se reproduise plus. Voici quelques conseils sur ce que vous devriez faire :

  1. Installez un plugin de journal d'activité WordPress pour suivre tout ce qui se passe sur votre site Web WordPress.
  2. Si vous n'avez pas de solution de sauvegarde en place, procurez-vous en une.
  3. Utilisez un service d'analyse de sécurité WordPress.
  4. Faites pivoter les mots de passe de la base de données et de l'administrateur et forcez la sécurité des mots de passe WordPress.
  5. Gardez toujours votre WordPress, vos plugins WordPress, vos thèmes et tout autre logiciel que vous utilisez à jour.
  6. Supprimez tous les fichiers inutilisés tels que les anciennes installations WordPress, les plugins et thèmes WordPress inutilisés (y compris les thèmes WordPress par défaut inutilisés). Les composants et logiciels inutilisés ajoutent une surface d'attaque inutile et devraient idéalement être supprimés.
  7. Suivez notre guide de renforcement de la sécurité WordPress pour vous assurer de prendre en charge tous les problèmes de sécurité possibles sur votre site Web.

Références utilisées dans cet article [ + ]

Références utilisées dans cet article
1 https://developer.wordpress.org/reference/functions/wp_maintenance/
2 http://httpd.apache.org/docs/current/howto/htaccess.html#when
3 https://regexr.com/5lpf0