Está en la página 1de 16

CURSO PRACTICO DE HACKING By Lecter l3ct3r@hotmail.

com

Un hacker de verdad "jamas se colocaria un piercing para aparentar: lo unico que agujerean es el sistema". El hacking es un camino duro y dificil, "que implica muchas renuncias. La primera y la mas importante es la que diferencia verdaderamente al hacker del lamer: la renuncia al ego..." Carlos Snchez Almeida Antes de entrar de lleno en el capitulo 2 quiero aclarar algo a los estudiantes del primer capitulo: Las utilidades whois, traceroute, host, ping y nslookup las debeis tener en cualquier sistema linux que monteis. Las podeis usar en consola o en un xterm. Algunas como traceroute hay que usarlas en ciertas distros linux como root, pero en otras no. Evidentemente antes habreis de conectaros ;-). Hoy Linux se presenta en distribuciones francamente windoleras en el sentido de estar dirigidas al usuario final como Mandrake, Caldera, SuSE, etc...Aunque no voy a despotricar de ellos, porque son excelentes sera deseable que os instalarais una ms acorde con el inters hackerstico de conocer y poder emplear el sistema a fondo y por nuestra propia cuenta, como por ejemplo Debian o Slackware o RockLinux . Las utilidades necesarias podeis encontrarlas en la red. Para ello basta con el excelente GOOGLE (http://www.google.com). De todos modos os dire donde podeis descargar las principales herramientas: -fping en http://www.fping.com/download/ -nmap en http://www.insecure.org/nmap/ -netcat en http://www.l0pht.com/~weld/netcat/ -queso en http://www.apostols.org/projectz/queso Segn Scambray et al., los autores de HACKERS 2, seguir el rastro equivale a merodear en busca de informacin (listas de IP y datos de red) mediante whois y transferencias de zona. Explorar es equivalente a determinar que sistemas se encuentran activos y cules son accesibles a travs de internet (barridos ping, escaneo de puertos). Eso lo hemos visto parcialmente en el primer captulo. La Enumeracin viene a ser la extraccin de cuentas de usuario vlidas o recursos compartidos mal protegidos. A este tema no adentramos un poco en el captulo presente.

Espero que continueis en la brecha Saludos, LECTER

Captulo 2. Obteniendo informacin crtica del objetivo


Vamos a centrarnos en la obtencion de informacion critica que luego pudiramos explotar para introducirnos en el sistema objetivo. La informacion critica se basa siempre en algun compromiso en la seguridad de un servicio, un bug (fallo) de algun comando relacionado con los servicios, etc. Para este capitulo me he basado en un libro muy util que acaba de salir al mercado:Hacking exposed;network security secrets and solutions 2 edicin, de J. Scambray, Stuart McClure y George Kutz (ya est en espaol como HACKER 2, Secretos y soluciones para la seguridad de redes, en Mc Graw-Hill Osborne). Pero antes de comenzar vamos a considerar si protege algun cortafuegos nuestro objetivo. Comprobaremos solamente si existe algun cortafuegos que proteja nuestro objetivo. La manera de saltarse el cortafuegos ya la consideraremos en las tecnicas de ataque, pues ahora estamos extrayendo informacion critica solamente. Recordando la utilidad nmap, podemos usarla para descubrir cortafuegos. Cuando nmap explora un host, no solamente dice si los puertos estan abiertos, sino tambien si estan "filtrados". Un puerto filtrado en nmap indica que o bien no se recibio ningun paquete SYN/ACK o RST/ACK o bien se recibio un mensaje ICMP de destino inalcanzable con codigo 13 (Cominicacion prohibida por el administrador). Otra utilidad interesante es hping (http://www.hping.org/). Una vez instalada, hacemos como root #>hping objetivo.com -S -p (n de puerto) De este modo se envian paquetes TCP SYN al puerto destino y obtenemos informacion de los paquetes que regresan. Si el flag de respuesta es SA (SYN/ACK) quiere decir que el puerto destino esta abierto y listo para recibir conexion. A veces nos sale como respuesta "ICMP unreachable type 13 from X.X.X.X" lo que nos indica que X.X.X.X es el cortafuegos del objetivo. No obstante si el resultado de hping no da respuesta alguna puede ser que o bien el paquete se haya perdido en la red o que el cortafuegos lo detenga. Si obtenemos una respuesta con flag RA (RST/ACK) puede ser que el cortafuegos haya rechazado el paquete o puede que lo haya dejado pasar por el puerto pero que el host objetivo no esta escuchando. Vamos a intentar ilustrarlo con un ejemplo. Mi host objetivo es la pagina web del Centro Informatico Cientifico de Andalucia, www.cica.es. Voy antes que nada a hacer un traceroute (Nota: estos listados son de hace cierto tiempo y solo los empleo a manera de ejemplo; actualmente podran presentar modificaciones) $>traceroute www.cica.es
1 SEVI-X13.red.retevision.es (62.81.56.45) 134.694 ms 139.73 ms 139.866 ms 2 SEVI-R3.red.retevision.es (62.81.56.27) 139.931 ms 120.489 ms SEVIR1.red.retevision.es (62.81.56.28) 129.317 ms 3 SEVI-R15.red.retevision.es (62.81.55.229) 139.938 ms 129.841 ms 119.956 ms 4 BARC-R16.red.retevision.es (62.81.125.3) 170.034 ms 149.872 ms 149.948 ms 5 ReteNAC.red.retevision.es (62.81.63.202) 139.926 ms 169.764 ms 159.934 ms 6 EspaNIX.red.retevision.es (62.81.8.146) 179.967 ms 179.872 ms 169.909 ms 7 ibernet.espanix.net (193.149.1.57) 170.042 ms 159.813 ms 149.953 ms 8 194.179.0.113 (194.179.0.113) 179.942 ms 159.778 ms 159.919 ms 9 A0-2-4.EB-Madrid00.red.rediris.es (130.206.224.77) 159.959 ms 199.853 ms 169.892 ms 10 A1-0-1.EB-Sevilla1.red.rediris.es (130.206.224.10) 189.936 ms 189.926 ms 179.875 ms 11 130.206.194.10 (130.206.194.10) 179.931 ms 169.96 ms 169.856 ms 12 argantonio.cica.es (150.214.5.77) 189.97 ms * 180.02 ms

Muy bien, el host 130.206.194.10 parece ser un enrutador o cortafuegos que dirige el trafico a argantonio.cica.es (www.cica.es). Ahora voy a utilizar la herramienta nmap para hacer una evaluacion de la topologia de una subred. Voy a escanear por el puerto 80 silenciosamente todas las maquinas de la subred C a la que pertenece www.cica.es: #>nmap -sS -p80 www.cica.es/24
# Nmap (V. nmap) scan initiated 2.53 as: The 1 scanned port on (150.214.5.0) is: The 1 scanned port on (150.214.5.1) is: Interesting ports on www.ceseand.cica.es Port State Service 80/tcp open http nmap -sS -p80 www.cica.es/24 closed closed (150.214.5.2):

Interesting ports on scsasnt.sas.cica.es (150.214.5.3): Port State Service 80/tcp open http Interesting ports on prometeo.cica.es (150.214.5.4): Port State Service 80/tcp open http Interesting ports on cdaea.cica.es (150.214.5.6): Port State Service 80/tcp open http Interesting ports on caf.cica.es (150.214.5.7): Port State Service 80/tcp open http Interesting ports on microbio.cica.es (150.214.5.8): Port State Service 80/tcp open http Interesting ports on www.csalud.junta-andalucia.es (150.214.5.9): Port State Service 80/tcp open http Interesting ports on thales.cica.es (150.214.5.10): Port State Service 80/tcp open http The 1 scanned port on mileto.cica.es (150.214.5.11) is: closed Interesting ports on www.tresculturas.org (150.214.5.12): Port State Service 80/tcp open http Interesting ports on cdma.cica.es (150.214.5.13): Port State Service 80/tcp open http Host (150.214.5.31) seems to be a subnet broadcast address (returned 1 extra pings). Still scanning it due to positive ping response from its own IP. The 1 scanned port on (150.214.5.31) is: closed Host (150.214.5.48) seems to be a subnet broadcast address (returned 1 extra pings). Skipping host. The 1 scanned port on osni.cica.es (150.214.5.49) is: closed The 1 scanned port on io.cica.es (150.214.5.50) is: closed The 1 scanned port on iat-gw.cica.es (150.214.5.51) is: closed

Host (150.214.5.55) seems to be a subnet broadcast address (returned 1 extra pings). Still scanning it due to positive ping response from its own IP. The 1 scanned port on (150.214.5.55) is: closed Host (150.214.5.64) seems to be a subnet broadcast address (returned 1 extra pings). Skipping host. The 1 scanned port on (150.214.5.65) is: closed The 1 scanned port on winbdd.cica.es (150.214.5.66) is: closed The 1 scanned port on mercurio.cica.es (150.214.5.67) is: closed The 1 scanned port on winbdd2.cica.es (150.214.5.68) is: closed Interesting ports on orgiva.cica.es (150.214.5.69): Port State Service 80/tcp open http The 1 scanned port on cache.cica.es (150.214.5.70) is: closed The 1 scanned port on ntp.cica.es (150.214.5.71) is: closed Interesting ports on patro.cica.es (150.214.5.72): Port State Service 80/tcp open http The 1 scanned port on horacio.cica.es (150.214.5.73) is: closed Interesting ports on argantonio.cica.es (150.214.5.77): Port State Service 80/tcp open http Interesting ports on ligustino.cica.es (150.214.5.78): Port State Service 80/tcp open http Interesting ports on listas.cica.es (150.214.5.79): Port State Service 80/tcp open http The 1 scanned port on idefix.cica.es (150.214.5.85) is: closed The 1 scanned port on lejia-s.cica.es (150.214.5.126) is: closed Host (150.214.5.127) seems to be a subnet broadcast address (returned 1 extra pings). Still scanning it due to positive ping response from its own IP. The 1 scanned port on (150.214.5.127) is: closed # Nmap run completed at Mon Aug 7 00:56:51 2000 -- 256 IP addresses (33 hosts up) scanned in 31 seconds

Bueno, bueno...ahora si hago un traceroute a cada uno de los hosts que han sido escaneados, obtengo que en todos los casos, el host 130.206.194.10 les apunta, con lo cual podemos asegurar que se trata de un router/firewall frontera. Voy a escanear www.cica.es con nmap pero a todos los puertos:
# Nmap (V. nmap) scan initiated 2.53 as: nmap -vv -sS -O -P0 www.cica.es Interesting ports on argantonio.cica.es (150.214.5.77): (The 1508 ports scanned but not shown below are in state: closed) Port State Service 21/tcp open ftp 22/tcp open ssh 23/tcp open telnet 80/tcp open http 119/tcp filtered nntp 123/tcp filtered ntp 389/tcp open ldap 390/tcp open uis 443/tcp open https 512/tcp open exec

513/tcp 514/tcp 515/tcp 3128/tcp 8888/tcp

open open open open open

login shell printer squid-http sun-answerbook

TCP Sequence Prediction: Class=random positive increments Difficulty=88217 (Worthy challenge) Sequence numbers: C71B5D1D C71EA319 C7205F3B C721CEFD C72706F0 C729B3AC Remote OS guesses: Solaris 2.6 - 2.7, Solaris 7 OS Fingerprint: TSeq(Class=RI%gcd=1%SI=15899) T1(Resp=Y%DF=Y%W=2297%ACK=S++%Flags=AS%Ops=NNTNWME) T2(Resp=N) T3(Resp=N) T4(Resp=Y%DF=Y%W=0%ACK=O%Flags=R%Ops=) T5(Resp=Y%DF=Y%W=0%ACK=S++%Flags=AR%Ops=) T6(Resp=Y%DF=Y%W=0%ACK=O%Flags=R%Ops=) T7(Resp=Y%DF=Y%W=0%ACK=S%Flags=AR%Ops=) PU(Resp=Y%DF=Y%TOS=0%IPLEN=70%RIPTL=148%RID=E%RIPCK=E%UCK=E%ULEN=134%DAT=E) # Nmap run completed at Sun Aug scanned in 34 seconds 6 20:02:23 2000 -- 1 IP address (1 host up)

Se trata de un Solaris 2.6-2.7 que tiene filtrados los puertos de usenet (119) y network time protocol (123). Luego a no ser que este mismo host utilice un filtro de paquetes, sospecharemos que son filtrados por las reglas del firewall/router que le precedia en la secuencia de traceroute. Si barremos ahora los puertos del supuesto firewall:
# Nmap (V. nmap) scan initiated 2.53 as: nmap -vv -sS -O -P0 130.206.194.10 Interesting ports on (130.206.194.10): (The 1517 ports scanned but not shown below are in state: closed) Port State Service 79/tcp open finger 119/tcp filtered nntp 123/tcp filtered ntp 1998/tcp open x25-svc-port 2001/tcp open dc 6001/tcp open X11:1 TCP Sequence Prediction: Class=random positive increments Difficulty=38400 (Worthy challenge) Sequence numbers: 2395ACF2 23A031DB 23AB5C89 23B4BE60 23BF584E 23C98A6A Remote OS guesses: AS5200, Cisco 2501/5260/5300 terminal server IOS 11.3.6(T1), Cisco IOS 11.3 - 12.0(9) OS Fingerprint: TSeq(Class=RI%gcd=1%SI=9600) T1(Resp=Y%DF=N%W=1020%ACK=S++%Flags=AS%Ops=M) T2(Resp=Y%DF=N%W=0%ACK=S%Flags=AR%Ops=) T3(Resp=Y%DF=N%W=1020%ACK=S++%Flags=AS%Ops=M) T4(Resp=Y%DF=N%W=0%ACK=O%Flags=R%Ops=) T5(Resp=Y%DF=N%W=0%ACK=S++%Flags=AR%Ops=) T6(Resp=Y%DF=N%W=0%ACK=O%Flags=R%Ops=) T7(Resp=Y%DF=N%W=0%ACK=S%Flags=AR%Ops=) PU(Resp=N)

# Nmap run completed at Sun Aug scanned in 26 seconds

6 19:40:12 2000 -- 1 IP address (1 host up)

Vemos que se trata efectivamente de un Cisco Terminal Router IOS 11.3-12.0 y que filtra tambien esos dos puertos. Si hacemos un hping a www.cica.es #>hping www.cica.es -S -p 80
ppp0 default routing interface selected (according to /proc) HPING www.cica.es (ppp0 150.214.5.77): S set, 40 headers + 0 data bytes 44 bytes from 150.214.5.77: flags=SA seq=0 ttl=243 id=4427 win=9112 rtt=188.4 44 bytes from 150.214.5.77: flags=SA seq=1 ttl=243 id=4428 win=9112 rtt=200.2 44 bytes from 150.214.5.77: flags=SA seq=2 ttl=243 id=4429 win=9112 rtt=210.2 44 bytes from 150.214.5.77: flags=SA seq=3 ttl=243 id=4430 win=9112 rtt=200.2 44 bytes from 150.214.5.77: flags=SA seq=4 ttl=243 id=4431 win=9112 rtt=190.2 44 bytes from 150.214.5.77: flags=SA seq=5 ttl=243 id=4432 win=9112 rtt=210.1 ms ms ms ms ms ms

Paramos con Ctrl-C


--- www.cica.es hping statistic --6 packets tramitted, 6 packets received, 0% packet loss round-trip min/avg/max = 188.4/199.9/210.2 ms

y observamos que el flag=SA indica que el puerto 80 esta efectivamente abierto. Pero si hacemos hping al puerto 119 #>hping www.cica.es -S -p 119
ppp0 default routing interface selected (according to /proc) HPING www.cica.es (ppp0 150.214.5.77): S set, 40 headers + 0 data bytes --- www.cica.es hping statistic --13 packets tramitted, 0 packets received, 100% packet loss round-trip min/avg/max = 0.0/0.0/0.0 ms

Efectivamente, esta vez no tenemos ninguna respuesta y debemos pensar que el cortafuegos/o enrutador (Cisco ultimate server) la detuvo. O tal vez el propio host tenia filtro de paquetes?. Si utilizamos de nuevo nmap y escaneamos toda la subred en los puertos 119 y123: #>nmap -sS -p119,123 www.cica.es/24 obtenemos en todos los casos que los hosts tienen esos dos puertos filtrados: Mucha casualidad va a ser que cada host utilice un sistema de filtrado en dichos puertos :). Lo mas aplastante es que el host 130.206.194.10 disponga unas reglas de firewall que filtren dichos puertos a todos los hosts a los que apunta. De las cuestiones acerca de los tipos de cortafuegos y las tecnicas para traspasarlos nos dedicaremos en el capitulo destinado al ataque, como ya dije antes.La exploracion de los puertos de un cortafuegos es util, pero la mayoria no escuchan en puertos predeterminados. La identificacion de algunos cortafuegos puede hacerse si tenemos suerte de modo muy sencillo leyendo ciertos

mensajes de identificacion que muchos de ellos presentan. Con la utilidad netcat podemos conectarnos al puerto 21 del posible cortafuegos #>nc -v -n 192.168.51.129 21
(UNKNOWN) [192.168.51.129] 21 (?) open 220 Secure Gateway FTP server ready

o al 23: #>nc -v -n 192.168.51.129 23


(UNKNOWN) [192.168.51.129] 23 (?) open Eagle Secure Gateway Hostname:

Y una vez visto este tema preliminar, vamos a centrarnos en las posibilidades de extraer informacin de nuestro objetivo merced a ciertos fallos de configuracin: Comenzaremos con sistemas tipo UNIX/Linux y luego pasaremos a Windows NT y 2000.

2.1 Sistemas UNIX/Linux


2.1.1 Informacion critica obtenida mediante "transferencia de zona" de servidores DNS mal configurados Algunas veces nos encontramos con servidores DNS configurados de manera insegura y que pueden permitirnos entrar en la llamada zona de transferencia de DNS, aun siendo usuarios de internet no autorizados. Podemos intentarlo utilizando la instruccion nslookup en modo interactivo: $>nslookup ...a continuacion aparecera el servidor DNS por defecto que sera el de nuestro ISP u organizacion...pero como queremos consultar otro, X.X.X.X (uno que corresponda a nuestro objetivo, como obtuvimos al hacer whois transmeta.com) escribiremos >server X.X.X.X a lo que respondera aceptandolo como "default". A continuacion hacemos >set type=any >ls -d objetivo.net.>> fichero Lo que hemos hecho es definir el tipo de registro como cualquiera (any) con lo que podemos recuperar los registros DNS disponibles. Luego los listamos y redirigimos a "fichero" para consultarlo mas adelante. Si ha habido suertecilla, cosa que dudo, al leer "fichero", encontrariais diversas entradas con varios registros, p.ej:
acct22 1D IN A 192.168.230.3 1D IN HINFO "Gateway 2000" "Win WKGRPS" 1D IN MX 0 acmeadmin-smtp ........................................

El registro A indica la direccion IP de esta cuenta, HINFO identifica la plataforma o el sistema operativo y MX nos dice donde se gestiona el correo. Existen mas registros, pero no los voy a comentar. Esta informacion es muy valiosa porque nos da de golpe conocimiento del sistema operativo y gestor de correo (aparte de mucho mas). Existe una utilidad algo dificililla de encontrar buscando a las bravas por la red, que nos permite realizar transferencias de zona (cuando se puede) y transferir de manera recursiva informacion de la zona y archivos huespedes de cada uno de los dominios consultados. Tal herramienta es "axfr" que la podeis encontrar en ftp.connectnet.com/pub/security/trinux/netmap/axfr-0.5.2.tar.gz. Una vez instalado, hacemos como root #>axfr objetivo.net y saldran algunos mensajes
axfr: Using default directory /root/axfrdb Found X.X.X.X name server for domain 'objetivo.net' text deleted Received xxxx answers

Ya esta. Para consultar la base de datos basta con que hagais #>axfrcat objetivo.net Pero como ya he dicho, no sera tan tordo el administrador de dejar mal configurado el servidor DNS. 2.1.2. Exportacion de archivos NFS El Network File System (NFS) es un sistema de red que posibilita que un host servidor proporcione sistemas de archivos y dispositivos perifericos a maquinas clientes. Si el amigo administrador no es un lumbrera o pasa cantidad, puede que no haya configurado el servidor NFS adecuadamente...y cualquier usuario remoto puede tener acceso de lectura y escritura. Si mediante una exploracion previa se observa que el puerto 2049 (servidor nfs) de un host esta abierto, con la utilidad showmount -e podemos conseguir la lista de exportacion de un servidor NFS. Si hacemos como root #>showmount -e objetivo.net y nos sale algo como RPC: Port mapper failure - RPC: Unable to receive pues nada, no ha habido suerte pero si nos saliera #>showmount -e objetivo2.net
export list for objetivo2.net /pub (everyone) /home (everyone)

ya podiamos establecer una via de entrada con ayuda de los rlogin :)(ya lo veremos en el hacking). 2.1.3. Listado de usuarios y grupos

Parece mentira, pero algunos administradores emplean la utilidad finger con mnimas medidas de seguridad...y esto permite obtener bastante informacion en muchos casos para ingenieria social, que aunque yo no lo considero como una tecnica pura de hacking, te puede resolver el problema :). Supongamos que el host objetivo esta ejecutando el servicio fingerd (puerto 79). Si hacemos como root #>finger -l @host.objetivo
[host.objetivo] login:root name:root Directory:/root Shell:/bin/bash On since Sun Mar 20: 10:15(PST) on tty1. 11 minutes idle (message off) On since Sun Mar 20: 10:15(PST) on ttyp0 from :0.0. 3 minute 15 seconds idle No mail Plan: Luke Skywalker Linux Guru Telnet password is LoRdVaDeR

