lunes, diciembre 26, 2011

Hacking Remote Applications: Escaneando la red con Connection Strings en Excel (III de III)

**************************************************************************************************
- Escaneando la red con Connection Strings en Excel (III de III)
Autores: Juan Garrido "Silverhack" & Chema Alonso
**************************************************************************************************

Escaneo de puertos de servidores internos de la red

Uno de los trucos que utilizamos en la técnica de Connection String Parameter Pollution era el de mover el parametro Data Source de una cadena de conexión por los distintos puertos de un servidor para obtener distintos mensajes que nos permitiera detectar si allí había un puerto abierto TCP o no.

Ese mismo truco lo podemos aplicar desde Excel para descubrir las sorpresas de la DMZ. En este caso, en la cadena de conexión se puede ver que si intentamos conectarnos a un servidor por un puerto que está cerrado se va a obtener un mensaje de error que nos indica que hay un problema en la conexión.

Figura 11: Si abre el puerto 80000 le damos un premio

Si intentamos la conexión con un puerto de un servidor que lo tiene abierto, como en este ejemplo por el 80, pero en el que no se encuentra un servidor SQL Server, lo que obtenemos es un bonito mensaje que nos indica que allí no se encuentra el esperado servicio de bases de datos, pero que delata que está abierto.

Figura 12: El puerto 80 de este servidor

Así, con un poco de paciencia desde un Excel podríamos hacer un mapa completo de los servidores y puertos de la DMZ, y sin necesidad de usar VBA.

Navegando por la Intranet

La gracia es que si somos capaces de encontrar servidores internos que tengan servicios HTTP o FTP, seremos capaces de navegar por ellos usando el truco de "navegar sin navegador" que ya vimos anteriormente. Así, ya sea porque se puede consultar el Active Directory o simplemente escaneando las direcciones IP de la red, se descubren los servidores web internos.

Figura 13: Búsqueda de servidores IIS

Una vez descubiertos, solo tendríamos que ir a la opción de Abrir Archivo, y seleccionar esa URL, para navegar por la Intranet.

Figura 14: Navegando internamente por la Intranet

Ahora ya no solo podríamos escanear la DMZ, sino navegar por ella, y lo que es mejor, lanzar directamente los ataques SQLi desde el Excel o el Word que estemos usando en el servidor Terminal Services o Citrix. Incluso ver lo que hay en http://localhost/


Figura 15: Un IIS 7 en http://localhost/

Robar el hash del usuario de la conexión Citrix

Por supuesto, el último de los ataques es otro que también hacíamos en Connection String Pararameter Pollution: Dirigir el valor de Data Source hacia un servidor Rogue controlado por nosotros en el que activamos un sniffer para capturar los hashes de autenticación de la cuenta.

Esto nos permite saltar el problema de que el hash usado en la contraseñas de Citrix o RDP no pueda ser crackeado, ya que al hacer esta re-dirección obtendremos los hashes NTLM contra los que sí podremos lanzar ataques de diccionario o fuerza bruta.

Conclusiones

Las técnicas de ataque de las cadenas de conexión se pueden aplicar desde cualquier aplicativo que tenga un importador de datos y use los componentes estándar del sistema para conexiones ODBC, OLEDB, etc... hay que tener en cuenta que los drivers están cargados a nivel de sistema operativo, por lo que solo deberemos encontrar una aplicación que llame a estas librerías para poder hacer todas estas cosas.

**************************************************************************************************
- Escaneando la red con Connection Strings en Excel (III de III)
**************************************************************************************************

2 comentarios: