Siguiendo un poco la historia de ayer, un reporte mas detallado. Antes de ir a los bifes, quiero decir que una de las máquinas que ayer dije que estaba infectada no lo estaba. Descartando esa máquina podemos agregar otro factor común que no me gusta ni mierda: yo tengo usuario en todas, pero no en todas tengo sudo. También se agregó otra máquina de mi casa, que tiene Apache, pero no en el puerto 80, no al menos desde fuera.
Como comenté, lo instalado está en /usr/lib/libb/... /. El contenido es el siguiente:
$ ls -laR
.:
total 654
drwxr-xr-x 3 mdione mdione 152 feb 1 09:07 .
drwxr-xr-x 3 mdione mdione 280 feb 1 09:07 ..
-rw-r--r-- 1 mdione mdione 1638 ene 10 2006 bugfalse.c
-rw-r--r-- 1 mdione mdione 2369 ene 10 2006 clear.sh
drwxr-xrwx 3 mdione mdione 984 ene 10 2006 rk
-rw-r--r-- 1 mdione mdione 657610 ene 10 2006 rk2.tgz
./rk:
total 1609
drwxr-xrwx 3 mdione mdione 984 ene 10 2006 .
drwxr-xr-x 3 mdione mdione 152 feb 1 09:07 ..
-rw-r--r-- 1 mdione mdione 382 mar 5 2004 .b
-rw-r--r-- 1 mdione mdione 427 ago 7 2002 brute.sh
-rwxr-xr-x 1 mdione mdione 116352 mar 5 2004 chfn
-rwxr-xr-x 1 mdione mdione 115828 mar 5 2004 chsh
-rw-r--r-- 1 mdione mdione 123 mar 6 2002 desuid.sh
-rw-r--r-- 1 mdione mdione 249 ago 14 2002 dlog
-rwxr-xr-x 1 mdione mdione 54041 mar 5 2004 du
-rwxr-xr-x 1 mdione mdione 57296 mar 5 2004 find
-rwxr-xr-x 1 mdione mdione 137820 mar 5 2004 inetd
-rw-r--r-- 1 mdione mdione 12818 mar 5 2004 jeje
-rwxr-xr-x 1 mdione mdione 21306 mar 5 2004 killall
-rw-r--r-- 1 mdione mdione 54228 jun 7 2001 libshadow.a
-rw-r--r-- 1 mdione mdione 644 jun 7 2001 libshadow.la
-rwxr-xr-x 1 mdione mdione 47730 jun 7 2001 libshadow.so.0.0.0
-rwxr-xr-x 1 mdione mdione 38235 mar 5 2004 locate
-rw-r--r-- 1 mdione mdione 40416 jun 7 2001 login
-rw-r--r-- 1 mdione mdione 205 ago 7 2002 loginc
-rwxr-xr-x 1 mdione mdione 96895 mar 5 2004 ls
-rwxr-xr-x 1 mdione mdione 155494 mar 5 2004 ls2
-rwxr-xr-x 1 mdione mdione 82628 mar 5 2004 lsof
-rwxr-xr-x 1 mdione mdione 54152 mar 5 2004 netstat
-rw-r--r-- 1 mdione mdione 683 ago 14 2002 netstat.c
-rw-r--r-- 1 mdione mdione 4097 ago 14 2002 ovas0n.c
drwxr-xr-x 2 mdione mdione 200 ago 16 2002 pb
-rwxr-xr-x 1 mdione mdione 84568 mar 5 2004 ps
-r-xr-xr-x 1 mdione mdione 48285 mar 5 2004 ps2
-rw-r--r-- 1 mdione mdione 10641 may 20 2002 psf.c
-rwxr-xr-x 1 mdione mdione 12024 mar 5 2004 pstree
-rwxr-xr-x 1 mdione mdione 3758 mar 5 2004 rk.sh
-rw-r--r-- 1 mdione mdione 548 ago 14 2002 solaris
-rw-r--r-- 1 mdione mdione 27816 jun 7 2001 su
-rw-r--r-- 1 mdione mdione 397 abr 7 2003 suid
-rwxr-xr-x 1 mdione mdione 28476 mar 5 2004 syslogd
-rwxr-xr-x 1 mdione mdione 70145 mar 5 2004 top
-rwxr-xr-x 1 mdione mdione 155496 mar 5 2004 vdir
-rwxr-xr-x 1 mdione mdione 17851 ene 13 2004 wipe
-rw-r--r-- 1 mdione mdione 10027 jun 7 2001 wipe.c
./rk/pb:
total 53
drwxr-xr-x 2 mdione mdione 200 ago 16 2002 .
drwxr-xrwx 3 mdione mdione 984 ene 10 2006 ..
-rw-r--r-- 1 mdione mdione 422 jul 1 2001 Makefile
-rw-r--r-- 1 mdione mdione 3463 mar 13 2000 a-p.c
-rwxr-xr-x 1 mdione mdione 13766 jul 26 2001 ap
-rw-r--r-- 1 mdione mdione 4871 mar 13 2000 icmplib.h
-rwxr-xr-x 1 mdione mdione 15004 jul 26 2001 selver
-rw-r--r-- 1 mdione mdione 2567 jul 1 2001 selver.c
Cosas interesantes en él:
bugfalse.c es una reimplementación de /bin/false que encontré andando al menos en el server de mi laburo. Ésta retorna 1 normalmente, pero si rápidamente se le ingresa una password, devuelve un shell como root. Para eso se instala setuid y setgid:
$ ls -l /bin/false
-rwsr-xr-x 1 root root 11612 2004-07-16 08:37 /bin/false
clear.sh fue sacado de "raza mexicana". Es para borrar logs.
a-p.c es un callbacker. Envía un paquete ICMP a una dirección, recibe como respuesta un comando y lo ejecuta.
selver.c es un servidorcito que recibe un paquete ICMP, abre un puerto y enchufa bash en él. El código tiene perlitas como:
if(strstr(buffer, "quit")) {
a++;
exit(0);
}
(la indentación es del original).
brute.sh lanza procesos como para hacer cosas en batch.
jeje es la salida de un strace de una corrida de vdir. En algún momento vemos un hostname "Ginebra-Rulez" en la salida de una llamada a uname(). Sólo encontré referencias al basquet filipino. No le veo más nada interesante.
loginc es un bash script que simula ser el viejo login, pero guarda passwds en /var/tmp/.oracle1.
ovas0n.c lo podemos encontrar por toda la red. Otro servidorcito que arranca bash.
psf.c cambia el comando reportado en las salidas de ps, top y otros. Bastante educativo porque explica exactamente cómo lo hace.
rk.sh es el instalador de todos los otros binarios que vemos con nombres usuales: ls, ps, etc.
wipe.c es otro log cleaner. En particular éste es el que sabe borrar entradas de /var/log/{b,u,w}tmp.
Por último, estuve buscando a otros en la red que le pueda haber mordido esto. Sólo encontré a un ponja (ver entradas del 10/11/2001; sí, 2001) que no le entiendo una goma. Pero si lo traducimos con google o con babelfish sale en un lado la palabra "Argentina", que es de donde parece más le entraron :-|.
En fin, es todo por ahora.