Peaso de info (pero, como las peliculas de los intocables, el parecido con la realidad es pura coincidencia) La informacion proporcionada por finger en principio deberia ser inocua porque la extrae de los campos de /etc/passwd. Lo mas peligroso es que indica el nombre de los usuarios conectados y sus tiempos de inactividad. Adems, cualquier usuario que tenga un archivo .plan o .project en su directorio particular, la presentara al hacer finger un merodeador. Los comandos rwho y rusers muestran los usuarios conectados al host remoto, pero no dan tanta informacion como finger. Es posible mediante el servicio smtp localizar usuarios con los mandatos vrfy (confirmacion de usuarios validos) y expn (direcciones reales de entrega de correo y alias): $>telnet 192.168.202.34 25
.......................... 220 mail.bigcorp.com ESMTP Sendmail 8.8.7 vrfy root 250 root <root@bigcorp.com> expn adm 250 adm <adm@bigcorp.com>

2.1.4. Aplicaciones RPC Remote Procedure Call (RPC)tiene que ver con interacciones entre procesos. El concepto de RPC es una sencilla tcnica para desarrollar aplicaciones donde se requiere la comunicacin entre procesadores que cooperan en un sistema distribuido. El mecanismo RPC proporciona un servicio para el programador de apliciones que le permite el uso transparente de un servidor para proporcionar alguna actividad por parte de la aplicacin.Esto efectivamente puede ser utilizado para interactuar con un servidor computacional o con una Base de Datos, y ha sido usado por algunos sistemas para proporcionar acceso a servicios del sistema operativo.El ultimo uso conocido es en sistemas basados en micro-ordenadores, que da un mejor resultado que en los sistemas tradicionales encontrados en la mayoria de sistemas unix.La orden rpcinfo es el equivalente a finger en la enumeracion de aplicaciones RPC que estan a la escucha en hosts remotos en los puertos 111 (rpcbind) o 32771 (Sun) Supongamos que nuestro objetivo o una maquina de su subred tiene activo el puerto 111. Si hacemos

