wordpress-hack-ambulance

WordPress après le hack?

La situation.

C’est bien connu, WordPress est le CMS le plus utilisé au monde.

Etat de WP dans le monde
Ce qui lui vaut une attention toute particulière des hackers, robots en tête.

Dans mon cas ce fut un WordPress un peu délaissé par un client avec un login simple (normal) mais avec un password beaucoup trop basique (pas bien!). Les hackers sont donc entrés avec un login et un mot de passe. Suite à cela, avec quelques tours de passe passe, ils ont réussi à mettre des fichiers infectés un peu partout dans les dossiers du répertoire du WordPress en question mais aussi dans la demi-douzaine d’autres sites de mon compte multi-site, comprenant des non WordPress aussi.

Un matin, je reçois un mail de mon hébergeur qui me dit:

[Case-Nr.: XX] Malware in your Account
The account XXX was attacked and files were manipulated (the page was “hacked”). To gain access the attackers had used a vulnerability in a PHP application installed on your web space. To avoid further damage we had to deactivate your web pages.

En gros, il y a un Malware sur votre compte, on coupe tout! Plus de site sur le serveur, uniquement un dossier “www_hacked-2015-08-18” impossible à toucher, bref je n’ai plus rien… Un petit mail et un coup de téléphone au support pour en savoir plus, et j’obtiens plus de détails…

The Account was Hacked through a successful WordPress login to send out spam afterwards. The login credentials were known since 3 months. We noticed access from Brazil, Turkey and so on.

Unfortunately we don’t have any clean backups. You have to build your website from scratch.

Une fois que j’ai terminé de pleurer toute les larmes de mon corps, j’ai réussi à convaincre le support que je pouvais nettoyer les fichiers moi-même.

Le nettoyage

1. les logins et passwords

La première choses à faire et de, bien entendu, changer les login et passwords de :

  • Votre compte Hébergements & Serveurs
  • Votre compte FTP
  • Votre compte MySQL

2. les fichiers

Faire un backup du dossier infecté, dans le cas d’un WordPress ne garder que

  • le fichier de config (wp-config.php)
  • le dossier wp-content
    Cela fera moins à récupérer…

Nettoyage du thème

une bonne chose à faire est de commencer par le thème:

  • Supprimer les thèmes que vous n’utilisez pas.
  • Compresser le thème que vous utilisez et le passer à la moulinette de Theme Check
enter image description here
  • Enfin rechercher des choses comme ça:
enter image description here
  • Cette image nous montre 2 choses: une variable qui n’est pas très normale et le nom d’un fichier. J’ai donc fait une recherche sur la variable et elle était dans chaque site à des emplacements différents et à chaque fois dans le même fichier.
  • Alors il faut faire un petit tour de chaque dossier pour voir si il n’y a pas de fichier louche. Vérifier les.txt( licences et autres). S’il y a juste un ok c’est un fichier qui a aussi été hacké. Vérifier si un fichier “cron.php” est présent, ce n’est pas normal.

Nettoyage des uploads

Ici pas de miracle il faut ouvrir chaque dossier ( 2015/01 2015/02) ou faire une recherche ( mais arrivé a ce niveau de parano je vérifie tout par moi-même) pour voir si il n’y a pas un fichier .php, généralement une suite de chiffre 1534300.php, et dans ce cas, c’est suppression sans discuter. Il est très rare qu’une image soit infectée.

Nettoyage des plugins

Ici aussi on ne prend aucun risque, on remplace chaque plugin par un download tout neuf du repo des plugins, car il y avait aussi des fichiers infectés et tout le monde sait que 2 précautions valent mieux qu’une.

Le reboot

La base

Lors de l’installation toute neuve de WordPress on en profite pour:
– Supprimer directement le fichier readme.html
– Supprimer directement le fichier wp-config-sample.php

Pour être sûr que le fichier wp-config.php est correct ( on vient de changer le password MySQL)
– vérifier que les clefs uniques d’authentification soient bien présentes sinon les générer ici: https://api.wordpress.org/secret-key/1.1/salt/
– voici un lien avec pleins d’astuces (attention tout de même) http://www.deepintheweb.com/optimiser-et-securiser-wp-config-php-wordpress/

Et là on est prêts! On peut faire les setups de sécurité de WordPress.

WordPress

Une fois connecté à WordPress on vérifie bien sûr que:

  • le login ne soit pas admin
  • on recrée un nouveau password avec la nouvelle option de WordPress Billie.
    enter image description here

    • cela donne un bon gros password mais vu le nombre d’attaques en “brut force” ce n’est pas un mal.
  • On vas recréer le fichier .htaccess via les permaliens ( réglages / permaliens ). On sauve ce qui recrée un fichier .htaccess à la racine du site et on va directement lui faire quelques ajouts bienvenus.
  • on ajoute le code suivant :
  • <FilesMatch ^wp-config.php$>
    deny from all
    </FilesMatch>
    <Files .htaccess>
    order allow,deny
    deny from all

    ce qui a pour rôle d’empêcher l’accès au fichier wp-config et .htaccess de l’extérieur. On peut allez bien plus loin mais attention à ne pas tout casser. http://bloginfos.com/htaccess-securite/

On peut maintenant s’attaquer à ajouter quelques plugins.
1. Wordfence la version gratuite fait le job et fonctionne out of the box.
2. Jetpack avec un fonction anti brut-force intégrée.
3. sucuri pour faire un check du thème si on n’a pas laissé un bout de code malicieux.
4. SX User Name Security Pour ne plus jamais divulger publiquement les logins de vos différents utilisateurs.
5. Move Login changer simplement l’url de login.

on peut là aussi toujours allez plus loins trop loin… il y a pleins d’autre plugin de sécurité ..

Avec ça pour ma part c’est repartit, plus de quarantaine sur mon dossier, j’ai enfin la conscience tranquille mais plus que jamais à l’affût de la sécurité . .

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *