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

Metodologia Hacker

      3651

Autor: Madfran
-[ 0x0A ]--------------------------------------------------------------------
-[ Metodologia Hacker ]------------------------------------------------------
-[ by Madfran ]-------------------------------------------------------SET-25-



METODOLOGIA HACKER

 La mayor parte de vosotros, os habeis metido en estas lides de 
hackers/crackers/..... pensando que era muy bonito y divertido.
Que aqui, con cuatro golpes de raton se llegaban a descubrir los mas
insondables secretos, estos secretos que las innobles multinacionales y
todopoderosos gobiernos nos ocultan. 
  La cruda realidad es muy distinta (como siempre). Ser hacker solo supone 
estudio, horas delante de un estupido monitor (que parpadea y te da dolor 
de cabeza),....mas estudio, pruebas (con pocos resultados),.....mas estudio 
y ....un poco de metodologia.

 Este articulo pretende solamente dar una pincelada de los pasos que debiera
dar cualquiera que pretende enterarse que pasa en el ordenador del vecino.

 Para amenizar el tocho, pondre de vez en cuando, alguna direccion que me
ha sido util en algun momento, pero que quede claro de entrada, que no es
el objetivo de este articulo ni dar direcciones extraordinarias, ni
procedimientos alambicados.


PRIMER PASO (Huellas digitales)
*******************************

 Aunque parezca una perogrullada, hay gente que se olvida que lo primero
que hay que hacer es buscar la informacion publica que graciosamente os
suministra la sociedad que se encuentra a vuestro alrededor. Esto se parece
mucho a una busqueda policiaca (en lo aburrido y sistematico), cualquier
cosa puede ser util, desde un anuncio en los periodicos hasta el comentario
de un amigo o enemigo.

 De todas formas en la red existen mecanismos y bases de datos que nos daran
con muy poco esfuerzo una gran cantidad de informacion basica. Estoy hablando
de las bases de datos de registros de los dominios. Ahi podeis encontrar los
nombre de los representantes de las sociedades u organizaciones por cuyas
webs os pensais pasear y cuyos archivos teneis la intencion de leer a 
escondidas. Podeis leer sus numeros de telefonos, sus direcciones, donde
se alojan sus webs y por donde andan sus proxys.

 La forma de acceder a esta informacion es simplemente publica mediante
el cliente whois (version standard para linux o bien empleando soft
de terceros, como http://www.pc-help.org/trace/, para wins que no disponen
de estos clientes).

 Otra forma de obtener la misma informacion es via web. Unas direcciones 
utiles pueden ser :

- www.networksolutions.com
- www.arin.net
- www.ripe.net
etc...

Tened en cuenta que ya no existe un unico ente dedicado al registro de 
dominios en internet y por tanto para estar seguros de que la informacion que
obteneis es fiable deberiais consultar antes a whois.crsnic.net para obtener
una lista de todos los servidores potenciales.

 Para los muy, muy, muy vagos os podias pasar por :

- www.samspade.org   Buen cliente windows, que hace esto y mas.
- www.oxygene.500mhz.net Si trabajais desde unix.

Otros OS,....lo siento, buscaros la vida, pero seguro que deben haber bichos
similares para todos los Sistemas Operativos del mundo.


SEGUNDO PASO (Noble arte de scaneo de puertos y deteccion de OS)
****************************************************************

 Una vez identificada la maquina o grupos de maquinas objetivos, pasaremos
a escanear los puertos que se encuentran abiertos. Seria el equivalente a
buscar las puertas y ventanas, identificando si se encuentran cerradas o 
abiertas y sus niveles de seguridad. Para poner un ejemplo grafico/numerico,
si quereis saber que hay en www.tonto.net, primero debeis buscar su
direccion IP (para eso os ha servido toda la busqueda del primer paso)
y despues si tiene abiertos los puertos :

 21  ftp-data
 23  telnet
 79  finger (...de esos ya no hay!)
 80  http

... y un largo etcetera.

Para realizar estas 'proezas' tenemos diversos clientes en funcion del OS
desde donde ataquemos.

UNIX
Strobe  ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/strobe-1.06.tgz
        Rapido pero anticuado y solo valido para puertos TCP
nmap    www.insecure.org
        Probablemente el mejor. Puede hacer scaneo de puertos UDP

WINDOWS
SuperScan http://members.home.com/rkeir/software.html
          Puertos TCP
WUPS      http://ntsecurity.nu
          Puertos UDP

A tener en cuenta que en este momento empezamos a realizar actividades para
las cuales, teoricamente, debemos solicitar permiso. En algunos paises de 
este planeta, esta actividad puede ser denunciada y perseguida judicialmente.
(tenia que advertirlo ! )

Aprovecharemos esta operacion para establecer el OS al cual nos estamos
dirigiendo. Esto puede ser muy facil si disponemos del nmap y este es capaz
de identificarlo positivamente, o un poco mas dificil si solo nos apoyamos en
nuestra intuicion, pero es fundamental antes de pasar a la siguiente seccion.



TERCER PASO (Cuentas, recursos compartidos y otras lindezas)
************************************************************

 A continuacion debemos averiguar que recursos, amablemente, el servidor en
cuestion esta dispuesto a compartir con nosotros y quienes realmente tienen 
derecho a disponer de ellos. Hasta aqui, las diferencias solo se establecian 
en funcion de la maquina atacante, pero ahora es fundamental la informacion
conseguida en el paso numero dos. 
Que Sistema Operativo esta soportando el servidor que tanto nos interesa ?. 
Porque no es lo mismo enfrentarse a un Novell 4.0, que a un Windows NT o a 
un RH Linux 6.0, por poner solo uno de los miles de posibilidades que se nos 
pueden presentar entre OS y sabores. 
 Vamos a hacer tres grandes grupos y los vamos a estudiar por separado :

 Familia Windows NT/2000

El punto debil de estos OS, estan en los protocolos CIFS/SMB (Common Internet 
File Server/Server Message Block) y NetBIOS, y en su configuracion defectuosa.
Si estos protocolos estan activos, cosa que se puede ver si hay algun demonio
escuchando entre los puertos 135 y 139, podemos obtener todos los recursos
que se comparten (impresoras, discos, directorios,...) y los nombres de los
usuarios validos para estas maquinas.

Para obtener toda esta informacion podemos basarnos en el software que se 
encuentra en el CD-ROM que te vende Microsoft por 50$ (...si, Microsoft vende
los programas necesarios para hackear sus OS como rpcdump), dentro del
Windos NT Resource Kit, o bien utilizar software libre como el 

NAT    www.hackingexposed.com

Otros puntos debiles de estos sistemas es la existencia de servicios SNMP
(Simple Network Management Protocol) mal configurados o implementacion del
registro de NT, mal configurado con la posibilidad de lectura de la SAM a
distancia, con la posterior utilizacion de software tipo l0pht (www.l0pht.com),
para crackear las claves de confiados usuarios.

 Familia NOVELL

Los servidores Netware 3.x y 4.x, tienen los mismos problemas pero aqui
ni siquiera hace falta comprarse ningun CD-ROM. Los clientes standard para
estos OS, dan toda la informacion necesaria acerca de cuentas validas y
servicios disponibles. Dichos clientes os los podeis bajar de la propia
pagina de novell (www.novell.com)

 Familia UNIX

Aqui la variedad es nucho mayor, dada la contidad de sabores que existen de
esta familia de OS. Sin embargo no existen utilidades, digamos..standard
para esta actividad. El unico servicio que existia para saber quienes
tienen derecho a conectarse, es el finger (recordad, puerto 79), pero
hace mucho tiempo que los administradores de red se dieron cuenta de 
la peligrosidad de este servicio y normalmente esta desactivado.

Lo que nos queda son las viejas herramientas de conectarse con un cliente
telnet a diversos puertos que antes hemos visto abiertos y leer atentamente
los mensajes que nos salen. Esto nos puede permitir leer alguna direccion 
de correo o alguna publicidad que tontamente nos advierte que el demonio
que emplean tiene la conocida  vulnerabilidad numero tropocientas.