#>rpcinfo -p objetivo.net y obtenemos:


program 100000 100002 100011 100005 100003 100004 vers 2 3 2 1 2 2 proto tcp udp udp udp udp tcp port 111 712 754 635 2049 778 rpcbind rusersd rquotad mountd nfs ypserv

Esta informacion (me salto lo que ahora puede ser superfluo) indica que se estan ejecutando rusersd, nfs e ypserv que es el servidor de NIS. NIS (Network Information System) es un protocolo de nivel de aplicacion muy util para la gestion de configuraciones cliente/servidor en sistemas unix. Es un sistema de bases de datos distribuidas que permiten de manera uniforme el almacenamiento y la recuperacion de los recursos de red. Como explica Daemond, en lugar de gestionar archivos como el /etc/hosts, /etc/passwd, /etc/group independientemente en cada maquina de la red, esto permite que solamente haya una base de datos compartida (mapas) por el resto de las maquinas clientes en un servidor central. Esto tiene su aquel para el hacking de sistemas usando ypcat, pero ya lo veremos. Existen muchos mas modos de extraer informacion, por ejemplo leyendo el codigo de las paginas web, estableciendo posibles relaciones de confianza (trusted hosts con rlogin), ingenieria social, quinta columna... pero creo que no esta mal para comenzar.

