< ---------------------------- [ EKO Magazine ] ---------------------------- >
< - [ Review del Ramen Worm ] ---------------------------------------------- >
< - [ por ca0s ] ------------------------------------------------ (EKO 02) - >
----------------------------------------------
Review del Ramen Worm.
----------------------------------------------
by ca0s
[email protected]
.oOoooOoooOo0
1. Introduccion.
Un worm es un programa que se autopropaga sobre una red a traves de sistemas
vulnerables. Al contrario del virus que infecta un programa y necesita del
usuario para propagarse, el worm se reproduce solo.
Uno de los worms mas conocidos fue el liberado por Robert T. Morris en
Noviembre de 1988 llamado el "Internet Worm". Este aprovechando fallas en
el sendmail, fingerd y rsh/rexec logro paralizar la mitad de la Internet de
aquel tiempo, cosa que si pasara hoy seria un verdadero desastre.
En este texto hablaremos de un worm que se ha hecho muy popular hoy en dia,
veremos como trabaja, porque produjo tal impacto y como detenerlo. Su nombre
es el Ramen Worm.
2. Descripcion de su funcionamiento.
Ramen principalmente ataca boxes con Linux Red Hat 6.2 y los recientes Linux
Red Hat 7.0, basandose en versiones vulnerables del wu-ftpd, rpc y LPRng
respectivamente.
El ataque comienza con una serie de scripts que escanean el puerto 21 por
versiones vulnerables del wu-ftp. Esto lo hace comparando cada banner que
encuentra con la fecha del banner del wu-ftpd que se conoce con fallas.
Una vez que encuentra una version vulnerable del wu-ftp o de las otras fallas
por las que busca, corre un script que segun sea el caso explota esa falla e
ingresa al sistema.
Una vez dentro, mientras que sigue buscando por mas boxes, crea un directorio
en "/usr/src/.poop" donde se copia asi mismo desde el host que lanzo el ataque.
Ya instalado en el nuevo sistema levanta un minimo servidor web HTTP/0.9 en el
puerto 27374 que utiliza para distribuir el "ramen.tgz" que contiene el worm
listo para instalarse y correrse en cualquier nuevo sistema comprometido. El
"ramen.tgz" es entregado a cualquier conexion con cualquier solicitud hecha al
puerto 27374.
Ahora viene algo muy curioso, Ramen busca en todo el sistema por archivos con
el nombre "index.html" y los remplaza por uno propio. Con esto, si el sistema
esta corriendo un servidor web, la pagina quedaria crackeada con un mensaje
que dice:
"RameN Crew--Hackers looooooooooooove noodles."
y una imagen con la caja de las "Top Ramen" noodles que vendria a ser una
especie de comida chatarra. Lamentablemente tambien todos los "index.html" con
documentacion o lo que fuere quedan arruinados con ese mensaje.
Ramen tambien deshabilita el uso de los tcpwrappers al eliminar el archivo
/etc/hosts.deny, de esta forma quedan removidas las listas de control de
acceso.
Tras esto, se envia un email a
[email protected] y
[email protected] con el
mensaje "Eat Your Ramen!" para avisar al creador de Ramen del nuevo sistema
owneado. Por supuesto que Hotmail y Yahoo ya fueron alertados de esto.
Luego Ramen de alguna forma parchea el sistema deshabilitando el acceso anonimo
al FTP al agregar "ftp" y "anonymous" a "/etc/ftpusers", ya que Ramen necesita
de acceso anonimo al ftp para poder explotarlo, tambien borra los archivos
rpc.statd y lpd para que no puedan levantarse nuevamente y killea los procesos
corriendo de estos. Estas acciones pueden deberse a un intento de no volver a
infectarse asi mismo o para evitar que nadie intente entrar al sistema una vez
que aparezca la web crackeada.
Para evitar que Ramen deje de correr si el sistema es reiniciado, se agrega a
"/etc/rc.d/rc.sysinit" una referencia al script de inicio del worm que lo lanza
automaticamente cuando bootea el sistema.
Para finalizar, hay que mencionar que Ramen no instala ningun tipo de backdoor
que permita acceso a una shell. Pero he visto versiones modificadas que bindean
shells en el inetd y el xinetd, y que agregan usuarios sin password con UID 0.
3. Como detenerlo y eliminarlo.
Como con todo sistema comprometido, una buena practica al descubrir una
intrusion es desconectar momentaneamente a dicho sistema de la red. De esta
forma sabremos que por lo menos peor no puede ser...
Los pasos para eliminar a Ramen son muy simples:
A. Eliminar el directorio "/etc/src/.poop".
B. Editar el archivo "/etc/rc.d/rc.sysinit" y remover cualquier linea que
haga referencia al directorio "/etc/src/.poop".
C. Eliminar el archivo "/sbin/asp" o "/etc/xinetd.d/asp", segun la version
de Red Hat que tengamos.
D. Editar el archivo "/etc/inetd.conf" y remover cualquier linea que se
refiera a "/sbin/asp".
E. Killear manualmente todos los procesos corriendo con el nombre synscan,
start.sh, scan.sh, hackl.sh o hackw.sh. O reiniciar el sistema.
Con esto terminamos de eliminar a Ramen de nuestro sistema, pero no debemos
olvidar que el sistema ha sido comprometido y deja de ser confiable.
Una forma muy simple de prevenir el ataque de Ramen es cambiar el banner del
ftp, ya que como dijimos antes el ataque primario se hace comparando los
banners del ftp para buscar hosts. Y si no necesitamos acceso anonimo al ftp
tambien seria una buena opcion deshabilitarlo.
El update para los daemons vulnerables en Red Hat 6.2 lo hacemos de la
siguiente forma:
rpm -Uvh
ftp://updates.redhat.com/6.2/i386/nfs-utils-0.1.9.1-1.i386.rpm
rpm -Uvh
ftp://updates.redhat.com/6.2/i386/wu-ftpd-2.6.0-14.6x.i386.rpm
y para Red Hat 7.0:
rpm -Uvh
ftp://updates.redhat.com/7.0/i386/LPRng-3.6.24-2.i386.rpm
Pero sin duda la unica forma de detener efectivamente a worms como Ramen es
que los Admins tomen conciencia de la seguridad, y de las practicas basicas
de esta. Por ejemplo, nunca conectar a Internet un nuevo sistema con la
instalacion por default, no correr servicios que no se necesitan, y estar al
tanto de todos los nuevos parches de seguridad que salen.
4. Comentario final.
A esta altura muchos se preguntaran que tiene de especial Ramen?
Porque podemos decir que las fallas que aprovecha son por demas conocidas, el
escaneo que realiza por sistemas vulnerables lo es tambien, y en general su
funcionamiento no es nada original ya que hay muchos worms sueltos que trabajan
de igual forma.
Lo que hace a Ramen especial al contrario de muchos otros worms, es que este
alerta de su presencia al modificar la pagina web. Con este tipo de worms es
mas que dificil tener una idea de la cantidad de sistemas afectados o del
impacto que causan, pero con Ramen todo salto a la luz de un solo golpe al
poder ver la inmensa cantidad de webs crackeadas.
Ramen le dio una gran leccion a todos los administradores de Linux en cuanto
que ya es algo impensable conectar a Internet una instalacion por default, y
que sin duda alguna la seguridad no es un complemento si no algo que va de la
mano de una buena administracion.
En cuanto a Ramen seguramente seguiremos teniendo noticias de el, y mas si
tenemos en cuenta de que es facilmente modificable para agregarle nuevas fallas
que explotar.
Si de desean investigar a Ramen mas en detalle pueden bajarselo de:
http://www.ezkracho.com.ar/caos/ramen.tar.gz
encontrado "In the wild" ;)
Hasta la proxima, ca0s.
*EOF*