Ataques Black Hat SEO Cloaking contra sitios Joomla

El “Cloaking” es una técnica de posicionamiento Web (Black Hat SEO) por la que se pretende engañar a los motores de búsqueda y mejorar así la posición de ciertos resultados. Consiste en mostrar un contenido de la Web diferente para el usuario y para el bot que la rastrea con el fin de manipular lo que éste indexa. Para entender mejor este tipo de técnicas os recomiendo la lectura de la saga “Técnicas SEO para gente de moral relajada” en “Un informático en el lado del mal”.

Recientemente hemos identificado un aumento de ataques contra CMS Joomla para explotar posibles vulnerabilidades con motivo de llevar a cabo la técnica de “Cloaking” descrita anteriormente, con el objetivo de favorecer sitios Web de venta de determinadas sustancias “médicas” (las típicas farmacias online). En este caso, en el que hablamos de sitios vulnerados por terceros, el “Cloaking” se complica un poco más.

Un escenario de “Cloaking” que podemos encontrarnos, por ejemplo, es aquel en el que si hacemos una determinada búsqueda en Google sobre una página legítima, aparentemente no vulnerada y ajena totalmente a lo que pudiera ser una farmacia online, nos muestra, que en parte del contenido que tiene cacheado aparezcan términos como “viagra”,”pills”,“drugs”, etc. provocando cierto daño reputacional a dicha página.

Por ejemplo, lanzando un dork como:

site:midominio intext:”viagra”,”pills”,”drugs”

sobre un dominio objetivo, es posible que nos indexen resultados como los siguientes, de páginas que han sido comprometidas para tal fin:

Si visitamos una de estas webs afectadas como un usuario normal, el contenido de la misma es legítimo a ojos del usuario, y no se ve por ninguna parte ningún tipo de contenido relacionado con las palabras mencionadas (viagra, drugs…) que sí aparecen cacheadas tras hacer la búsqueda. Sin embargo, si el sitio se visita con un user-agent de Googlebot, el contenido de esta página cambia y es entonces cuando se muestran enlaces a sitios relacionados con la venta de sustancias ilegales o similares. Un ejemplo real de lo que nos hemos encontrado es el siguiente:

A la izquierda se muestra un fragmento de la Web cuando lo visita un usuario cualquiera, con un user-agent habitual, aparentemente todo normal. A la derecha se muestra el mismo fragmento de la Web cuando lo visita el robot de Google. Como se ve, aparecen ciertas líneas (en verde) con el texto “buying viagra from boots”, “red viagra pills”…etc, y redirigen a sitios como:

hxxp://www. xxxxxxxx. org/search-results-viagra-buy-online/
hxxp://www. xxxxxxxxx. org/buying-viagra-from-boots/
hxxp://xxxxxx.com/red-viagra-pills/
[…]

Bien, los atacantes a través de dicha técnica aprovechan la visibilidad y buena reputación que puedan tener las páginas de las que se aprovechan para posicionar las suyas.

Como se ha comentado al inicio de este post, hemos detectado en las últimas semanas una campaña de explotación de sitios Joomla para llevar a cabo la técnica descrita. La mayoría de los sitios afectados usan versiones vulnerables y muy antiguas de Joomla (rama 1.5) aunque una de las principales vías de entrada que hemos detectado en este caso ha sido a través de versiones vulnerables del componente EXtplorer (com_extplorer). Este componente es explotable a través de diversos tipos de vulnerabilidades pero la que se está usando de forma masiva para este tipo de ataques es la denominada “eXtplorer v2.1 Arbitrary File Upload Vulnerability” descubierta por Brendan Coles a finales de 2012 y para la cual hay exploit público desde enero de 2013. Las versiones de eXtplorer afectadas a este bypass de la autenticación en este caso son la 2.1.2, 2.1.1, 2.10 y 2.1.0RC5.

Hemos encontrado de manera repetida que los atacantes han aprovechado estos Joomla vulnerables para subir un fichero malicioso llamado joomla_rss.php, y modificar el fichero application.php para que referencie a joomla_rss.php (ver imagen siguiente en la que se muestra la línea modificada del fichero application.php que referencia a joomla_rss.php, dentro de la función ‘render()’). Ambos en la carpeta includes.

Debajo podemos ver parte de la función render() en el fichero application.php:

Una línea correcta para este fichero sería:

JResponse::setBody($document→render($caching, $params));

El fichero joomla_rss.php tiene un aspecto similar a este y su funcionalidad es devolver determinadas páginas a ciertas IP o bots, es decir, es el causante de insertar/esconder los spam-links en la página afectada.

Otros ficheros maliciosos no relacionados directamente con esta técnica de “Cloaking” pero que también hemos encontrado de manera repetida en algunos Joomla han sido cpanel_config.php o jindex.php. Ambos presentan un aspecto similar a código siguiente:

Este tipo de shell aprovecha el contenido que se pasa en las cookies de una petición para ejecutarlo, pudiendo ejecutar cualquier tipo de parámetro en el equipo, o subir por ejemplo otros ficheros maliciosos. Una sencilla PoC metiendo un print a continuación evidencia el funcionamiento de la misma:

En definitiva, parece ser que los atacantes ven un filón en los componentes vulnerables de Joomla y continuamente escanean Internet en búsqueda de los mismos. Recientemente desde Spiderlabs alertaban también de otra vía de entrada masiva para comprometer sitios Joomla a través del JCE, que muy probablemente también estén usando para “Cloaking” o cualquier otro tipo de actividad maliciosa.

Para finalizar, recomendar actualizar siempre a las últimas versiones, componentes incluidos y usar solo los componentes, módulos y plugins estrictamente necesarios para los requerimientos de la Web. Recomendable usar también algún tipo de solución IPS/IDS o WAF tipo ModSecurity. La solución no pasa únicamente por eliminar los ficheros maliciosos.

Comments

  1. Muy buen post! saludos

  2. Muchas gracias Daniel! Un saludo

  3. COMO SOLUCIONAR YA ELIMINE ARCHIVOS INFCTADOS PERO AUN EN GOOGLE SIGUE SALIENDO QUIEN AYUDA POR FAVOR

  4. Hola Juan! tendrás que solicitar a Google que actualice la información de tu página en su buscador. Quizá en enlace encuentres más información al respecto https://support.google.com/webmasters/answer/1663691?hl=es

    Coméntanos si te ha sido de ayuda.

    Gracias por leernos.

    Saludos,