En varias compañias aun se utilizan y se siguen creando aplicaciones tipo cliente servidor (tambien llamadas de 2 capas), que funcionan de la siguiente manera:
1. Servidor: Generalmente solo es una base de datos
2. Cliente: Es una aplicacion que se conecta a la base de datos y realiza querys sql para actualizar la BD
En si, este tipo de aplicaciones tienen debilidades de administración y seguridad porque:
a) Un cambio en la aplicacion, requiere que el binario sea distribuido por todos los clientes
b) La seguridad es más complicada de administrar
Entonces, lo que se explota con este tipo de aplicaciones es el acceso directo a la base de datos.
Para realizar el análisis se realiza lo siguiente:
1. Identificar como funciona la aplicacion:
a) La aplicacion se conecta a la base de datos de forma silenciosa con un usuario y clave quemado en la aplicacion
b) La aplicacion se conecta a la base de datos con un usuario de base de datos utilizando odbc, jdbc, etc.
2. Dependiendo los casos anteriores se realiza lo siguiente:
a) Si la aplicacion se conecta de forma silenciosa a la base de datos, se prueba lo siguiente:
* Sniffer local antes de iniciar la aplicación (se capturan claves tds de sql server)
* Verificar si al iniciar la aplicación se consulta algun archivo que tenga el string de conexion
* Ingenieria inversa al binario (generalmente está en un string del binario, con el olly se encuentra rápido)
b) Si la aplicacion utiliza un usuario de base de datos:
* Realizar una conexion directa a la base de datos con el usuario válido y verificar si es posible acceder y escribir tablas fuera del perfil del usuario
****Conclusiones*****
Las aplicaciones a dos capas por su arquitectura, requieren mayor administración de seguridad y si no se aplican los controles necesarios, se puede acceder directamente a la base de datos.
Saludos.
Happy Hacking