> For the complete documentation index, see [llms.txt](https://books.spartan-cybersec.com/cppj/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://books.spartan-cybersec.com/cppj/databases-for-juniors/puerto-1433-microsoft-sql-server.md).

# Puerto 1433: Microsoft SQL Server

**Microsoft SQL Server** es un sistema de gestión de bases de datos relacional (RDBMS) desarrollado por Microsoft. Se utiliza ampliamente en aplicaciones empresariales para almacenar, gestionar y recuperar datos. El puerto 1433 es el puerto predeterminado utilizado por Microsoft SQL Server para aceptar conexiones de clientes.

## <mark style="color:green;">Descripción de Microsoft SQL Server y el Puerto 1433</mark>

* <mark style="color:green;">**Protocolo**</mark><mark style="color:green;">:</mark> Microsoft SQL Server utiliza el protocolo TDS (Tabular Data Stream) sobre TCP para la comunicación entre el cliente y el servidor. El puerto predeterminado para las conexiones de SQL Server es el 1433.
* <mark style="color:green;">**Funcionalidad**</mark><mark style="color:green;">:</mark> SQL Server soporta una amplia gama de funcionalidades, incluyendo transacciones ACID, integridad referencial, procedimientos almacenados, triggers, vistas, y análisis de datos avanzados. También proporciona herramientas de administración y desarrollo como SQL Server Management Studio (SSMS).
* <mark style="color:green;">**Seguridad**</mark><mark style="color:green;">:</mark> SQL Server proporciona múltiples capas de seguridad, incluyendo autenticación basada en roles, SSL/TLS para cifrado de tráfico, y controles de acceso detallados. Adicionalmente, soporta auditorías y cifrado de datos en reposo.

## <mark style="color:green;">Relevancia en Pentesting</mark>

### <mark style="color:green;">**Importancia de Microsoft SQL Server en Pentesting**</mark><mark style="color:green;">:</mark>

* <mark style="color:green;">**Acceso No Autorizado**</mark><mark style="color:green;">:</mark> Configuraciones incorrectas de autenticación pueden permitir a los atacantes obtener acceso no autorizado a la base de datos.
* <mark style="color:green;">**Exposición de Datos**</mark><mark style="color:green;">:</mark> Las bases de datos expuestas sin cifrado pueden ser interceptadas por atacantes, exponiendo datos sensibles.
* <mark style="color:green;">**Enumeración de Objetos**</mark><mark style="color:green;">:</mark> Los pentesters pueden enumerar esquemas, tablas, y otros objetos para mapear la estructura de la base de datos y encontrar posibles vulnerabilidades.
* <mark style="color:green;">**Inyección SQL**</mark><mark style="color:green;">:</mark> SQL Server es susceptible a inyecciones SQL si las consultas no están correctamente parametrizadas.

## <mark style="color:green;">Ejemplo de Escaneo de SQL Server con Nmap</mark>

Para identificar servidores SQL Server activos y recopilar información adicional sobre los servicios SQL Server, se puede utilizar Nmap con scripts NSE específicos.

### <mark style="color:green;">**Comando Nmap**</mark>

```bash
nmap -p 1433 --script ms-sql-info target-ip
```

### <mark style="color:green;">**Explicación del Comando**</mark>

* `nmap`: Ejecuta el comando Nmap.
* `-p 1433`: Especifica que Nmap debe escanear el puerto 1433, el puerto predeterminado para SQL Server.
* `--script ms-sql-info`: Utiliza el script NSE `ms-sql-info` para recopilar información sobre el servidor SQL Server.
* `target-ip`: Especifica la dirección IP del objetivo.

### <mark style="color:green;">**Ejemplo de Salida de Nmap**</mark>

```plaintext
Starting Nmap 7.80 ( https://nmap.org ) at 2024-05-19 00:30 UTC
Nmap scan report for 192.168.1.230
Host is up (0.0014s latency).

PORT     STATE SERVICE
1433/tcp open  ms-sql-s
| ms-sql-info: 
|   Version: 
|     Microsoft SQL Server 2019 RTM (KB4045520) - 15.0.2000.5 (X64)
|     Oct 25 2019 01:22:43
|   TCP port: 1433
|   Named Pipe: \\192.168.1.230\pipe\sql\query
|   Instance: MSSQLSERVER
|   Server Name: SQLSERVER
|   Server Collation: SQL_Latin1_General_CP1_CI_AS
|   Database: 
|     - master
|     - tempdb
|     - model
|     - msdb
|   Configuration: 
|     Max Server Memory: 2147483648
|     Max Degree of Parallelism: 0
|     Lightweight Pooling: 0
|     Priority Boost: 0
|     Min Memory Per Query: 1024
|     Index Create Memory: 0
|   Encryption: 
|     Enabled: False
|     Forced Encryption: False
|   Authentication: 
|     Windows Authentication: Enabled
|     Mixed Mode Authentication: Disabled
|_  Connection Timeout: 15

Nmap done: 1 IP address (1 host up) scanned in 9.23 seconds
```

## <mark style="color:green;">Interpretación de la Salida</mark>

* <mark style="color:green;">**Host is up**</mark><mark style="color:green;">:</mark> Indica que el sistema objetivo está en línea y responde.
* <mark style="color:green;">**1433/tcp open ms-sql-s**</mark><mark style="color:green;">:</mark> El puerto 1433 está abierto y el servicio Microsoft SQL Server está activo.
* <mark style="color:green;">**ms-sql-info**</mark><mark style="color:green;">:</mark> Proporciona información detallada sobre el servidor SQL Server.
  * <mark style="color:green;">**Version**</mark><mark style="color:green;">:</mark> `Microsoft SQL Server 2019 RTM (KB4045520) - 15.0.2000.5 (X64)`.
  * <mark style="color:green;">**TCP port**</mark><mark style="color:green;">:</mark> Puerto TCP utilizado (`1433`).
  * <mark style="color:green;">**Named Pipe**</mark><mark style="color:green;">:</mark> Tubo con nombre para consultas (`\\192.168.1.230\pipe\sql\query`).
  * <mark style="color:green;">**Instance**</mark><mark style="color:green;">:</mark> Nombre de la instancia de SQL Server (`MSSQLSERVER`).
  * <mark style="color:green;">**Server Name**</mark><mark style="color:green;">:</mark> Nombre del servidor (`SQLSERVER`).
  * <mark style="color:green;">**Server Collation**</mark><mark style="color:green;">:</mark> Intercalación del servidor (`SQL_Latin1_General_CP1_CI_AS`).
  * <mark style="color:green;">**Database**</mark><mark style="color:green;">:</mark> Bases de datos disponibles en el servidor (`master`, `tempdb`, `model`, `msdb`).
  * <mark style="color:green;">**Configuration**</mark><mark style="color:green;">:</mark> Configuración del servidor SQL Server.
    * <mark style="color:green;">**Max Server Memory**</mark><mark style="color:green;">:</mark> Memoria máxima del servidor (`2147483648`).
    * <mark style="color:green;">**Max Degree of Parallelism**</mark><mark style="color:green;">:</mark> Grado máximo de paralelismo (`0`).
    * <mark style="color:green;">**Lightweight Pooling**</mark><mark style="color:green;">:</mark> Pooling ligero (`0`).
    * <mark style="color:green;">**Priority Boost**</mark><mark style="color:green;">:</mark> Aumento de prioridad (`0`).
    * <mark style="color:green;">**Min Memory Per Query**</mark><mark style="color:green;">:</mark> Memoria mínima por consulta (`1024`).
    * <mark style="color:green;">**Index Create Memory**</mark><mark style="color:green;">:</mark> Memoria para creación de índices (`0`).
  * <mark style="color:green;">**Encryption**</mark><mark style="color:green;">:</mark> Configuración de cifrado.
    * <mark style="color:green;">**Enabled**</mark><mark style="color:green;">:</mark> Cifrado habilitado (`False`).
    * <mark style="color:green;">**Forced Encryption**</mark><mark style="color:green;">:</mark> Cifrado forzado (`False`).
  * <mark style="color:green;">**Authentication**</mark><mark style="color:green;">:</mark> Métodos de autenticación soportados.
    * <mark style="color:green;">**Windows Authentication**</mark><mark style="color:green;">:</mark> Autenticación de Windows (`Enabled`).
    * <mark style="color:green;">**Mixed Mode Authentication**</mark><mark style="color:green;">:</mark> Autenticación mixta (`Disabled`).
  * <mark style="color:green;">**Connection Timeout**</mark><mark style="color:green;">:</mark> Tiempo de espera de conexión (`15`).
