eko nº2:(eko02-06.txt):13/05/2001 << Back To eko nº 2
< ---------------------------- [ EKO Magazine ] ---------------------------- > < - [ Review del Ramen Worm ] ---------------------------------------------- > < - [ por ca0s ] ------------------------------------------------ (EKO 02) - > ---------------------------------------------- Review del Ramen Worm. ---------------------------------------------- by ca0s caos@ezkracho.com.ar .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 gb31337@hotmail.com y gb31337@yahoo.com 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*