Libertonia
Portada · Todo · Software Libre · Desarrolladores · Comunidad · Internet · Tecnología · Meta · Diarios
Jugando con sleuthkit

Seguridad
Por amphora
departamento C.S.I. Vallekas , Sección Tecnología
Puesto a las Sun Mar 27th, 2005 at 01:56:48 PM CET

Estos días ando aprendiendo a usar las herramientas que componen el paquete sleuthkit, para tratar de implementarlas en un desarrollo en el que ando metido en el trabajo.

 


Estos días ando aprendiendo a usar las herramientas que componen el paquete sleuthkit, para tratar de implementarlas en un desarrollo en el que ando metido en el trabajo. Sleuthkit es un compendio de utilidades desarrolladas por Brian Carrier, a partir del trabajo de Wietse Venema y Dan Farmer (TCT, The coroner's toolkit), añadiendole muchas características nuevas como el soporte para sistemas ntfs.

Generalmente, la gente que se dedica al análisis forense profesionalmente tiende a usar aplicaciones muy especializadas como es el caso de EnCase, Ilook (el primero vale un pastón, el segundo solo está disponible para cuerpos policiales) o el hermano pobre para sistemas *nix: Autopsy. Autposy es un interfaz web, con soporte para casos, investigadores, máquinas etc, y que es capaz de presentar homogéneamente toda la información que es capaz de recuperar las herramientas de sleuthkit.


Puesto que el programa que estoy escribiendo no tiene interacción con el usuario, necesitaba conocer que posibilidades había desde la línea de comandos para hacer uso de las herramientas, que información suministraban y de que manera podía procesar automáticamente esa información. La mejor manera de hacerlo es sin lugar a dudas instalando el paquete y trabajar sobre alguna imagen. Estuve mirando por honeynet , pero no encontré nada que valiera para lo que quería hacer. Aún así recomiendo ese sitio para la gente interesada en temas de seguridad, es increible lo que se puede aprender y encima gratis. Después recordé que rediris había hecho hace un año o dos un reto de análisis forense, en el que colgaron las imágenes de un sistema comprometido, para que las personas interesadas pudieran destriparlo y elaborar sus informes. Así que me he pasado por allí y he comprobado que todavía las tenían. Quiero decir que no me dedico a esto y que voy a meter la pata seguramente en muchas cosas, seguramente me salte procedimientos y normas elementales en esta ciencia, pero ya he dicho que mi único propósito es averiguar como funcionan las herramientas de sleuthkit. La idea es hacerlo sin montar las imágenes obtenidas y usando solamente herramientas GNU y las propias de sleuthkit.


Una vez que tenemos el fichero hay que descomprimirlo:


amphora@hamlet:~/tmp/honeynet/reto$ tar -jxvf 192.168.3.10.tar.bz2
192.168.3.10-hda1.dd
192.168.3.10-hda5.dd
192.168.3.10-hda6.dd
192.168.3.10-hda7.dd

192.168.3.10-hda8.dd
192.168.3.10-hda9.dd
ficheros.txt

En el fichero ficheros.txt, se encuentra la suma md5 de las imágenes y una descripción de cual era su punto de montaje, así que borramos el fichero bz2 que ya no nos sirve y le echamos un vistazo a ficheros.txt


amphora@hamlet:~/tmp/honeynet/reto$ rm 192.168.3.10.tar.bz2
amphora@hamlet:~/tmp/honeynet/reto$ cat ficheros.txt
b258f21b93e0eaa1f605dfd47d3f66f4  192.168.3.10-hda1.dd /boot
0b826f207f81bbc294bd059302a3558a  192.168.3.10-hda5.dd /usr
87669b6e6939619cdbc8ff8dfba574c4  192.168.3.10-hda6.dd /home
29ac32347b0bdda0659c061b46dce9e4  192.168.3.10-hda7.dd /var
4eed1213ed2aaa48f26e3edffd8a888d  192.168.3.10-hda8.dd /
c7da26612f6f7b318fb79064e2909500  192.168.3.10-hda9.dd swap

Comprobamos que está todo correcto


amphora@hamlet:~/tmp/honeynet/reto$ md5sum *.dd
b258f21b93e0eaa1f605dfd47d3f66f4  192.168.3.10-hda1.dd
0b826f207f81bbc294bd059302a3558a  192.168.3.10-hda5.dd
87669b6e6939619cdbc8ff8dfba574c4  192.168.3.10-hda6.dd
29ac32347b0bdda0659c061b46dce9e4  192.168.3.10-hda7.dd
4eed1213ed2aaa48f26e3edffd8a888d  192.168.3.10-hda8.dd
c7da26612f6f7b318fb79064e2909500  192.168.3.10-hda9.dd

Ahora que tenemos las imágenes descomprimidas, es necesario pararse a pensar.

¿Que sabemos del sistema que vamos a analizar?

Aparentemente nada, pero solo hay que tirar del hilo para descubrir que sabemos muchas cosas.

En la página de rediris nos dicen que es una máquina linux y que ha sido comprometida (esto último es importante, podiamos volvernos locos buscando evidencias cuando no hay nada por buscar)

Puesto que la máquina se puso en internet para que fuera comprometida, se puede deducir que el ataque vino desde ahí. También es importante tenerlo claro, porque el análisis se hace de otra manera si ha sido comprometida fisicamente.

Bien, si es una máquina linux y el ataque ha venido desde internet, ¿Por donde se colaron? Ahora sería interesante saber que servicios corría el ordenador en el momento de ser atacado, sin embargo yo voy a seguir otra vía. ¿Que hace un delincuente una vez que ha cometido un delito? Tratar de ocultar las evidencias que lo implican, o hagan salir a la luz el mismo hecho del delito.

¿Donde pueden estar esas evidencias? Por todas partes, pero hay dos sitios que se suelen usar mucho: /tmp y /var/tmp. Todo el mundo tiene permiso de escritura en esos directorios, al menos habitualmente es así en cualquier distribución de linux, y es un punto seguro donde el atacante subira sus herramientas, rootkits etc.

Puesto que /tmp es un sitio con mucho movimiento y en este caso además no está en una partición aparte (muy mal hecho) voy a ir primero por /var, así de paso le hechamos un vistazo a los logs.


Vamos a buscar primero todo lo que haya sido borrado.


amphora@hamlet:~/tmp/honeynet/reto$ fls -f linux-ext2 -p -r -d 192.168.3.10-hda7.dd

r/r * 32141(realloc):   lib/slocate/slocate.db.tmp
r/r * 30136:    lock/subsys/atd
r/r * 28121:    lock/makewhatis.lock
r/r * 38165:    run/xinetd.pid
r/r * 38165:    spool/mqueue/xfg7MMQ5J07358
r/r * 38170:    spool/mqueue/dfg7MMQ5J07358
r/r * 38171:    spool/mqueue/tfg7MMQ5J07358
r/r * 38171:    spool/mqueue/qfg7MMQ5J07358
r/r * 26110(realloc):   spool/cron/tmp.7216
r/r * 20087:    tmp/.,/manu.tgz
r/r * 22125(realloc):   tmp/.,/psybnc/psybnc
d/d * 20086(realloc):   tmp/tmpwhatisDzGQKA
r/r * 34146(realloc):   ftp/etc/ld.so.cache~
r/r * 14100:    ftp/nerod/tmp
r/r * 13:       tmpzlib-devel-1.1.3-22.i386.rpm

Dos cosas, he puesto linux-ext2 a tientas, podría haber sido otro tipo de ficheros, y habría que comprobar también si tiene sistema de journaling. En un fichero journal, se pueden encontrar cosas interesantes. Y otra, el comando de arriba habría que ejecutarlo con la opción -l, que nos dá muchisima más información, como uids,guids, tiempos etc, pero aquí me estropeaba la maquetación.


Así a simple vista canta mucho que en el directorio tmp/ haya algo con un punto y una coma “.,” es una forma muy burda de ocultar algo a los ojos de un administrador o usuario, pero que funciona, sobre todo cuando el directorio contiene muchas entradas y al hacer un “ls” se pierde enseguida por la parte de arriba del terminal. Si alguno habeis estudiado código de rootkits, habreis visto que es una forma muy común de esconder cosas.

Bien, hemos dicho entonces que teníamos dos ficheros muy sospechosos y que además han sido borrados, vamos a tratar de recuperarlos.


amphora@hamlet:~/tmp/honeynet/reto$ icat -f linux-ext2 192.168.3.10-hda7.dd 20087 >manu.tgz
amphora@hamlet:~/tmp/honeynet/reto$ icat -f linux-ext2 192.168.3.10-hda7.dd 22125 >psybnc

Empecemos primero por el que está sin comprimir:


amphora@hamlet:~/tmp/honeynet/reto$ file psybnc
psybnc: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.0.0, statically linked, stripped

Hiede, apesta. ¿Un binario estático, oculto y borrado? ...blanco y en botella...

Si le extraemos las cadenas podemos ver cositas como estas:

...
...
psyBNC
2.2.2BETA
.-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-.
 ,----.,----.,-.  ,-.,---.,--. ,-.,----.
 |  O ||  ,-' \ \/ / | o ||   \| || ,--'
 |  _/ _\  \   \  /  | o< | |\   || |__
 |_|  |____/   |__|  |___||_|  \_| \___|
      Version 2.2.2BETA (c) 1999-2001
              the most psychoid
      and  the cool lam3rz Group IRCnet

`-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=tCl=-'
...
...
Name of the bouncer set to '%s'.
User %s quitted (from %s)
:%s!%s@%s QUIT :good bye
ACTION
%s%s%s
:irc.psychoid.net PONG irc.psychoid.net :%s

Por lo poco que lo he mirado, es una especie de servidor para irc.


Vamos con el segundo:


amphora@hamlet:~/tmp/honeynet/reto$ tar -zxvf manu.tgz
emech/
emech/mech.set
emech/mech.session
emech/emech.users
emech/mech.levels
emech/emech.users.save
emech/httpd
emech/mech.pid
emech/LinkEvents

Esto es un bot para el irc, no voy a explicar cada uno de los ficheros, porque el artículo se haría eterno y no es el propósito, pero cabe destacar que httpd es un binario que permite controlar el bot vía web.


Continuemos. Antes cuando ejecute el comando fls, lo hice con el parámetro -d, que indica que solo muestre los ficheros borrados, si lo hacemos sin esa opción nos mostrará todo lo que hay en la partición. Y entre otras cosas interesantes he encontrado algo que llama la atención, no lo voy a investigar, pero estoy seguro de que me responde a otra de las preguntas ¿Por donde se han colado?


amphora@hamlet:~/tmp/honeynet/reto$ fls -f linux-ext2 -p -r 192.168.3.10-hda7.dd

...
...
r/r 30143:      ftp/nerod.tar.gz
d/d 14065:      ftp/nerod
d/d 18075:      ftp/nerod/sshd
r/r 18076:      ftp/nerod/sshd/ifconfig
r/r 18077:      ftp/nerod/sshd/init.sshd
r/r 18078:      ftp/nerod/sshd/install.log
r/r 18079:      ftp/nerod/sshd/sshd
...
r/r 14084:      ftp/nerod/linsniffer
r/r 14085:      ftp/nerod/login
r/r 14086:      ftp/nerod/ls
r/r 14087:      ftp/nerod/md5bd
r/r 14088:      ftp/nerod/me
r/r 14089:      ftp/nerod/netstat
r/r 14090:      ftp/nerod/ps
r/r 14091:      ftp/nerod/pstree

Parece evidente que el intruso, se metio por el ftp y ha subido los tipicos binarios que componen un rootkit. El porque de que se encuentren ahí y no hayan sido borrados u ocultados, lo desconozco, quizá no le dió tiempo o bien era un poco zoquete.

Lo siguiente que he intentado ha sido recuperar el fichero log/xferlog característico de los servidores ftp, pero me ha sido imposible. Entonces he optado por ver los últimos logins efectuados en la máquina. Para ello, he recuperado mediante icat a wmtp y ofrecía algo así:

amphora@hamlet:~/tmp/honeynet/reto$ sudo last -f ./wmtp
root     tty1                          Fri Aug 23 12:33    gone - no logout
ftp      ftpd7052     200.47.186.114   Fri Aug 23 00:22    gone - no logout
ftp      ftpd7049     200.47.186.114   Fri Aug 23 00:21    gone - no logout
ftp      ftpd6590     218.146.115.18   Thu Aug 22 08:26    gone - no logout
root     tty1                          Wed Aug 21 19:03 - 19:05  (00:02)
reboot   system boot  2.4.2-2          Wed Aug 21 19:01         (946+05:32)

Un vistazo a log/messages nos lo vuelve a confirmar:


...

Aug 22 06:26:29 localhost ftpd[6590]: ANONYMOUS FTP LOGIN FROM 218.146.115.18 [218.146.115.18], mozilla@
Aug 22 08:30:43 localhost ftpd[6595]: lost connection to a213-84-155-131.adsl.xs4all.nl [213.84.155.131]
Aug 22 08:30:43 localhost ftpd[6595]: FTP session closed
Aug 22 08:31:37 localhost ftpd[6596]: lost connection to a213-84-155-131.adsl.xs4all.nl [213.84.155.131]
...
Aug 22 22:21:05 localhost ftpd[7049]: ANONYMOUS FTP LOGIN FROM 200.47.186.114 [200.47.186.114], mozilla@
Aug 22 22:22:48 localhost ftpd[7052]: ANONYMOUS FTP LOGIN FROM 200.47.186.114 [200.47.186.114], mozilla@
Aug 23 00:25:03 localhost kernel: Kernel logging (proc) stopped.
Aug 23 00:25:03 localhost kernel: Kernel log daemon terminating.

Inmediatamente después de esos accesos la máquina comienza a reiniciarse, desconozco si en ese momento tiraron del cable los de rediris, o la reinicio el intruso por algún motivo.


Para el que quiera seguir jugando, que le eche un vistazo a la partición hda6, y verá como se creo un usuario con nombre nerod, que seguro tiene uid 0 en /etc/password. Sería interesante ver cual fue el fallo del servidor ftp( si es verdad que se colaron por allí) etc, pero yo ya he cumplido y más o menos tengo claro que puedo esperar de sleuthkit y como usarlo que ese era el propósito, además de mantenerme entretenido toda una tarde de un jueves santo.

< Cambios a partir de la fusion Conectiva - Mandrake (9 comments) | Los anónimos ya no pueden enviar noticias (18 comments) >
Enlaces Relacionados
· EnCase
· Ilook
· honeynet
· More on Seguridad
· Also by amphora

Menu
· crear cuenta
· FAQ
· búsqueda
· Fuentes de Noticias

Login
Nueva cuenta
Usuario:
Contraseña:

Ver: Modo: Orden:
Jugando con sleuthkit | 6 comentarios (5 temáticos, 1 editoriales, 0 ocultos)
+10 interesante (none / 0) (#2)
por simmaniac a las Sat Mar 26th, 2005 at 08:32:05 PM CET
(Información Usuario) http://www.geocities.com/simmaniac_es

Buenísimo, me ha encantado. Me han entrado ganas hasta de ponerme a "forensear" XDD. En serio, un artículo muy bueno, te lo agradezco.

Saludos



 
Reto de Análisis Forense (none / 0) (#3)
por advocatux a las Sat Mar 26th, 2005 at 09:50:41 PM CET
(Información Usuario)

Tengo que reconocer que siempre que veo algún artículo sobre análisis forense me encanta leerlo aunque tenga poca idea sobre el tema.

Citas el reto de análisis forense de Rediris pero, curiosamente, no pones los enlaces y creo que muchos libertonianos pueden disfrutar con la lectura de algunos de los análisis ya realizados en el primer reto. A mí me hicieron pasar un buen rato.

Esta es la página principal del reto, esta la de los resultados y esta la de algunos enlaces interesantes relacionados.

Los resultados del segundo reto, que está ahora en marcha aunque ya se ha cerrado la recogida de informes, se publicarán el 20 de abril (dentro de menos de un mes).

Donde parece que hay una gran afición por esta clase de retos es en Méjico.
--
- Por una Europa libre de Patentes de Software - EuropeSwPatentFree


¿No era el mismo? (none / 0) (#4)
por amphora (amphora@ecol.org) a las Sat Mar 26th, 2005 at 11:18:13 PM CET
(Información Usuario) http://sistematica.es

Tenía entendido que eran las mismas imágenes que la otra vez, pero si son distintas que pena no haberme enterado.

[ Padre ]


Es un reto distinto (none / 0) (#5)
por advocatux a las Sun Mar 27th, 2005 at 05:03:22 AM CET
(Información Usuario)

Por si sigues interesado en echarle un vistazo tienes aún disponibles las imágenes del segundo reto: http://pgp.rediris.es:16000/reto/ (puedes comprobar que los checksums son diferentes http://pgp.rediris.es:16000/reto/firmas.txt).
--
- Por una Europa libre de Patentes de Software - EuropeSwPatentFree
[ Padre ]


Chas gracias (none / 0) (#6)
por amphora (amphora@ecol.org) a las Sun Mar 27th, 2005 at 01:55:25 PM CET
(Información Usuario) http://sistematica.es

Si, si estoy interesado a nivel particular, no tengo nivel suficiente como para participar, pero se me ha despertado el gusanillo de Sherlock Holmes, me las voy a bajar para echar el rato, aunque esta vez voy a hacerlo en plan serio con autopsy.

[ Padre ]


 
Jugando con sleuthkit | 6 comentarios (5 temáticos, 1 editoriales, 0 ocultos)
Ver: Modo: Orden:

ecol Logo Powered by Scoop
Todas las Marcas Registradas y copyrights de esta página son propiedad de sus respectivos dueños.
Los comentarios son propiedad del que los escribe.
Los iconos de las noticias y el logotipo son propiedad de Javier Malonda.
El Resto © 2002 Escomposlinux.org y aledaños.

Puedes sindicar los contenidos de libertonia en formato RSS 1.0 y RDF 0.9. También se puede sindicar la cola de envíos pendientes de moderación.

El proyecto escomposlinux.org está dedicado a la memoria de tas

crear cuenta | faq | búsqueda