Hay utilidades (como samspade) que nos permiten chequear todos los archivos
en un servidor y busquen secuencias de caracteres escondidas en las paginas.
Busquedas por "hiden" o "password", nos pueden dar alguna alegria.



CUARTO PASO (Nuestra primera entrada)
*************************************

De nuevo la forma de entrar en un sistema difiere mucho en funcion del 
objetivo que nos proponemos pero las tecnicas son bastante genericas.

Voy a sentir deciros que la forma mas normal de entrar en una cuenta banal
es simplemente adivinando la password. Parece tonto pero si conseguimos
una lista de ususarios validos, lo mejor es ir probando con los nombres
mas cortos y comprobar que el vago de turno no ha puesto como password su
propia identificacion de usuario.
Adivinar passwords funciona sobre todo si has hecho los deberes y dispones
de algun tipo de estudio sobre cuales son los passwords que deberias atacar
primero (como el estudio que os ofrecemos en este numero por ejemplo)

Otro sistema que acostumbra a funcionar es el nombre de la compa~ia que
ofrece el servicio de correo. Para que no me maldigais demsiado os puedo
ofrecer la direcion www.securityparadigm.com/defaultpw.htm donde la ultima 
vez que pase, habia un listado de las passwords mas comunes.

Si te cansas de teclear, el proceso se puede automatizar mediante un
sencillo script.

Teneis que tener en cuenta que el administrador (si no es totalmente tonto)
habra puesto algun sistema para detectar y avisarle si alguien esta 
intentando entrar en la cuenta de un usuario de forma reiterada y sin exito.


 Familia Windows NT/2000

Aqui lo mas facil, si estas en el mismo segmento de red del objetivo, es
utilizar la ultima version de l0phtcrack, que es capaz de leer las hash de 
las password si alguien las ha tecleado cerca de ti.
Dicha version, tiene una vida limitada de 15 dias, pero si no recuerdo mal
en algun numero de SET se explicaba como romper esta limitacion.


 Familia NOVELL

Este sistema tiene una particularidad. Cuando haces una conexion, se
establece un 'attachment' anonimo y a partir de ahi podemos disponer con 
facilidad de una lista actual de todos los servicios y usuarios actuales.
En el punto anterior ya he dicho donde buscar las herramientas para hacer
todo esto.

A partir de ahi existe una utilidad que funciona bajo NetWare 3.x y 4.x,
se llama chknull y hace precisamente esto...buscar usuarios cretinos que
tienen passwords nulos.....existen !

Para profundizar sobre el tema, os tendreis que releer algunos SETs viejos
donde se escribio largo y tendido sobre NetWare 3.x

 Familia UNIX

Aparte del poco atractivo sistema de la fuerza bruta y adivinanza, en 
esta familia se encuentran muy extendidas las tecnicas que hacen uso de
fallos en demonios (Buffer Overflow) y programas que no validan 
correctamente los datos que introduce el usuario (malvado el...), en
este ultimo caso han sido muy famosas las meteduras de pata en PHP  y
en docenas de scripts en perl y cgis que permiten que mediante la 
introduccion de un caracter especial (/ \ < > ,....) en lugar de validarse
una password se ejecute un cat sobre el fichero passwd.

Otra caracteristica de estos sistemas es la presencia del sistema X, que
pueden presentar vulnerabilidades asociadas a fallos en PHF.

En fin,...en general mediante el scaneo hecho anteriormente, vemos que
servicios y demonios corren en el sistema, que version han elegido y
buscamos en los archivos de bugtraq (www.securityfocus.com) cual es el 
fallo descubierto y publicado sobre dicho demonio.



QUINTO PASO (Escalando puestos y privilegios)
*********************************************

 Familia Windows NT/2000

En cualquier sistema sino eres administrador, no eres nadie y en windows
esta verdad es mas cierta que en ningun otro sitio.

Si consigues entrar en un sistema como usuario normal, no es que tengas 
muchas posibilidades, pero entre ellas la primera es buscar entre la 
basura, o sea los directorios compartidos y buscar con utilidades como
FIND o similares, ficheros donde se encuentren cadenas de caracteres como
"password", "pass", "usuario", "user",...en fin, lo que se te ocurra.
No es la primera vez que un super utiliza la misma password del sistema
principal para un acceso secundario o peor todavia, se deja un fichero
por ahi con una lista de sus passwords validas.

Hay algunas utilidades ya compiladas, que pueden funcionar o no en 
funcion del fixpack que tenga el sistema atacado. Podeis buscar en la
red por "getadmin", "crash4" o "sechole"

De todas formas, siempre en un Win NT, el objetivo es buscar el contenido
del fichero SAM (Security Accounts Manager), donde se encuentra los nombres
y las hash de las passwords de todos los usuarios validos en dicha maquina.
Si conseguis una copia de dicho fichero o de su forma comprimida SAM._ 
teneis casi asegurada la entrada al sistema. Dada la debilidad con que
Microsoft ha configurado el esquema de proteccion (en realidad una password
de win NT no es mas que dos paswords de siete caracteres de longitud), si
consigues la SAM, no tienes mas que volver a cargar el L0PHTCRACK y 
tranquilamente esperar a que por fuerza bruta o por diccionario caiga el 
regalito.


 Familia NOVELL

Para acceder al preciado don de ser un Admin, tienes alguna posibilidad,
si la administracion de la maquina es realmente deplorable, mediante el 
programita Nwpcrack. Lo que hace este, es intentar un ataque en vivo y en
directo mediante un diccionario. Evidentemente, solo funciona si se
permite que existan login fallidos de forma indefinida. Cada vez hay menos
sistema que permitan esta tonteria.

En fin, buscad en www.nmrc.org y encontrareis algunas utilidades que os
pueden servir para establecer lineas de trabajo


 Familia UNIX

Aqui el ataque predilecto para ganar puntos es encontrar un problema de
mala configuracion del sistema, normalmente un fichero SUIDado, o sea
que se ejecuta con privilegios de root. Puedes hacer la busqueda de estas
joyas a pelo, pero lo mejor es lanzar un find.

fin / -type f -perm -0400 -ls

A partir del listado que obtengas, empieza a buscar programitas complicados
y con larga tradicion de bugs y otras hierbas.

Tambien podeis buscar en www.bastille-linux.org donde en realidad hay
ideas y programas para defenderse de este tipo de ataques,....pero a
todo se le puede dar la vuelta. :)



SEXTO PASO (Saqueando lo que se pueda y creando puertas traseras)
*****************************************************************

Una vez has conseguido entrar como Administrador, no esperes que la dicha
dure eternamente. Cada cierto tiempo las passwords se cambian y entonces 
estaras como al principio o casi. Tienes que rapidamente hacerte 
independiente de lo que le pase por la cabeza a otra persona.

En todos los sistemas las tecnicas a emplear siguen la misma logica :

- Crearse una cuenta particular con maximos privilegios.
- Instalar un sniffer
- Instalar un back door
- Instalar un rootkit

Realmente solo los dos ultimos tienen mas probabilidades de no ser 
descubierto nunca, aunque esto puede variar de un sistema a otro.


 Familia Windows NT/2000

Para crearse una cuenta de administracion si has entrado como tal, no es
demasiado dificil, busca una utilidad llamada usrmgr.exe en el mismo
servidor donde has entrado y te puedes crear una cuenta para ti. Lo malo
es que rapidamente el verdadero administrador se dara cuenta de que sobra 
alguien en dicho selecto grupo y procedera a desactivar la cuenta y ...a
buscar al responsable del desaguisado. No es una solucion muy practica.

Instalarse un sniffer que por ejemplo recoja todo lo que se pulse en el
teclado atacado, es mucho mas silencioso. Me parece que en
www.amenisco.com/iksnt.htm habia una utilidad que servia para esto.

Hay otros sniffers que estan disenyados para capturar solo password. Si
quereis evitar el veros desbordados de basura, el Dsniff de Dug Song, es
una buena alternativa.

