Toolkit de JS (Javascript) aleatorio

Saludos Lectores,

Esta vez les escribo para hablarles de una serie de intrusiones (hackeos) a servidores ha sido recientemente reportada, la cual afecta multiples plataformas de hosting. RedHat Enterprise Linux & Centos 4/5 y Fedora Core 5/6 son los objetivos mas comunes. No se cree que este incidente sea especifico a cPanel. Aun hay muy pocos detalles en lo que concierne a este exploit. Se ha establecido que este incidente requiere privilegios de super usuario (root). Es comun ver cortas pero exitosos loggeos via ssh de 5 a 10 minutos antes de que la infeccion ocurra. Aun no se ha confirmado el punto inicial de entrada de la infeccion. Una vez que se ha tenido acceso al server, un rootkit es instalado en ejecutables comunes del sistema. Es sabido que los siguientes son infectados:

/sbin/ifconfig
/sbin/fsck
/sbin/route
/bin/basename
/bin/cat
/bin/mount
/bin/touch

El rootkit renombra estos ejecutables del sistema agregando un set de caracteres aleatorios al final del nombre de los archivos. Adicionalmente, un archivo de 0 bytes con un set diferente de caracteres aleatorios es creado basandose en el nombre del ejecutable, algo similar a:

/sbin/routewWmVTnBL6szkobbNZ9Iz
/sbin/routeGnAxnt168fMJAxHiru22

Estos archivos son ocultos en el systema de archivos de un sistema afectado en uso. Para ver estos archivos, el sistema debe ser reiniciado en un entorno seguro (algo asi como un live CD, ej. BackTrack , Slax, Knoppix, etc. ).

Una vez que el rootkit ha sido instalado exitosamente, el server quedara resagado hasta ser reiniciado. Durante el rebooteo del server, los scripts de inicializacion del sistema haran llamados a los ejecutables mencionados arriba durante el proceso. Al ser ejecutados (los binarios infectados) usan /dev/mem como ruta hacia el kernel, y luego se adhiere a varios llamados al sistema dentro del kernel en ejecucion. Esto tiene como resultados los archivos ocultos, binarios (ejecutables) corrompidos, y javascript aleatorio siendo desplegado a visitantes web. Cuando el sistema esta completamente online en un estado infectado, el kernel empezara a enviar cargas de javascript a peticiones web aleatorias. El problema es que como esto ocurre fuera de Apache, no va a aparecer en NINGUN log de Apache. La inyeccion de Javascript se vera algo como esto (cuando observamos el codigo de la pagina):

<script language='JavaScript' type='text/javascript' src='cbolw.js'></script>

El archivo Javascript es creado dinamicamente y tiene un nombre aleatorio de 5 caracteres. Este archivo javascript empezara a explotar muchas vulnerabilidades conocidas dentro de Windows, Quicktime y Yahoo Messenger en la PC del visitante.
Tomemos en cuenta que el javascript no es inyectado en cada peticion (request) sino tan solo en un peque~no porcentaje al azar.

Si piensas que tu server ha sido comprometido, puedes ejecutar las pruebas siguiente para confirmar:

La manera mas facil es intentar crear un directorio con un nombre numerico:

mkdir 1

Lo cual resultara en un error como el siguiente (obviamente si tu server esta hackeado):

[root@slackbox ~]# mkdir 1
mkdir: cannot create directory `1': No such file or directory

Este NO es siempre el caso en las variantes mas viejas del rootkit. Para estar seguro de que el server no esta comprometido, es mejor sniffear packetes por unos cuantos minutillos :P , digamos de 3 a 5 minutos.

Puedes hacer esto usando el siguiente comando:

tcpdump -nAs 2048 src port 80 | grep "[a-zA-Z]\{5\}\.js'"

Si este reporte de paquete coincide con la expresion regular usada arriba, entonces el server MUY probablemente esta comprometido. Metodos adicionales de deteccion requieren un conocimiento muy profundo de depuracion de kernel.

Este rootkit puede ser removido booteando en un entorno seguro (Live CD) y moviendo los binarios anteriores a su lugar nuevamente. Por ej. en ESTE caso, /sbin/routewWmVTnBL6szkobbNZ9Iz es el binario original. Uno sera de 0 bytes y otro sera peque~no, pero SIGNIFICANTE en tama~no. Tabmien puedes (si prefieres hacerlo asi) copiar estos ejecutables de un server confiable y limpio.

Pero OJO 88| : Esto es una infeccion que se hizo por medio a la cuenta ‘root’. Hasta que el punto de penetracion (por donde sea que te hayan hackeado) no sea determinado y CERRADO. El server podria volver a ser comprometido si no se usan las politicas de seguridad apropiadas. Es altamente recomendado que contactes a tu datacenter, NOC (Network Operation Center), o un administrador calificado para que te chequee completamente el server de manera correcta.

Puedes encontrar mas info y discusiones del tema en los foros de cPanel y otros websites como:

http://forums.cpanel.net

http://www.webhostingtalk.com/showthread.php?t=651748

http://www.finjan.com/Pressrelease.aspx?id=1820&PressLan=1819&lan=3
  • Share/Bookmark

Tags:

Leave a Reply

You must be logged in to post a comment.