miércoles, 19 de septiembre de 2018

Explotando un "crossdomain.xml".

¿Qué tal a todos?

El día de hoy les voy a mostrar como explotar una mala configuración del archivo "crossdomain.xml", pero antes es necesario comentarles que el uso o acciones realizadas referentes a la información que se encuentra en este sitio es tu responsabilidad. El mal uso de la información que este sitio contiene puede resultar en cargos legales, de los cuales el autor de este "Blog" no tiene responsabilidad alguna por las acciones realizadas por los lectores.

Sin más rodeos comencemos!...

¿Qué es el archivo "crossdomain.xml"?
Es un archivo en formato XML, en el cual se define la política "Cross-Domain", lo que permite a clientes Web manejar recursos entre diferentes dominios, en otras palabras tengo dos servidores Web (los llamaremos "servidor A" y "servidor B"), en el "servidor A" tenemos un archivo flash que solicitará información del "servidor B" para mostrar dentro de la aplicación Web del "Servidor A", de no existir la política "Cross-Domain" en el "Servidor B", nuestro archivo flash no podrá obtener la información solicitada, por lo tanto, no se podrá mostrar ningún dato del "Servidor B" en el "Servidor A".

¿Cómo identifico un archivo de "crossdomain.xml" mal configurado?
Muy sencillo, antes que nada debes localizar el archivo "crossdomain.xml" en el servidor victima (por lo regular lo encuentras en el "path" raíz ej: "https://www.misitiovulnerable.com/crossdomain.xml") y éste debe estar configurado de tal manera que permita el acceso de cualquier dominio, esto se especifica con el simbolo "*", así como en la siguiente imagen:


Requerimientos:
Ahora requieres de un ambiente de pruebas, en donde yo te recomiendo descargar lo siguiente:

1) VMWare Player (ahora Workstation Player), de no ser así, puedes utilizar VirtualBox para hostear tus maquinas virtuales.

2) La maquina victima, en este caso, utilizaremos bWAPP (cuenta con más vulnerabilidades que te serán de utilidad par aprender y jugar un poco).

3) La maquina atacante, en este caso, debe ser un sistema Linux, por lo que yo les recomiendo utilizar "MagueyATF", un agradable Sistema Operativo con herramientas necesarias para hacer pruebas de seguridad a todo tipo de aplicativos (pueden descargar Kali, Backbox, ParrotOS).

4) Un Servidor Web, en donde recomiendo un Ubuntu Server, sólo es necesario que tu sistema operativo cuente con las instalaciones del servidor Web "Apache" y de "PHP" para llevar a cabo está PoC.

5) El Framework que nos hará el día y que contiene todo lo necesario para explotar al vulnerabilidad de "Cross-Domain", desarrollado por  Seth Art aka "SethSec".

Instalación:
Asumiendo que ya tienes tu ambiente virtual corriendo de maravilla y configurado (no olvides poner en modo puente las tarjetas de red de tus maquinas virtuales, te quitará unos cuantos dolores de cabeza), comencemos con la instalación del Framework en nuestro equipo atacante, lo cual se realizará de la siguiente manera.

1) En una terminal ejecute las siguientes instrucciones:
  • git clone https://github.com/sethsec/crossdomain-exploitation-framework.git
  • cd  crossdomain-exploitation-framework
  • ./SWF-server 
Esto debe ser suficiente para realizar la instalación del Framework en nuestro equipo.

Explotación:


1) Continuamos con la modificación de nuestro "ActionScript" para generar nuestro archivo "SWF", el cual se encargara de explotar la política del "Cross-Domain", para ello, necesitamos realizar las siguientes acciones.

  • Ingrese a la carpeta "actionscript-templates" y con un editor de texto abra el archivo "StealData.as".
  • Introduzca las direcciones URL del servidor vulnerable y del servidor que utilizara para almacenar nuestro archivo "SWF",  tal como en la imagen que adjunto:



3) En una terminal, introduzca la siguiente instrucción (tienes que estar en el path "crossdomain-exploitation-framework"):
  • /opt/flex/bin/mxmlc ./actionscript-templates/StealData.as --output ./webroot/exploit.swf
4) Copie el archivo "exploit.swf" (que se encuentra en la carpeta "crossdomain-exploitation-framework/webroot") al servidor  Web que se utilizará para recolectar información (recomiendo pegarlo en la raíz, ejemplo: /var/www/html/).


5) Cree los siguientes dos archivos, "test.html" y "collector.php" en el servidor Web.

test.html




collector.php




6) Inicia sesión en la aplicación "bWAPP" desde el equipo atacante, en otra pestaña del navegador ingresa la dirección URL del servidor Web que ordenara la ejecución del archivo "SWF", en este caso será el archivo "test.html".

7) Finalmente, observe el contenido del archivo "thanks_for_sharing.txt" dentro del servidor Web, el cual muestra la información obtenida del sitio victima.


Cabe mencionar, que con este fallo de seguridad, puedes traerte toda la vista presentada del usuario en sesión sobre el servidor vulnerable...

Saludos.
Autor: 1nf4mousmx. 

Referencias
https://www.adobe.com/devnet/adobe-media-server/articles/cross-domain-xml-for-streaming.html
https://github.com/sethsec/crossdomain-exploitation-framework
https://sethsec.blogspot.com/p/about.html (Para hacer honor a quien honor merece, les dejo un poco de información del desarrollador de tan magnifico Framework, ya que sin su trabajo no hubiera sido posible realizar esta PoC).

2 comentarios:

  1. Gran informacion, donde te puedo conocer, me gustaria aprender mas. Soy de Sonora.

    ResponderEliminar
  2. No me funciona. El collector.php y el test.php hay que colocarlo en la web que visita la victima?

    ResponderEliminar

¿Cómo identificar un SQL Injection? ¿Es vulnerable el parámetro?

¡Hola a todos! nuevamente tras mucho tiempo desaparecido dadas algunas aventuras en el lado obscuro de la seguridad informática (así es... e...