**************************************************************************************************
- Hacking Remote Apps: Fingerprinting con Terminal Services & Citrix (1 de 4)
- Hacking Remote Apps: Fingerprinting con Terminal Services & Citrix (2 de 4)
- Hacking Remote Apps: Fingerprinting con Terminal Services & Citrix (3 de 4)
- Hacking Remote Apps: Fingerprinting con Terminal Services & Citrix (4 de 4)
Autores: Juan Garrido "Silverhack" y Chema Alonso
**************************************************************************************************
Hoy en día, los trabajadores en su mesa de trabajo con su equipo personal asociado a una roseta o un único equipo portátil están pasando a la historia. Los sistemas tienen a estar centralizados, lo que permite un mayor control por parte de los administradores, mayor movilidad para los usuarios y un ahorro de costes.
Debido a esto, los sistemas en la nube y la publicación de aplicaciones cada día tienen más impacto en las organizaciones, que están adoptando soluciones que van desde el uso de Servicios de Virtualización de Escritorio hasta la Virtualización de Aplicaciones, pasando, como no, por la publicación de las aplicaciones a través de Internet.
La adopción de este tipo de tecnologías, existe desde tiempo ha. En el pasado, y todavía siendo funcional en muchos entornos, se pueden publicar aplicaciones gráficas en sistemas X-Windows, que securizan la conexión tunelizando el tráfico través de conexiones SSH, por ejemplo. Otras soluciones para conectarse a clientes remotos con sistemas como VNC o escritorio remoto se han utilizado durante años por los técnicos para administrar sistemas y dar soporte.
Sin embargo, las soluciones de uso remoto de aplicaciones y sistemas hoy en día son parte de la línea base de aplicaciones de negocio de las empresas que tienen necesidades de:
• Publicar aplicaciones corporativas al exterior
• Ahorrar el coste de licencias para ciertas aplicaciones
• Dar soporte a partners y colaboraciones puntuales
• Ofertar servicios B2C a clientes externos
• Eliminar problemas de movilidad
Las dos principales soluciones empleadas para este tipo de servicios son las basadas en los Terminal Services de Microsoft y Citrix XenAPP o Metaframe. Cada una de ellas se basa en protocolos propietarios que ofrecen características, en algunos casos similares y en otros disitintos, a la hora de publicar algún tipo de aplicación o escritorio.
En esta serie de artículos, abordaremos los problemas de seguridad que se pueden encontrar con ellas, que van desde cómo utilizar los sistemas en las fases de footprinting y fingerprinting, cómo elevar privilegios en un sistema a través de aplicaciones inseguras publicadas y cómo ejecutar comandos en los sistemas a través de fallos de seguridad en la configuración de aplicaciones.
Citrix y el protocolo ICA
Idependent Computing Architecture (ICA) es propietario de Citrix y está diseñado principalmente para ser usado en servidores de aplicaciones heterogéneos que publican las mismas aplicaciones al mismo tiempo. Gracias a esta característica, soportada por ambos servicios hoy en día, logran eliminar el problema de la plataforma utilizada y hacerlos muy atractivos para las empresas.
La publicación de aplicaciones, en ambos productos, se puede realizar de distintas maneras, entre las que destacan las siguientes:
• Publicación de ficheros de conexión con los datos de la conexión
• Publicación a través de un Panel Web
• Publicación a través de ejecutables MSI
Ficheros de conexión a Citrix
Para la correcta conexión a una aplicación publicada a través de Citrix, se suele utilizar un fichero de conexión, en donde se encuentra toda la información necesaria para acceder a la aplicación publicada. Son ficheros en formato de texto plano y, en su interior, se puede encontrar información útil para un proceso de auditoría, como son usuarios, contraseñas, direcciones IP - algunas veces internas -, puertos de conexión, rutas de aplicaciones y protocolos de conexión.
Figura 1: Fichero de configuración ICA
En los ficheros de configuración de Citrix, que tiene extensión .ICA, destacan entre otros los siguientes campos:
- HttpBrowserAddress: Es la dirección del servidor Citrix. Se usa para el descubrimiento de aplicaciones que se publican vía HTTP. En este campo puede haber varios, si hay algún balanceador de carga por ejemplo.
- Address: Almacena la dirección IP o el nombre DNS del servidor de aplicaciones. Si se ha cambiado el puerto por defecto, que es el 1494, también irá configurado.
- InitialProgram: Es la aplicación publicada. La cadena de ejecución empieza con un carácter #
- AutologonAllowed: Indica si se permite el autologon. Es muy útil para ficheros de configuración en los que aparecen valores de User y Password en la cadena de conexión.
- SSLEnable: Habilitar SSL.
- EncryptionLevelSession: Nivel de cifrado a usar.
- Username: Usuario que se va a utilizar para identificarse en el servidor de aplicaciones.
- Password: La contraseña del usuario.
- Domain: Si existe algún dominio de autenticación irá configurado en este campo.
- PersistentCachePath: Especifica dónde se va a crear la caché persistente. Si existe este parámetro, se puede descubrir el usuario por defecto de la instalación de Citrix analizando esta ruta: Documents and settings\administrator, por ejemplo.
Con el ejemplo de la Figura 1, de un solo fichero ICA se puede obtener información de las direcciones IP, los puertos de publicación, que es un sistema Windows, con una versión de Oracle, el usuario del servidor web y el usuario y password de la conexión a Oracle.
Descubrimiento de ficheros ICA con BING y Google
Estos ficheros son fácilmente descubribles a partir de Google o Bing, utilizando sencillos dorks:
Figura 2: Búsqueda de ficheros con Goolge
Como se puede ver en la Figura 2, en Google se puede sacar partido del comando ext para buscar ficheros publicados con esa extensión, y luego filtrar por cualquier parámetro de interés.
En el caso de Bing, como ya vimos en artículo de Bing Hacking, no existe el modificador ext, pero este fichero es de tipo texto plano, así que se puede filtrar por tipo de fichero TXT y luego filtrar por los parámetros del fichero. La Figura 3 muestra un ejemplo con BING que detecta un gran número de ficheros ICA publicados.
Figura 3: Búsqueda de ficheros ICA descubiertos con BING
A partir de este momento, es fácil descubrir ficheros con datos específicos configurados en ellos.
**************************************************************************************************
- Hacking Remote Apps: Fingerprinting con Terminal Services & Citrix (1 de 4)
- Hacking Remote Apps: Fingerprinting con Terminal Services & Citrix (2 de 4)
- Hacking Remote Apps: Fingerprinting con Terminal Services & Citrix (3 de 4)
- Hacking Remote Apps: Fingerprinting con Terminal Services & Citrix (4 de 4)
**************************************************************************************************
- Hacking Remote Apps: Fingerprinting con Terminal Services & Citrix (1 de 4)
- Hacking Remote Apps: Fingerprinting con Terminal Services & Citrix (2 de 4)
- Hacking Remote Apps: Fingerprinting con Terminal Services & Citrix (3 de 4)
- Hacking Remote Apps: Fingerprinting con Terminal Services & Citrix (4 de 4)
Autores: Juan Garrido "Silverhack" y Chema Alonso
**************************************************************************************************
Hoy en día, los trabajadores en su mesa de trabajo con su equipo personal asociado a una roseta o un único equipo portátil están pasando a la historia. Los sistemas tienen a estar centralizados, lo que permite un mayor control por parte de los administradores, mayor movilidad para los usuarios y un ahorro de costes.
Debido a esto, los sistemas en la nube y la publicación de aplicaciones cada día tienen más impacto en las organizaciones, que están adoptando soluciones que van desde el uso de Servicios de Virtualización de Escritorio hasta la Virtualización de Aplicaciones, pasando, como no, por la publicación de las aplicaciones a través de Internet.
La adopción de este tipo de tecnologías, existe desde tiempo ha. En el pasado, y todavía siendo funcional en muchos entornos, se pueden publicar aplicaciones gráficas en sistemas X-Windows, que securizan la conexión tunelizando el tráfico través de conexiones SSH, por ejemplo. Otras soluciones para conectarse a clientes remotos con sistemas como VNC o escritorio remoto se han utilizado durante años por los técnicos para administrar sistemas y dar soporte.
Sin embargo, las soluciones de uso remoto de aplicaciones y sistemas hoy en día son parte de la línea base de aplicaciones de negocio de las empresas que tienen necesidades de:
• Publicar aplicaciones corporativas al exterior
• Ahorrar el coste de licencias para ciertas aplicaciones
• Dar soporte a partners y colaboraciones puntuales
• Ofertar servicios B2C a clientes externos
• Eliminar problemas de movilidad
Las dos principales soluciones empleadas para este tipo de servicios son las basadas en los Terminal Services de Microsoft y Citrix XenAPP o Metaframe. Cada una de ellas se basa en protocolos propietarios que ofrecen características, en algunos casos similares y en otros disitintos, a la hora de publicar algún tipo de aplicación o escritorio.
En esta serie de artículos, abordaremos los problemas de seguridad que se pueden encontrar con ellas, que van desde cómo utilizar los sistemas en las fases de footprinting y fingerprinting, cómo elevar privilegios en un sistema a través de aplicaciones inseguras publicadas y cómo ejecutar comandos en los sistemas a través de fallos de seguridad en la configuración de aplicaciones.
Citrix y el protocolo ICA
Idependent Computing Architecture (ICA) es propietario de Citrix y está diseñado principalmente para ser usado en servidores de aplicaciones heterogéneos que publican las mismas aplicaciones al mismo tiempo. Gracias a esta característica, soportada por ambos servicios hoy en día, logran eliminar el problema de la plataforma utilizada y hacerlos muy atractivos para las empresas.
La publicación de aplicaciones, en ambos productos, se puede realizar de distintas maneras, entre las que destacan las siguientes:
• Publicación de ficheros de conexión con los datos de la conexión
• Publicación a través de un Panel Web
• Publicación a través de ejecutables MSI
Ficheros de conexión a Citrix
Para la correcta conexión a una aplicación publicada a través de Citrix, se suele utilizar un fichero de conexión, en donde se encuentra toda la información necesaria para acceder a la aplicación publicada. Son ficheros en formato de texto plano y, en su interior, se puede encontrar información útil para un proceso de auditoría, como son usuarios, contraseñas, direcciones IP - algunas veces internas -, puertos de conexión, rutas de aplicaciones y protocolos de conexión.
Figura 1: Fichero de configuración ICA
En los ficheros de configuración de Citrix, que tiene extensión .ICA, destacan entre otros los siguientes campos:
- HttpBrowserAddress: Es la dirección del servidor Citrix. Se usa para el descubrimiento de aplicaciones que se publican vía HTTP. En este campo puede haber varios, si hay algún balanceador de carga por ejemplo.
- Address: Almacena la dirección IP o el nombre DNS del servidor de aplicaciones. Si se ha cambiado el puerto por defecto, que es el 1494, también irá configurado.
- InitialProgram: Es la aplicación publicada. La cadena de ejecución empieza con un carácter #
- AutologonAllowed: Indica si se permite el autologon. Es muy útil para ficheros de configuración en los que aparecen valores de User y Password en la cadena de conexión.
- SSLEnable: Habilitar SSL.
- EncryptionLevelSession: Nivel de cifrado a usar.
- Username: Usuario que se va a utilizar para identificarse en el servidor de aplicaciones.
- Password: La contraseña del usuario.
- Domain: Si existe algún dominio de autenticación irá configurado en este campo.
- PersistentCachePath: Especifica dónde se va a crear la caché persistente. Si existe este parámetro, se puede descubrir el usuario por defecto de la instalación de Citrix analizando esta ruta: Documents and settings\administrator, por ejemplo.
Con el ejemplo de la Figura 1, de un solo fichero ICA se puede obtener información de las direcciones IP, los puertos de publicación, que es un sistema Windows, con una versión de Oracle, el usuario del servidor web y el usuario y password de la conexión a Oracle.
Descubrimiento de ficheros ICA con BING y Google
Estos ficheros son fácilmente descubribles a partir de Google o Bing, utilizando sencillos dorks:
Figura 2: Búsqueda de ficheros con Goolge
Como se puede ver en la Figura 2, en Google se puede sacar partido del comando ext para buscar ficheros publicados con esa extensión, y luego filtrar por cualquier parámetro de interés.
En el caso de Bing, como ya vimos en artículo de Bing Hacking, no existe el modificador ext, pero este fichero es de tipo texto plano, así que se puede filtrar por tipo de fichero TXT y luego filtrar por los parámetros del fichero. La Figura 3 muestra un ejemplo con BING que detecta un gran número de ficheros ICA publicados.
Figura 3: Búsqueda de ficheros ICA descubiertos con BING
A partir de este momento, es fácil descubrir ficheros con datos específicos configurados en ellos.
**************************************************************************************************
- Hacking Remote Apps: Fingerprinting con Terminal Services & Citrix (1 de 4)
- Hacking Remote Apps: Fingerprinting con Terminal Services & Citrix (2 de 4)
- Hacking Remote Apps: Fingerprinting con Terminal Services & Citrix (3 de 4)
- Hacking Remote Apps: Fingerprinting con Terminal Services & Citrix (4 de 4)
**************************************************************************************************
Pinta muy chula esta serie!! :-)
ResponderEliminarMe ha recordado a este par de posts, que me encantaron en su momento:
http://www.gnucitizen.org/blog/remote-desktop-command-fixation-attacks/
http://www.gnucitizen.org/blog/citrix-owning-the-legitimate-backdoor/
Saludos!!
La verdad que queda un mundo por descubrir,gracias chema.
ResponderEliminardainita: hola muchachos , hace poco me sacaron de una empresa de forma injusta y un primo me paso un poconon de cosas pero la verdad yo no entinedo nada de esto y quisiera hacerles algo por sacarme asi pero como les digo no tengo ni idea , esto fue lo que me paso mi primo:
ResponderEliminarme dijo que me descargara este programa:
http://help.mysonicwall.com/Applications/vpnclient/
y que lo instalara y que le configurara esto : 201.244.5.130 y que le colocara usuario :sgrodriguez y clave : Temporal16 y contraseña de seguridad para esta conexión: “SharedSecret”
pero no lo pude ni instalar y me volvi un ocho
ademas le pedi ayuda a el pero me dijo que el no se queria meter en problems que el me daba eso si me servia bien o si no pues que mirara que hiciera
a y me dio estos numeros me dijo que eran de unos serviodres o pcs el me escribio algo asi (sql serber, mysql , apahe) yo no se jejjeje
192.168.40.5 , 192.168.40.207, 192.168.40.13, 192.168.174.28 , 192.168.174.29
ay les dejo yo no se el me dijo que buscara un foro o un blog a ver si me ayudaban , si quieren me agregan la msn y me enseñan jijijiji porque no entinedo nada de esos numeritos jijijij
muy interesante.. mas porque tengo trabajos de investigacion sobre diferentes protocolos en la uni..
ResponderEliminarHacking y Olé by the Face!!
ResponderEliminarhttp://hackingyolebythefacejaja.blogspot.com/?zx=a162b06fd1abf073
Bueno,pásate por aquí y veremos que podemos hacer desde el ethical hacking...
ResponderEliminarLarga vida a los hack ya que todo se puede investigando y perdiendo el tiempo tratando de superar los obstaculos
ResponderEliminar