2.2 Sistemas Windows NT/2000


Windows NT puede presentar problemas de seguridad debido a los protocolos CIFS/SMB (Common Internet File System/Server Message Block) y NetBIOS de los que dependen sus servicios de red. Aunque Windows 2000 tiene TPC/IP nativo, tambin emplea estos protocolos y esa es la fuente de posibles ataques, porque dichos protocolos incluyen APIs que dan bastante informacin acerca de cualquier mquina a travs del puerto 139 TCP aun sin autenticacin de usuario. Si el administrador no ha filtrado los puertos adecuados o ha aplicado el mecanismo de Restricted Anonymous (alguno encontraremos) es posible entrar mediante una conexin no autenticada llamada sesin nula. Suponiendo que en la mquina 192.168.100.8 sabemos que el puerto 139 est abierto (escaneo previo), podemos hacer: >net use \\192.168.100.8\IPC$ /u: Con lo cual podremos conectarnos con el recurso compartido oculto (IPC$) de la direccin 192.168.100.8 como usuario annimo registrado (/u: ) con contrasea nula ( ). 2.2.1 Exploracin de recursos compartidos mediante Legion y NetBIOS Auditing Tool (NAT) Podemos usar un scanner de NetBIOS para comprobar rpidamente redes completas y hallar recursos compartidos. Uno muy til es Legin, desarrollado por el grupo Rhino9 y que podeis encontrar en
http://packetstormsecurity.org/groups/rhino9/

