domingo, octubre 04, 2009

Connection String Attacks (IV de VI)

*********************************************************************************************
- Connection String Attacks (I de VI)
- Connection String Attacks (II de VI)
- Connection String Attacks (III de VI)
- Connection String Attacks (IV de VI)
- Connection String Attacks (V de VI)
- Connection String Attacks (VI de VI)
*********************************************************************************************

Ataque 2: Escaneo de puertos anónimo

Un atacante, utilizando la funcionalidad de configurar el puerto en la cadena de conexión podría utilizar una aplicación vulnerable a esta técnica para escanear servidores. Bastaría con realizar intentos de conexión por los diferentes puertos y ver los mensajes de error que se obtienen en cada uno de esas peticiones. El ataque sería tal como se explica abajo:

- Valor_User: ; data source =Target_Server, Target_Port
- Valor_Password: ; integrated security = true

Ejemplo: myLittleSQLAdmin

La empresa myLittleTools tienen un par de herramientas similares vulnerables (hasta la aparición del último parche de seguridad después que de que les avisáramos) que permitían este ataque. Las herramietnas son myLittleSQLAdmin para adminsitrar completamente servidores Microsoft SQL Server y myLittleBackup, una herramienta para la gestión de backups online en este tipo de servidores.

Como se puede ver en la siguiente Figura, basta con inyectar y polucionar diferentes valores de puerto en el parámetro Data Source y observar los mensajes de error.


Figura 10: Se puede establecer una conexión por el puerto 80 con www.gooogle.com

Si embargo, cuando el puerto está cerrado no se puede realizar una conexión TCP.


Figura 11: No se puede establecer una conexión con el puerto 1420 con www.google.com

Esta técnica puede utilizarse también para descubrir servidores internos dentro de la DMZ y escanearlos igualmente. Lógicamente, sólo para puertos TCP.

Ataque 3: Hijacking Web credentials

En este entorno, el atacante intenta utilizar las credenciales usadas por la aplicación web para logarse en la base de datos. Tendrá éxito si el motor de bases de datos permite acceso a las cuentas del sistema. Para ello, bastaría utilizar una inyección como la siguiente:

- Valor_User: ; data source =Target_Server
- Valor_Password: ; integrated security = true

Para conseguir un alto grado de éxito con este ataque, lo recomendable es intentar primero sin polucionar el valor Data Source para conectar con la fuente de datos original de la aplicación, pero también intentarlo con fuentes de datos en el mismo servidor usando Data Source = localhost o buscando una instancia de Microsoft SQL Server Express en la máquina con Data Source = localhost\SQLExpress.

Ejemplo: SQL Web Data Administrator

SQL Web Data Administrator es una aplicación que inicialmente desarrolló Microsoft, pero que en el año 2004 liberó como proyeto Open Source en CodePlex. Esta herramienta, en la versión liberada por Microsoft en el año 2004 es vulnerable a este ataque mientras que, la versión actual en CodePlex, está arreglada. El ataque puede hacerse en la versión vulnerable como se muestra a continuación.


Figura 12: CPP en formulario de login


Figura 13: Acceso a la consola con la cuenta del servidor

Como se puede ver en la Figura 14, esto es debido a que todos los usuarios del sistema, e incluso el servicio de red, tienen acceso al servidor.


Figura 14: Concesiones de acceso a cuentas del sistema

Ejemplo: ASP.NET Enterprise Manager

Como se vio anteriormente, la aplicación ASP.NET Enterprise Manager era vulnerable a estas técnicas, por lo que es también susceptible de sufrir este ataque.


Figura 15: CSPP en formulario de login de ASP.NET Enterprise Manager


Figura 16: Consola de administración


*********************************************************************************************
- Connection String Attacks (I de VI)
- Connection String Attacks (II de VI)
- Connection String Attacks (III de VI)
- Connection String Attacks (IV de VI)
- Connection String Attacks (V de VI)
- Connection String Attacks (VI de VI)
*********************************************************************************************

1 comentario: