Puerto 3306: MySQL

MySQL es un sistema de gestión de bases de datos relacional de código abierto muy popular, utilizado en una amplia variedad de aplicaciones web y empresariales. MySQL es conocido por su rendimiento, fiabilidad y facilidad de uso. El puerto 3306 es el puerto predeterminado que utiliza MySQL para aceptar conexiones de clientes.

Descripción de MySQL y el Puerto 3306

  • Protocolo: MySQL utiliza un protocolo propio sobre TCP/IP para la comunicación entre el cliente y el servidor. El puerto predeterminado para las conexiones MySQL es el 3306.

  • Funcionalidad: MySQL soporta una amplia gama de funcionalidades, incluyendo transacciones ACID, índices, vistas, triggers, procedimientos almacenados, y replicación. Es compatible con múltiples motores de almacenamiento, como InnoDB y MyISAM.

  • Seguridad: MySQL proporciona varias capas de seguridad, como autenticación basada en usuarios, SSL/TLS para cifrado de tráfico, y controles de acceso detallados.

Relevancia en Pentesting

Importancia de MySQL en Pentesting:

  • Acceso No Autorizado: Configuraciones incorrectas de autenticación pueden permitir a los atacantes obtener acceso no autorizado a la base de datos.

  • Exposición de Datos: Las bases de datos expuestas sin cifrado pueden ser interceptadas por atacantes, exponiendo datos sensibles.

  • Enumeración de Objetos: Los pentesters pueden enumerar esquemas, tablas, y otros objetos para mapear la estructura de la base de datos y encontrar posibles vulnerabilidades.

  • Inyección SQL: MySQL es susceptible a inyecciones SQL si las consultas no están correctamente parametrizadas.

Ejemplo de Escaneo de MySQL con Nmap

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

Comando Nmap

nmap -p 3306 --script mysql-info target-ip

Explicación del Comando

  • nmap: Ejecuta el comando Nmap.

  • -p 3306: Especifica que Nmap debe escanear el puerto 3306, el puerto predeterminado para MySQL.

  • --script mysql-info: Utiliza el script NSE mysql-info para recopilar información sobre el servidor MySQL.

  • target-ip: Especifica la dirección IP del objetivo.

Ejemplo de Salida de Nmap

Starting Nmap 7.80 ( https://nmap.org ) at 2024-05-19 00:20 UTC
Nmap scan report for 192.168.1.220
Host is up (0.0012s latency).

PORT     STATE SERVICE
3306/tcp open  mysql
| mysql-info:
|   Protocol: 10
|   Version: 5.7.32-0ubuntu0.18.04.1
|   Thread ID: 5
|   Capabilities flags: 63487
|   Some Capabilities: SupportsCompression, FoundRows, IgnoreSpaceBeforeParenthesis, InteractiveClient, Speaks41ProtocolOld, LongColumnFlag, ConnectWithDatabase, Speaks41ProtocolNew, ODBCClient, Transactions, IgnoreSigpipes, SupportsLoadDataLocal, DontAllowDatabaseTableColumn, SupportsMultipleStatments, SupportsAuthPlugins, SupportsMultipleResults
|   Status: Autocommit
|   SSL: Not enabled
|   Uptime: 332480
|   Uptime (seconds): 332480
|   Uptime (hours): 92
|_  Uptime (days): 3

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

Interpretación de la Salida

  • Host is up: Indica que el sistema objetivo está en línea y responde.

  • 3306/tcp open mysql: El puerto 3306 está abierto y el servicio MySQL está activo.

  • mysql-info: Proporciona información detallada sobre el servidor MySQL.

    • Protocol: Versión del protocolo MySQL (10).

    • Version: Versión del servidor MySQL (5.7.32-0ubuntu0.18.04.1).

    • Thread ID: ID del hilo (5).

    • Capabilities flags: Flags de capacidades (63487).

    • Some Capabilities: Algunas capacidades soportadas (SupportsCompression, FoundRows, InteractiveClient, Transactions, etc.).

    • Status: Estado actual del servidor (Autocommit).

    • SSL: Estado de SSL (Not enabled).

    • Uptime: Tiempo de actividad del servidor (332480 seconds, equivalente a 92 horas o 3 días).

Última actualización