La versin 2.1 es la ms reciente. Permite enumerar una red clase C mostrando los recursos compartidos disponibles. En la figura se observa su aplicacin para una red casera de dos mquinas:

Adems, la ltima versin trae una utilidad de ataque por fuerza bruta que intenta conectarse con un determinado recurso compartido mediante una lista de contraseas suministradas. Otro scanner de recursos compartidos interesante es el llamado NetBIOS Auditing Tool (NAT) y que podeis descargar de
http://www.ussrback.com/NT/scanners/index.html

NAT busca recursos compartidos y tambin intenta forzar la entrada utilizando listas de usuarios y passwords suministradas por el usuario. El programa hay que usarlo en consola (MS DOS) o usar una interfaz grfica desarrollada por integrantes del grupo Rhino9. De todas formas, est integrada en los Essential nettools de Tamos. Podeis descargarlo en
http://www.tamos.com/download/main/

Se trata de la versin 3.0 built 80, una versin shareware, pero podeis hacer que sea todo lo duradera que querais porque el programa usa los siguientes valores del registro de windows para controlar el tiempo: [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings] "UseParamsE" [HKEY_USERS\.DEFAULT\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings] "UseParamsE" Adems, despus del perodo de evaluacin se aadirn al registro los valores:

[HKEY_CURRENT_USER\SOFTWARE\ENT3\Main] "FlatText"="1" [HKEY_USERS\.DEFAULT\SOFTWARE\ENT3\Main] "FlatText"="1" Por lo tanto, podemos hacer lo siguiente: 1. Ejecutar REGEDIT.EXE , buscar y eliminar los valores de registro indicados. 2. Adelantar el reloj del sistema a por ejemplo el ao 2030. 3. Ejecutar essentials nettools y salir luego del programa. 4. Corregir el reloj al tiempo local. De este modo tendremos demo hasta el 2030 . Bueno, una salida de la ejecucin de essentials nettoools/NAT la veis en la figura siguiente:

