MSSQL
Last updated
Last updated
( MSSQL
) es el sistema de gestión de bases de datos relacionales de Microsoft basado en SQL. A diferencia de MySQL, que analizamos en la sección anterior, MSSQL es de código cerrado y se desarrolló inicialmente para ejecutarse en sistemas operativos Windows. Es popular entre administradores y desarrolladores de bases de datos al crear aplicaciones que se ejecutan en .NET Framework de Microsoft debido a su sólida compatibilidad nativa con .NET. Existen versiones de MSSQL compatibles con Linux y macOS, pero es más probable encontrar instancias de MSSQL en sistemas operativos Windows.
( SSMS
) se ofrece como una función que se puede instalar con el paquete de instalación de MSSQL o descargar e instalar por separado. Se suele instalar en el servidor para la configuración inicial y la gestión a largo plazo de las bases de datos por parte de los administradores. Tenga en cuenta que, al ser SSMS una aplicación del lado del cliente, puede instalarse y usarse en cualquier sistema desde el que un administrador o desarrollador planee administrar la base de datos. No solo existe en el servidor que aloja la base de datos. Esto significa que podríamos encontrarnos con un sistema vulnerable con SSMS y credenciales guardadas que nos permitan conectarnos a la base de datos. La imagen a continuación muestra SSMS en funcionamiento.
Se pueden usar muchos otros clientes para acceder a una base de datos que se ejecuta en MSSQL. Entre ellos se incluyen:
MSSQL cuenta con bases de datos de sistema predeterminadas que nos ayudan a comprender la estructura de todas las bases de datos que pueden estar alojadas en un servidor de destino. A continuación, se presentan las bases de datos predeterminadas y una breve descripción de cada una:
Base de datos del sistema predeterminada
Descripción
master
Realiza un seguimiento de toda la información del sistema para una instancia del servidor SQL
model
Base de datos de plantilla que sirve de estructura para cada nueva base de datos creada. Cualquier cambio en la configuración de la base de datos modelo se reflejará en cualquier nueva base de datos creada después de realizar cambios en ella.
msdb
El Agente SQL Server utiliza esta base de datos para programar trabajos y alertas
tempdb
Almacena objetos temporales
resource
Base de datos de solo lectura que contiene objetos del sistema incluidos con el servidor SQL
Cuando un administrador instala y configura MSSQL inicialmente para que sea accesible desde la red, es probable que el servicio SQL se ejecute como NT SERVICE\MSSQLSERVER
. La conexión desde el cliente es posible mediante la autenticación de Windows y, de forma predeterminada, no se aplica el cifrado al intentar conectarse.
La autenticación activada Windows Authentication
significa que el sistema operativo Windows procesará la solicitud de inicio de sesión y usará la base de datos SAM local o el controlador de dominio (que aloja Active Directory) antes de permitir la conectividad con el sistema de administración de bases de datos. Usar Active Directory puede ser ideal para auditar la actividad y controlar el acceso en un entorno Windows, pero si una cuenta se ve comprometida, podría provocar una escalada de privilegios y un movimiento lateral en un entorno de dominio Windows. Al igual que con cualquier sistema operativo, servicio, rol de servidor o aplicación, puede ser beneficioso configurarlo en una máquina virtual desde la instalación hasta la configuración para comprender todas las configuraciones predeterminadas y los posibles errores que el administrador podría cometer.
Puede ser beneficioso ponernos en la perspectiva de un administrador de TI durante una misión. Esta mentalidad nos ayuda a recordar que debemos buscar diversas configuraciones que un administrador pueda haber configurado incorrectamente o de forma peligrosa. Una jornada laboral en TI puede ser bastante ajetreada, con muchos proyectos diferentes en marcha simultáneamente y la presión de trabajar con rapidez y precisión, una realidad en muchas organizaciones, por lo que es fácil cometer errores. Basta con una pequeña configuración incorrecta para comprometer un servidor o servicio crítico de la red. Esto aplica a prácticamente todos los servicios de red y roles de servidor configurables, incluido MSSQL.
Esta no es una lista exhaustiva, ya que existen innumerables maneras en que los administradores pueden configurar bases de datos MSSQL según las necesidades de sus respectivas organizaciones. Podría ser útil analizar lo siguiente:
Clientes MSSQL que no utilizan cifrado para conectarse al servidor MSSQL
El uso de certificados autofirmados durante el cifrado. Es posible falsificar certificados autofirmados.
Credenciales débiles y predeterminadas sa
. Los administradores podrían olvidar deshabilitar esta cuenta.
Hay muchas maneras de abordar el seguimiento del servicio MSSQL. Cuanto más específicos sean nuestros análisis, más información útil podremos recopilar. NMAP cuenta con scripts MSSQL predeterminados que permiten identificar el puerto TCP predeterminado 1433
en el que escucha MSSQL.
El escaneo NMAP programado a continuación nos proporciona información útil. Podemos ver los hostname
, database instance name
y software version of MSSQL
. named pipes are enabled
Nos resultará beneficioso añadir estos descubrimientos a nuestras notas.
También podemos utilizar Metasploit para ejecutar un escáner auxiliar llamado mssql_ping
que escaneará el servicio MSSQL y proporcionará información útil en nuestro proceso de seguimiento.
Fuente de la tabla:
El uso de