-[ 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 <paseante@attrition.org>


 *EOF*
