Módulo malicioso de Apache usado para inyección de contenido: Linux/Chapro.A

El siguiente post es una adaptación del artículo publicado por nuestro compañero Pierre-Marc Bureau en el blog del laboratorio ESET Norteamérica.

Más de la mitad de todos los servidores web en Internet utilizan Apache, así que cuando el mes pasado descubrimos un módulo Apache malicioso que se estaba propagando, y que se estaba usando para inyectar contenido malicioso en páginas web mostradas por servidores web, nos empezamos a preocupar. Esta preocupación se incrementó cuando descubrimos que este malware se estaba usando para robar credenciales bancarias.

Al principio nos preguntábamos si este código podría estar relacionado con el rootkit Linux/Snakso. Se informó de esta amenaza en la lista de correo de Full-Disclosure, siendo analizado posteriormente por CrowdStrike y Kaspersky, pero al final resultó ser otra amenaza completamente diferente.

El módulo malicioso de Apache que hemos analizado es detectado por ESET como Linux/Chapro.A. El propósito principal del cual es inyectar contenido malicioso en páginas web almacenadas en un servidor comprometido (tal y como se muestra en la parte derecha de la imagen anterior donde se inyecta un iframe, pero también podría tratarse de un JavaScript malicioso o algo más).

A pesar de que el módulo puede servir todo tipo de contenido, en este caso específico, la finalidad era instalar, mediante una inyección de iframe, una variante de Win32/Zbot, malware que es usado frecuentemente para robar información bancaria de los sistemas infectados.

También descubrimos que este módulo tiene un par de interesantes funcionalidades diseñadas para reducir las posibilidades de ser descubierto por los administradores de sistemas. Además de analizar el módulo malicioso de Apache, pudimos también echar un vistazo al contenido que se estaba sirviendo.

En este análisis mostraremos las características de Linux/Chapro.A. Asimismo echaremos un vistazo al kit de exploits usado para instalar el malware Win32/Zbot.

Características de Linux/Chapro.A

El módulo malicioso de Apache Linux/Chapro.A es un binario de Linux x64. Este malware utiliza una única técnica de ofuscación usando un bucle XOR con una llave de 12 bytes de longitud para cifrar la mayoría de las cadenas.

Este programa tiene muchas funcionalidades para evadir la detección por parte de los administradores de sistemas. Además, antes de ponerse a servir malware a un usuario se realizan múltiples comprobaciones.

Primero, Linux/Chapro.A revisa el  user_agent del navegador en búsqueda de bots conocidos, así como también de navegadores que no sean vulnerables a los exploits usados para infectar el sistema. Si el navegador que visita la web tiene una cadena user_agent que contiene palabras reconocidas por ser usadas por  los rastreadores web, el malware no descargará su contenido malicioso. La siguiente imagen muestra alguna de las palabras usadas por el bot.

El malware Linux/Chapro.A también inspecciona todas las sesiones SSH activas en el sistema Linux en el que se está ejecutando para determinar las direcciones IP que utiliza. Si un usuario navega por una web usando alguna de las direcciones IP que se utilizan para una conexión SSH, no se servirá el contenido malicioso. Esto ayuda a esconder el contenido malicioso a los administradores de sistemas, desarrolladores web y cualquier otro usuario que pueda estar trabajando en el servidor web.

Antes de inyectar el iframe malicioso dentro del contenido web enviado por el servidor, Linux/Chapro.A establece una cookie en el navegador del visitante. El contenido malicioso no se servirá si el navegador visitante ya tiene establecida esa cookie. Esto ayuda a asegurar que los visitantes no recibirán contenido malicioso una y otra vez, haciendo más difícil determinar cómo fue infectado el sistema.

Finalmente, Linux/Chapro.A mantiene una lista de direcciones IP que han estado sirviendo contenido malicioso. Si un usuario visita una web infectada dos veces desde la misma IP tan solo recibirá el contenido malicioso una única vez. Esto proporciona un segundo método adicional que hará más difícil de identificar la ruta de la infección.

Contenido Inyectado

El principal objetivo de Linux/Chapro.A es inyectar iframes en páginas web servidas por el servidor web al cual se encuentra acoplado. Para realizar esto, el malware envía una solicitud HTTP POST a su servidor de mando y control cada 10 minutos. La siguiente imagen muestra una de estas solicitudes HTTP POST.

En el momento de realizar este análisis, el servidor malicioso de mando y control estaba siendo alojando en Alemania, pero ha sido desactivado recientemente.

