2 ago 2012

Combinando ataques: XSS + Metasploit

En esta oportunidad voy a demostrar y comprobar que tan grave puede ser una vulnerabilidad de tipo Cross Site Scripting No Persistente (XSS).

Para entrar en tema vamos a hacer un breve repaso por las cuestiones técnicas de dicho fallo de diseño:

XSS es una vulnerabilidad Web que surge del incorrecto saneamiento de parámetros de entrada, mediante el cual puede inyectarse código de script en el cliente.

Ejemplo de código php vulnerable:


De esta forma podríamos aprovecharnos haciendo una molificación en los parámetros de la siguiente forma:





En código PHP, podríamos evitar estos dolores de cabeza haciendo un correcto saneamiento con las funciones “urlencode”, “htmlentities” y “addslashes”.

El objetivo de este articulo NO es hacer un tutorial explicativo sobre el fallo, sino ampliar las fronteras del alcance e impacto para que se tenga en consideración la gravedad de los hechos.

Si bien es cierto que seria demasiado conseguir las cookies de la víctima, porque no explorar mas allá de lo ya bien conocido y combinamos técnicas para lograr acceso a su equipo en vez de quedarnos con su información ?!

Podríamos utilizar la URL como vector de ataque y contaríamos con la ventaja de que el dominio ya cuenta con su reputación propia, por lo cual, nadie desconfiaría a la hora de darle “Click”. Dentro del URIPATH podríamos agregar un <script> para hacer una redireccion a nuestro sitio malicioso.


Comenzamos cargando en metasploit un  ClientSide, en este caso:


Proporcionamos los datos de conflagración necesarios.



Una vez preparado el servidor atacante, se prepara el URI para enviar a la víctima. Se puede hacer una codificación del URIPATH para evitar una lectura sencilla que advierta la redireccion, para esto se puede utilizar un URLENCODER.


El link puede ser enviado por cualquier medio: mail, msn, redes sociales, etc. En este caso agregamos un “Alert” para mostrar la redirección en proceso:



Entre tanto, del lado del servidor pasa lo siguiente:



Y como vemos en el screenshot se ha creado una nueva sesión de meterpreter, lo cual significa que conseguimos Acceso y control total del equipo víctima utilizando como vector de ataque un simple XSS No persistente.

Del lado de la víctima en este caso estaría viendo lo siguiente:



Para finalizar vamos a crear un directorio en el escritorio de la víctima desde la consola de meterpreter con un clásico PWNED:





Y de esta forma queda demostrada la GRAVEDAD de un simple XSS no persistente. Quizas no es tan grave para la integridad del sitio vulnerable, pero si lo es para los clientes/usuarios que visitan la pagina en cuestión. La credibilidad de una empresa puede decaer considerablemente si se llegase a utilizar su dominio como medio de infección.

Source ~ Mkit