Como veis es un peligro en manos malvolas.

2.2.1 Enumeracin general en Windows NT/2000: Enum Vamos a considerar ahora un excelente programa para la enumeracin de redes NT/2000: ENUM. Podeis descargarlo de :
http://razor.bindview.com/tools/desc/enum_readme.html

El resumen de la pgina lo explica suficientemente: Propsito: Una herramienta para enumerar y utilizar sesiones nulas y de usuario y extraer informacin de win NT/2000. Descripcin: enum es una utilidad de enumeracin de consola basada en Win32. Empleando sesiones nulas, enum puede extraer listas de usuarios, de mquinas, de recursos compartidos, de nombres, de mquinas, de grupos y miembros, contraseas e informacin LSA. Enum es capaz de efectuar ataques tipo fuerza bruta rudimentarios sobre cuentas individuales. Uso: > enum <-UMNSPGLdc> <-u username> <-p password> <-f dictfile> <hostname|ip> -U is get userlist -M is get machine list -N is get namelist dump (different from -U|-M) -S is get sharelist -P is get password policy information -G is get group and member list -L is get LSA policy information -D is dictionary crack, needs -u and -f -d is be detailed, applies to -U and -S -c is don't cancel sessions -u is specify username to use (default "") -p is specify password to use (default "") -f is specify dictfile to use (wants -D) Requirimientos: Microsoft Visual C++, Windows NT, Sentido del humor As, enum automatiza la configuracin de la sesin nula y extrae toda la informacin de utilidad para el atacante. Por ejemplo: enum U d p L c <direccin IP de red> server: X.X.X.X setting us session... success. Password policy: Min length: none *** lockout threshold: none opening lsa policy... success names: netbios: <fulanito.com>