La solicitud es sencilla: solo incluye la versión del malware y el sistema en el que se está ejecutando. El servidor de mando y control responderá a esta solicitud con el iframe que se inyecta en el módulo apache malicioso. El iframe se cifra usando base64 y XOR.

Si un visitante no se encuentra en una de las listas negras detalladas en la sección anterior, se le sirve el iframe descargado desde el servidor de mando y control.

La imagen que mostramos a continuación muestra el código HTML para un iframe enviado por Linux/Chapro.A. El iframe se coloca fuera del área habitual del navegador para así evitar que el usuario la vea.

Exploit Kit

Basándonos en el análisis y descripción de este artículo estamos seguros de que el iframe inyectado por Linux/Chapro.A apunta a una web con un pack de exploits del tipo “Sweet Orange”. En el momento de realizar este análisis, el pack de exploits estaba alojado en Lituania. Este pack intenta explotar las siguientes vulnerabilidades que se encuentran en los navegadores y complementos modernos:

Si el pack de exploit es capaz de aprovechar una de las vulnerabilidades para las que tiene exploit se ejecuta el código malicioso.

Funcionalidad del ataque

El propósito final del ataque que hemos investigado es instalar una variante de Win32/Zbot, también conocido como ZeuS, el cual ha sido usado ampliamente durante años para robar información bancaria. En este caso, esta variante de Win32/Zbot tiene como objetivo varios bancos europeos y rusos. La siguiente imagen muestra un formulario usado por un banco para dar acceso a la información de su cuenta a los usuarios.

Aparentemente este banco está al tanto de que estos criminales lo tiene como objetivo y que intentan obtener el código PIN y el CVC/CVV. De hecho, una alerta específica se muestra en el formulario de registro del usuario. No obstante, cuando la página de acceso se visita desde un sistema infectado, este aviso se retira, tal y como se observa a continuación.

Una vez que el usuario se ha registrado en su cuenta, el malware inyecta una ventana emergente preguntando por el código CVV para su tarjeta, comportamiento descrito en el aviso del formulario original. El malware intenta entonces enviar las credenciales del usuario, junto con su CVV, al operador de la botnet.

 

Conclusiones

La amenaza Linux/Chapro.A no ha sido documentada de forma pública anteriormente. Nuestros sistemas telemétricos no mostraron que se estuvieran propagando otras instalaciones de este módulo malicioso de Apache. A pesar de que el intento de inyectar iframes en páginas web alojadas en un servidor es igual al rootkit analizado por Crowdstrike y Kaspersky, podemos confirmar que no pertenecen a la misma familia de malware. Por otra parte, este malware tiene muchas similitudes con ciertos temas comentados en algunos foros underground rusos, tal y como lo describe Dancho Danchev.

A pesar de no haber observado que otras instalaciones de Linux/Chapro.A se estén produciendo, sí que hemos observado miles de usuarios accediendo al pack de exploits Sweet Orange antes de que el acceso a estos servidores fuera bloqueado por nuestros productos. ESET bloqueó los intentos del exploit usando detección genérica, incluso antes de que se añadiera protección adicional con el bloqueo de URL.

El ataque descrito en el presente análisis muestra la elevada complejidad de los ataques de malware. Este complicado caso se extiende por tres países diferentes, con objetivos en un cuarto, haciendo muy difíciles las tareas de investigación por parte de las fuerzas de seguridad. No está claro en este punto si el mismo grupo de gente está detrás de toda la operación o si colaboraron bandas diferentes, quizás con una de ellas especializada en conducir tráfico al pack de exploits y vender los sistemas infectados y otra operando una botnet basada en Win32/Zbot.

 

Agradecimientos

Nos gustaría agradecer a los siguientes investigadores su contribución en esta investigación: Jean-Ian Boutin, François Chagnon, Sébastien Duquette, Aleksander Matrosov.

 

Ficheros analizados:

La siguiente lista proporciona los hashes MD5 de los ficheros involucrados en nuestra investigación

Descripción Hash MD5
Linux/Chapro.A e022de72cce8129bd5ac8a0675996318
Iframe inyectado
111e3e0bf96b6ebda0aeffdb444bcf8d
Java exploit 2bd88b0f267e5aa5ec00d1452a63d9dc
Binario de Zeus
3840a6506d9d5c2443687d1cf07e25d0

Josep Albors

Comentar

Acerca de las cookies en este sitio

Este sitio web utiliza cookies propias y de terceros para mejorar tu experiencia de usuario y obtener información estadística. Para poder seguir navegando pulsa en "Sí, estoy de acuerdo". Podrás retirar este consentimiento en cualquier momento a través de las funciones de tu navegador. Ver nuestra política de cookies..