miércoles, noviembre 16, 2011

Buscando servidores temáticos con Robtex

Una de las cosas que añadimos tiempo ha a nuestra querida FOCA es la de clasificar los servidores descubiertos por roles, es decir, tener un nodo que permitiera ver los servidores HTTP, otra que permitiera ver los servidores VPN, etc... Hasta el momento, utilizamos diferentes reglas para asignar los roles - algunas tan evidentes que nos hacen sentir orgullosos -.

El caso es que, una de las cosas en las que estamos trabajando es la de asignar roles en función del rol, haciendo una predicción. Es decir, si el servidor se llama ldap.dominio.com, vamos a suponer que es un servidor ldap [- APPLAUSE! -], o que si se llama ftp.dominio.com es probable que sea un... vale, creo que lo habéis pillado.

El caso es que esta idea de poner a los servidores nombres temáticos es de muy ingeniero, y tiene una vertiente de seguridad bastante curiosa. Amén de que sea fácil de predecir, y en la lista que usa FOCA para hacer la búsqueda por diccionario es probable que aparezca, también hará que ese servidor se pueda convertir en una gacela herida ante los cazadores furtivos.

Imaginad por un instante que ha aparecido un 0day en un componente del software de PHPmyadmin y que un cazador furtivo decide que quiere probarlo a diestro, siniestro y tiniestro. Lo primero que hará es ponerse a dorkear como un ninja [Daaab!] y buscar en Google, Bing y lo que se ponga por delante.

Sin embargo, el problema que se puede encontrar es que muchos hayan configurado el fichero robots.txt correctamente, y lo que es peor, que las arañas le hayan hecho caso. Con lo que se puede perder mucho del campo que está conectado a Internet.

La cosa aún es peor cuando el bug es de un servidor LDAP, Terminal Services o Citrix... ¿cómo dorkear en esos momentos? Nada, las alternativas, como explica el libro de Hacking con Buscadores es utilizar como John Matherly manda Shodan... pero.. ¿y si el puerto no está indexado por Shodan?

Pues te queda una opción, buscar los servidores temáticos con Robtex, es decir, los servidores que su querido admin ha bautizado con el rol que tienen dentro de la organización. Así, una sencilla búsqueda en Robtex por ldap. y te salen unos mil y pico servidores llamados ldap., de los que es posible que puedas conectarte a alguno.

Figura 1: Servidores llamados ldap. descubiertos por Robtex

Lo mismo con los servidores de bases de datos MS SQL Server.

Figura 2: servidores mssql.

O los servidores VPN....

Figura 3: Servidores VPN.
o el citado PHPMyAdmin

Figura 4: Servidores llamados phpmyadmin.

Parece que va ser una muy buena idea eso de utilizar nombres que no identifiquen la carga software del servidor, por si aparece algún 0day en alguno de esos software, o por si hay algún APT malo maloso esperando el fallo. ¿Se te ocurre algún buen nombre que buscar?

Saludos Malignos!

martes, noviembre 15, 2011

Hacking Remote Apps: Jailbreaking con Excel (I de IV)

**************************************************************************************************
- Hacking Remote Apps: Jailbreaking con Excel (I de IV)
- Hacking Remote Apps: Jailbreaking con Excel (II de IV)
- Hacking Remote Apps: Jailbreaking con Excel (III de IV)
- Hacking Remote Apps: Jailbreaking con Excel (IV de IV)
Autores: Juan Garrido "Silverhack" y Chema Alonso
**************************************************************************************************

Ha pasado tiempo ya desde que comenzamos la serie dedicada a Hacking Terminal Services y Citrix, pero aún quedan algunas cosas por dejar escritas. Esta parte está dedicada al punto que dio título a nuestra charla en Defcon sobre esta temática: Utilizar Excel para romper las restricciones en los servidores Terminal Services y Citrix.

En las partes anteriores se vio cómo descubrir los servidores Terminal Services y Citrix, cómo descubrir las aplicaciones instaladas en ellos, y algunos trucos de cómo saltarse las limitaciones para llegar al sistema a través de las aplicaciones. En esta ocasión vamos a ver cómo usar Excel, cuáles son las políticas de seguridad que se pueden aplicar un servidor Windows para fortificar la aplicación mediante políticas administrativas, y qué puede hacerse para saltarse esas políticas.

Jailbreaking

Sólo como recordatorio, en los entornos Citrix o Terminal Services, hablamos de jailbreaking al proceso de conseguir saltar de la aplicación publicada al sistema operativo, o lo que es lo mismo, a pasar de hacer unos cálculos con una hoja de Excel, a ejecutar un comando que muestre la lista de procesos en el sistema. Como ya vimos en la parte dedicada a playing de piano, - que incluso usamos para rearmar un Windows con sticky keys - hay muchas teclas rápidas, accesos directos del sistema, o cuadros de dialogo que pueden permitir conseguir ese objetivo, pero esto puede ser aún peor cuando la aplicación es compleja, y tiene su propio lenguaje de programación, como Microsoft Office. 

Aunque en esta parte del trabajo hemos utilizado Excel, casi todo se puede migrar a cualquier otro producto del paquete de Microsoft Office, con lo que no creímos necesario hacer pruebas con Word, PowerPoint o Access.

El poder de VBA

Visual Basic for Applications es el lenguaje de programación que se utiliza para hiper-vitaminar los documentos de Microsoft Office. Con este lenguaje es posible desarrollar auténticas aplicaciones de gestión que manejen empresas completamente. No es de extrañar que haya todavía un gran número de pequeños y medianos negocios en os que la aplicación core sea un Excel o un Access. Con este lenguaje se puede hacer prácticamente cualquier cosa, como la industria del malware descubrió hace tiempo, y Didier Stevens se empeñó hace no demasiado. Y esto le convierte en un lenguaje muy peligroso para la seguridad de una empresa cuando de un entorno Citrix o Terminal Services se trata.

Figura 1: Tasklist.xls publicado por Didier Stevens

Sin embargo, cuando la paranoía se nos venga encima, siempre se puede deshabilitar completamente. Así, es posible aplicar una política de seguridad que llevando la contraria a lo que es habitual en estas, es segura. Esta política, por desgracia, no se aplica de forma unitaria a un programa, es decir, no se puede deshabilitar VBA en Excel y dejarlo en PowerPoint, o deshabilitarlo en PowerPoint y dejarlo en Excel, sino que se aplica todos los productos del paquete.


Figura 2: Política para deshabilitar VBA en todo el paquete Office 2007 y en Office 2010

Por supuesto, una vez aplicada esta castración química de Microsoft Office, este paquete habrá perdido gran parte de su mojo, haciendo de él un paquete que no podrá poder utilizarse con la magia que lo hace autosuficiente para gestionar empresas. Ahí radicará gran parte del peso específico en la eterna diatriba que nos lleva de la seguridad a la productividad.

Como se puede ver en la Figura 2, la política se aplica en Office\14.0\common - 14.0 es Microsoft Office 2010 - y no en una rama de producto. Si se fuerza esta política, aplicativos como Access no pueden funcionar.

Excel como navaja suiza

Como ya hemos dicho, el genial investigador Didier Stevens se empeñó en hacer de Excel su particular navaja suiza, creando ficheros Excel desde los que ejecutar el taskmanager, o llamar a comandos de WMI para lanzar prácticamente cualquier cosa. Además, una de las peculiaridades más importantes es que se puede meter una dll dentro del fichero Excel que será ejecutada en el sistema, con lo que la ejecución completa de programas con los permisos de la cuenta de usuario quedan habilitados para cualquier usuario de Excel en entornos Citrix y Terminal Services.

Figura 3: El excel que hicimos nosotros para la Defcon19

Así, para un usuario, armado con los documentos Excel apropiados, conseguir ejecutar un tasklist en el sistema será tan sencillo como abrir el documento de Excel en el que lleva implementado dicho comando en VBA.

Aquí tenéis los recursos que dejó Didier Stevens listos para que os hagáis vuestra propia navaja suiza:

- Taskmanager.xls
- Taskmanager.xls para 64 bits

Excel y las restricciones de software

Una de las formas de capar a cualquier aplicación que intenta hacer jailbreak en un entorno Citrix o Terminal Services es la de bloquear los accesos a los programas más peligrosos mediante ACLs (Listas de Control de Accesso) o listas negras de hashes, firmas digitales o rutas. Todas esas opciones de protección se vienen abajo cuando eres capaz de cargar tu propia dll en tu documento Excel para ejecutar lo que te venga en gana.

Así, uno de los trucos que aprendimos y utilizamos en nuestra sesión, es el que realizó Didier Stevens convirtiendo el  interfaz de comandos del sistema operativo ReactOS y el editor del registro en sendas dlls que se cargan a través de una macro VBA en un documento Excel, permitiendo saltarse cualquier restricción que tenga el sistema. Contado con detalle en Excel with cmd.dll y regedit.dll.

Figura 4: El propio Didier lo cuenta magistralmente en este vídeo.

Conocido esto, llega la gran pregunta que se harán todos los responsables de seguridad y/o administradores de sistemas Citrix y Terminal Services que tenga que lidiar con una instancia de Excel publicada: 
"¿No hay ninguna forma de restringir el uso de macros VBA de alguna forma menos drástica que acabar con todo el soporte VBA para Microsoft Office?"

Pues lo veremos en la segunda parte de este artículo.

**************************************************************************************************
- Hacking Remote Apps: Jailbreaking con Excel (I de IV)
- Hacking Remote Apps: Jailbreaking con Excel (II de IV)
- Hacking Remote Apps: Jailbreaking con Excel (III de IV)
- Hacking Remote Apps: Jailbreaking con Excel (IV de IV)
**************************************************************************************************

Entrada destacada

Hacking IA: Jailbreak, Prompt Injection, Hallucinations & Unalignment. Nuestro nuevo libro en 0xWord

Pocas veces me ha hecho tanta ilusión que saliera un nuevo libro en 0xWord como con este libro de " Hacking IA: Jailbreak, Prompt Inje...

Entradas populares