domain: <fulanito.com> *** trusted domains: SYSOP PDC: CORP-DC Netlogon done by a PDC server Getting user list (pass 1, indice 0)... success, got 11. Administrator (Built-in account for administering the computer /domain) attributes: chris attributes Guest (Built-in account for guest access to the computer/domain) attributes: disabled *** Enum puede acceder remotamente a la contrasea, de usuario en usuario, usando la orden: enum D u <nombreusuario> -f <archivo diccionario> 2.2.1 Enumeracin de cuentas de usuarios con user2sid y sid2user Existe una herramienta excelente para la enumeracin de cuentas usuarios de Windows NT/2000 que son los programas user2sid y sid2user creados por Evgenii Rudnyi y que podeis encontrar en
http://www.chem.msu.su/~rudnyi/NT/

SID es el acrnimo de Identificador de Seguridad , un valor numrico de longitud variable producido en la instalacin de Windows NT. Una vez que sabemos el SID de un dominio mediante user2sid, podremos argir procedimientos de enumeracin. Lo primero ser buscar el SID de cualquier cuenta del dominio, por ejemplo domain users con user2sid. Una vez obtenido el SID, por ejemplo: S-1-5-21-201642981-56263093-24269216-513, entonces podemos usar sid2user para localizar cuntas sabiendo que la cadena numrica que sigue al ltimi guin ( aqu 513) es el llamado identificador relativo (RID), y est predefinido en Windows NT/2000 para el administrador (500) y usuarios invitados (501). Veamos como procederamos para ver las cuentas de una mquina identificada por www.xyz.com: 1) Encontrar la IP: >nslookup www.xyz.com Non-authoritative answer: Name: www.xyz.com Address: 131.107.2.200 2) probar una sesin nula: >net use \\131.107.2.200\ipc$ "" /user:"" The command completed successfully.

