miércoles, abril 18, 2012

How to impress with FOCA, Connection Strings & Citrix

Me he permitido la osadía de tomarle prestado parte del título al paper que presentaron Alex Sotirov y Mark Dowd sobre cómo saltarse las protecciones de memoria en Windows Vista, para ilustrar la demo con la que quise terminar mi última charla en Troopers.

La gracia de la demostración final era que en esa conferencia había hablado hace dos años de Connection String Attacks, el año pasado de FOCA 2 y ese de Terminal Services y Citrix, y este ejemplo unía todo en una prueba bastante plástica. Este es el step by step.

Paso 1: EnFOCAndo la demo

La primer fase es algo bastante sencillo. Basta con lanzar FOCA sobre un dominio en el que entre los Juicy files aparezca un fichero de cadena de conexión de tipo UDL, como ya vimos en el artículo de Connection String Attacks.

Figura 1: Buscando un fichero UDL con password

Haciendo un poco de hacking con buscadores es posible encontrar fácilmente alguno con password, directamente, lo que nos lo pone todo mucho más sencillo.

Figura 2: La cadena de conexión en el fichero UDL. Copiamos la URL.

Paso 2: Buscando un EXCEL como plataforma base

La segunda parte consiste en buscar algún servidor en el que "tocando el piano" o haciendo jailbreak se pueda llegar a disponer de una aplicación EXCEL para realizar desde allí la demo. Así que se puede hacer algo de fingerprinting o encontrar los ficheros ICA con FOCA.

Figura 3: Un Excel en un servidor Citrix servido vía web

Paso 3: Encadenado el Excel a la base de datos

Una vez que tenemos la aplicación EXCEL en el servidor Citrix (o Terminal Services), el siguiente paso es crear una Conexión de Datos.

Figura 4: Añadir una conexión desde un documento EXCEL

Para hacerlo más chulo, bata con hacer uso del truco de "navegar sin navegador" y pegar la ruta copiada en el paso 1 del fichero UDL en el cuadro de diálogo de la creación de la conexión, concretamente en el nombre del fichero.

Figura 5: Pasándole la URL del fichero UDL al EXCEL

Una vez acabado tendremos la conexión creada.

Figura 6: Conexión entre Excel y la Base de Datos establecida

Paso 4: El truco final

Para terminar sólo hay que ir a las conexiones existentes para comprobar que estamos enlazamos y hacer doble clic sobre ella. Se selecciona la tabla que se desea volcar.

Figura 7: Selección de la tabla a volcar en Excel

Elegimos el formato de presentación:

Figura 8: Formato de la tabla a crear en Excel

Y EXCEL realizará el resto del trabajo volcando todos los datos en un bonito formato de hoja de cálculo.

Figura 9: Datos extraídos y bien formateados

[Applause]

Si todo ha ido bien, es el momento de pedir los aplausos al respetable, que seguro que agradece un buen truco de magia...

Figura 10: Magic happens...

Conclusiones

Esto es sólo una demo curiosa que permite, de forma cómoda, encadenar muchos trucos para explotar un fallo de seguridad. Lo cierto es que la gracia de este ataque está en que, como ya os publiqué en el artículo de Escaneando la red con Connection String y Excel, esto se puede hacer incluso con los servidores de la DMZ, lo que puede ser muy peligroso.

Saludos Malignos!

3 comentarios:

  1. Chema the sorcerer... yeah I have a clear picture in mind. Just the hat is different compared to a normal magician.

    Man it was great to have you here again. 3rd time in a row, right?

    Take care! Florian

    ResponderEliminar