Si lo que quereis es instalalr una puerta trasera, para mi el rey es netcat.
Peque~o, configurable, no detectado por los antivirus,..es una joya. Se
puede encontrar en la web de l0pht (la version para windows).

Lo ultimo de lo ultimo es instalarse un rootkit, o sea modificar una
parte del SO para que se ejecute algo que no es realmente lo deseado por
el administrador del sistema. Como os veo muy lanzados, vosotros mismos
os armais con el winice y crackeais una dll del windows,.....veo que se
os ha puesto cara de pez ! ...tambien podeis buscar algo en www.rootkit.com
(cortesia de Greg Hoglund)


 Familia NOVELL

Aqui hay una peque~a peculiaridad.....el rconsole.
Esta es una utilidad standard que permite la administracion remota del 
servidor. Si consigues esta password (normalmente la del Admin es valida,
tienes todos los accesos posibles, archivos bindery (3.x), archivos NDS (4.x)
y un largo etcetera.


 Familia UNIX

Lo primero en unix es hacerse con los ficheros passwd y shadow, con ellos,
el John The Ripper y un poco de paciencia os haceis con todas las cuentas
entre ellas las que tienen derechos de root. Siempre es mejor tener mas de
una, ya que es raro que el cambio de passwords este sincronizado y sea
simultaneo para todos los roots.

Todo es cuestion de gustos, pero la version original de netcat es una
maravilla para abrir puertos que queden escuchando en espera de que tu 
aparezcas. Me parece que ya di la direccion antes.

Si lo que os apasiona es escuchar todo lo que pasa por vuestra red, nada
como un buen sniffer (Dsniff de http://www.monkey.org/~dugsong/)



SEPTIMO PASO (Destruyendo pruebas y borrando huellas)
*****************************************************

Muy bien !. Habeis entrado, teneis todas las passwords, una cuenta de
administrador e instalado un backdoor, .... magnifico !
Lastima que se hayan dado cuenta, examinado el log del sistema, comprobado
la IP de vuestra maquina y llamado a la policia (...el timbre que ahora esta
sonando en vuestra puerta,....no abrais ! ...es la policia !).

Para evitar todos estos desagradables eventos lo mejor es pasar una trapito
para borrar las huellas o el equivalente en los ordenadores, borrar los
logs comprometedores.

 Familia Windows NT/2000

Si lanzais el Event Viewer podreis borrar todo el log, aunque esto es un 
poco aparatoso ! Lo mejor es utilizar alguna herramienta especializada
como por ejemplo  elsave de Jesper Lauritsen.

 Familia NOVELL

La particularidad de NOVELL reside otra vez en el rconsole. A traves de
el y mediante algunos simples comandos, unload conlog y load conlog, puedes
evitar que se registre lo que hagas. Para cambiar los atributos de los
archivos que hayamos retocado, se utiliza, normalmente una aplicacion
llamada filer.

 Familia UNIX

Lo normal en UNIX y similares es que los logs se encuentren en /var/log/
pero si os quereis asegurar mirais que diablos hay en /etc/syslog.conf
y podreis descubrir donde y de que manera estan almacenando las entradas
y salidas al sistema.

Todo esto no es una verdad universal, cada SO tiene sus manias y encima
no todos los logs son modificables mediante un editor de texto vulgar
y corriente. Como toda la informacion dada en este articulo, solo es un
punto de partida para despertar vuestra curiosidad.



CONCLUSION
**********

Acabo como empiezo. Siento mucho informaros que esto de hackear no es nada
divertido, o dicho de otro forma, es divertido solo al final cuando tienes 
la satisfaccion de entrar donde otros se han dado de cabeza contra la pared.

De todas formas, antes de entrar, pensar ya en como salir sin dejar huellas.
Lo que no es divertido en absoluto es acabar en la carcel o quedarse sin
trabajo (aunque este sea una mierda, tiene la ventaja se que se cobra a 
final de mes.....todos los meses ! ).
       

madfran


 *EOF*