miércoles, septiembre 21, 2011

Hacking Remote Apps: Jailbreaking (1 de 3)

**************************************************************************************************
Hacking Remote Apps: Jailbreaking (1 de 3)
Hacking Remote Apps: Jailbreaking (2 de 3)
- Hacking Remote Apps: Jailbreaking (3 de 3)
Autores: Chema Alonso y Juan Garrido "Silverhack"
**************************************************************************************************

Caminos al servidor

Una vez que se conocen todas las aplicaciones publicadas en un servidor Citrix o Terminal Services, cada una de ellas se convierte en un posible camino para llegar al sistema operativo del servidor en el que están ejecutándose lo que las convierte en un camino que permita acceder a información sensible.

Cuando el administrador del sistema decide publicar Excel, o una aplicación a medida en un servidor Citrix o Terminal Services, está dejando que un usuario remoto ejecute código dentro de su servidor. Ese código que forma una aplicación en Windows está haciendo uso de las API y los componentes del sistema operativo, y por tanto está íntimamente ligado al sistema operativo del servidor.

Cualquier conexión que la aplicación realiza con el sistema operativo que no esté controlada por el administrador puede suponer un serio dolor de cabeza para la seguridad del sistema. Un simple cuadro de diálogo de abrir archivo se puede convertir en el punto por el que un atacante consigue un explorador de archivos para ver los datos de otros usuarios, o la forma de ejecutar una consola PowerShell en el equipo que le permita vagabundear por los archivos de configuración de otras aplicaciones que se sirvan desde ese equipo, o incluso de los recursos compartidos de red accesibles desde esa máquina.

Figura 1: Creación de un shortcut a CMD.EXE desde el cuadro de diálogo de Abrir fichero en una aplicación Citrix. Con la opción del botón derecho "Abrir" sobre el shortcut se puede conseguir luego el acceso a la consola.

Es por eso que, antes de ponerse una aplicación en un Citrix o un Terminal Services debería pasar por una auditoría de seguridad, algo que, por desgracia, todavía no ha sido tomado en serio por muchas empresas. Así, mientras realizan test de intrusión periódicos a aplicaciones web, las herramientas publicadas por servicios de terminal quedan al margen de estos, lo que hace fácil que queden caminos por los que se pueda producir una fuga.

La jaula y el jailbreak

La misión del administrador, por tanto, es conseguir construir una jaula para la aplicación. Una configuración de seguridad de la aplicación que corte todas las conexiones no autorizadas, como hipervínculos que puedan ser utilizados para abrir el navegador, cuadros de dialogo con opción de llamar a los menús del botón derecho que permitan llamar a una consola WMI, etc... Cada punto se debe cortar de manera diferente. Unas veces usando ACLs, otras Software Restriction Policies, otras renombrando ficheros de ayuda o haciendo auténticos desaguisados que, una nueva actualización de un Service Pack obliga a revisar. 

El problema principal es que en un sistema operativo como Windows Server 2000/2003/2008 existen muchos posibles caminos para poder saltar de la aplicación al sistema operativo. Algunos de ellos creados por el programador de la aplicación que hace uso de un determinado componente del sistema, otros simplemente porque el sistema es así. Además, para más complicación, un nuevo Service Pack, un nuevo update de un componente por medio de la instalación de algún sofware o una versión diferente del sistema operativo, hacen que cambien las conexiones, y que aparezca una nueva combinación de teclas, o un nuevo enlace en la ayuda de un componente que abra la puerta al navegador.

Playing the Piano

El atacante, por su parte, realizará el proceso contrario, es decir, revisará en busca de todos los paneles buscando por hipervínculos para invocar al navegador, como por ejemplo llamando a la ayuda con F1, o en Windows Server 2008 llamando a una aplicación que no exista, para recibir un cuadro de diálogo que ofrece un bonito botón de "Ayuda".

Figura 2: Ayuda de Terminal Services cuando no se encuentra la aplicación invocada.

En Windows Server 2008, otra de las posibilidades es llamar a las sticky keys, mediante la pulsación continuada de las teclas de mayúsculas, lo que abre otro cuadro de diálogo con un enlace al Centro de Accesibilidad, que está dentro del panel de control.

Figura 3: Sticky Keys en Windows 7 y Windows Server 2008

Pero el número de posibilidades que hay que capar es infinito. El atacante podrá utilziar todas las variables de entorno conocidas del sistema como %systemdrive%, %systempath%,  %userprofile%, llamar a todos los accesos directos conocidos y por conocer, como CTL+Alt+Supr, Ctrl+f1, Ctrl+F3, etc... es lo que nosotros llamamos "Tocar el piano".

**************************************************************************************************
Hacking Remote Apps: Jailbreaking (1 de 3)
Hacking Remote Apps: Jailbreaking (2 de 3)
- Hacking Remote Apps: Jailbreaking (3 de 3)
**************************************************************************************************

2 comentarios:

  1. Nos facilitarás ese excel tan fantástico que nos enseñaste en la NcN?? ;)

    ResponderEliminar
  2. Se podria crear codigo en VB para poder usarlo con Excel mediante macros...??

    saludos..

    ResponderEliminar