3) Ejecutar user2sid (en una consola MS DOS) > user2sid \\131.107.2.200 "domain users" S-1-5-21-201642981-56263093-24269216-513 Number of subauthorities is 5 Domain is XYZ_domain Length of SID in memory is 28 bytes Type of SID is SidTypeGroup 4) Ahora le quitamos a la cadena SID devuelta el comienzo (S-1) y cambiamos la cadena final por la del administrador (500) y la introducimos con el comando sid2user cambiando los guiones por espacios: >sid2user \\131.107.2.200 5 21 201642981 56263093 24269216 500 Name is XYZAdmin Domain is XYZ_domain Type of SID is SidTypeUser 5) Probamos con otros nmeros mgicos de RID: 1000 para la primera cuenta, 1001, para la seguda, etc. >sid2user \\131.107.2.200 5 21 201642981 56263093 24269216 1000 Name is Domain is XYZ_domain Type of SID is SidTypeDeletedAccount >sid2user \\131.107.2.200 5 21 201642981 56263093 24269216 1001 Name is Simpson Domain is XYZ_domain Type of SID is SidTypeUser >sid2user \\131.107.2.200 5 21 201642981 56263093 24269216 1112 LookupSidName failed - no such account ... No hay forma de bloquear los ataques sid2user/user2sid a menos que se haya impedido el acceso a los puertos 139 y 445 TCP. Diablico! ];-). Existen muchas otras formas de enumerar sistemas Windows NT/2000, pero esto solamente es un cursillo orientativo. En el prximo captulo nos dedicaremos a los sistemas Windows 95/98/ME, ms fciles an de visitar.

Apndice: Nmap para Windows


La excelente utilidad nmap no est ya unicamente a disposicin de usuarios de unix/Linux, sino tambin para usuarios de Windows NT (nmapNT). Pero hay ms: a partir del Service Pack 1 (nmapNT sp1) se incorpora un driver para poder usarla en equipos Windows 9x y 2000. Lo podeis descargar de
http://www.eeye.com/html/Research/Tools/nmapNT.html

Es un programa que funciona desde la consola (como en Linux sin el front-end) y solo requiere que lo descomprimamos en un directorio de trabajo, Sin embargo, para que funcione (leeros el readme) hay que instalar el driver correspondiente de comunicaciones para nuestra tarjeta de red. Para hacer esto nos vamos al panel de control y en Red, aadimos un nuevo protocolo desde disco. Seleccionaremos el directorio donde hemos descomprimido el programa y le indicaremos el subdirectorio /drivers/packetnt (Windows NT), /drivers/packet2k (Windows 2000) o /drivers/packet95 (Windows 9x). Despues de aceptar, hemos de reiniciar el sistema. Una vez instalado el driver ya podemos usar nmap tal como en linux, solo que ahora invocaremos nmapnt en vez de nmap >nmapnt [tipo de scan] [opciones] objetivo Por ahora carece de interfaz grfica y veremos la pantalla de MS DOS:

Pero es una gran cosa, para los usuarios windoleros, disfrutar de nmap sin necesidad de emplear una mquina linux. Hasta la prxima.

También podría gustarte