Leave your thoughts

Ayant pas mal de clients dont le site tourne sur WordPress, j’ai eu beaucoup de travail ces temps-ci. La raison ? Un hacking de très grande ampleur.
Comme le rapporte Sucuri, il semble y avoir un script malicieux qui brise des sites WordPress à droite à gauche.

Effectivement, les clients se sont plaints que leurs sites Web ont été en quelque sorte « défacé ». On y voyait une page Blanche avec un simple « Access Denied » en guise de message d’erreur. La raison de ce message ? Tout simplement l’efficacité de 1and1 ayant bloqué instantanément l’attaque en passant les fichiers en CHMOD 200. Bravo pour leur réactivité.

Par contre, un gros problème apparait : lors du rétablissement des accès, le site a été instantanément re-piraté. Alors, que ce passe-t-il ?

Il s’avère que cette attaque envers WordPress est un joli combo. Il injecte d’abord un malware qui se fixe instantanément sur le header de chaque fichier PHP, puis il peut ainsi prendre la main sur le back-office et ajouter un utilisateur Admin dans la base de données (dans la table wp_users).
Cet utilisateur a la particularité d’avoir l’ID 1001001.

Cette attaque est notamment imputable à la vulnérabilité des anciennes versions des plugins « MailPoet » et « Wysija newsletters« , ce qui souligne l’importance de garder vos plugins à jour.

Comment s’en débarasser ?

Et bien à moins d’avoir une Backup récente sous la main, vous êtes malheureusement mal barré…

Pour vous faire une idée, le compte FTP d’un client hébergeant seulement 3 sites WordPress (dont un qui a plusieurs années d’activité et donc énormément d’archives), se retrouve avec la bagatelle de 3081 fichiers infectés !

Le log m’indique que chaque fichier PHP a subi une transformation du header, en injectant une suite de données aléatoires, sous cette forme :

etc… sur une 60aine de lignes.

Si vous pouvez récupérer via votre hébergeur un Log des fichiers infectés, foncez et regardez si la totalité de vos fichiers (ou sites) sont atteints.

Pour un client j’ai eu la chance de récupérer un site complet.

Si vous n’avez pas la possibilité d’avoir un Log détaillé, un confrère Américain a créé une ligne de commande pour lister les fichiers en question :

find /home/insert-user-here/public_html -regextype posix-egrep -type f -iregex « .*\.php » -print0 | xargs -0 grep -li « x2f.50.x2e.52 »

 

Ok, j’ai la liste, mais après je fais quoi ?

Et bien deux choix s’offrent à vous :

– Supprimer ce fameux code fichier par fichier (pour mon cas et mes 3081 fichiers c’est impensable, mais pour un tout petit site c’est à mon sens envisageable).

– Récupérer une backup de votre site, et remplacer les fichiers. Je donne la bonne marche à suivre dans le prochain paragraphe.

Réparer le site avec une Backup

Voici la marche à suivre si vous possédez une Backup de votre site :

  1. Supprimez tous les fichiers de compte affecté (ou les déplacer vers un dossier – dans le cas où vous besoin de quelque chose comme des images récentes, etc)
  2. Attendez quelques minutes pour les scripts malveillants peuvent expirer
  3. Supprimez l’utilisateur admin de la table wp_users, avec l’identifiant 1001001 (ou tout autre identifiant « étrange »)
  4. Restaurez les fichiers de votre sauvegarde
  5. Et mettez à jour vos Plugins WordPress !

Pendant la restauration, n’oubliez pas de fermer l’accès au malware en indiquant un « Deny from All » dans votre .htaccess, à l’exception de votre adresse IP :

order deny,allow

deny from all

allow from 1.2.3.4

 

Et si possible, redémarrez votre serveur, cela pourrait aider à purger la mémoire de l’exécution de ce script malicieux.

Bonne chance !

A propos de l'Auteur

Hadrien

Webdesigner & Développeur Freelance. Sound Designer, grand technophile et Gamer averti.

http://hadrien.co