🔍Puertp - 3306 - MySQL & SqlMap
🔍Auditoría de Seguridad en el Puerto 3306 - MySQL
El puerto 3306 es utilizado por el servicio MySQL, una de las bases de datos más utilizadas en entornos empresariales y de desarrollo. Debido a su criticidad, es un objetivo frecuente en auditorías de seguridad.
📌 Resumen de Herramientas y Técnicas para Auditoría en MySQL
Esta guía cubre las principales herramientas y técnicas para auditar MySQL en el puerto 3306 en el examen eJPTv2
🛠️ Herramientas Principales.
🔍 Nmap + Scripts NSE: Enumeración y detección de vulnerabilidades. 🔧 Metasploit: Explotación de fallos y acceso no autorizado. 🛠️ Hydra & Medusa: Ataques de fuerza bruta para credenciales. 📊 Sqlmap: Pruebas de inyección SQL automatizadas.
🕵️ Reconocimiento e Identificación del Servicio MySQL
Determinar la versión del servicio MySQL es fundamental para detectar posibles vulnerabilidades.
🔨 Uso de Metasploit para Auditoría de MySQL.
Enumeración de usuarios.
Ataque de autenticación débil.
Lista recursos mysql.
🔑 Fuerza brutal al servicio MySQL
Hydra
Metasploit
SqlMap para auditar panel login.
Lo primero que debemos hacer es interceptar la petición en Burpsuite y le damos en la opción Copy to file.

Ahora que tenemos guardado el archivo de la petición, vamos a lanzar la herramienta sqlmap con la siguiente sintaxis:
De este modo lo que le estaremos indicando a sqlmap los parámetros en los que tiene que actuar.
El uso mas básico que le podríamos dar a esta herramienta seria el siguiente:
--forms: Este parámetro le indica a
sqlmap
que busque formularios en la página web. Los formularios son a menudo puntos de entrada para datos proporcionados por el usuario, lo que significa que son posibles vectores de inyección SQL.sqlmap
escaneará los formularios que encuentre y los probará para detectar vulnerabilidades.--batch:
sqlmap
interactúa con el usuario durante su ejecución para hacer preguntas o solicitar confirmaciones. El uso de--batch
hace quesqlmap
tome las decisiones automáticamente utilizando sus valores predeterminados, sin pedir interacción con el usuario. Es útil cuando se ejecutasqlmap
en scripts o cuando quieres automatizar el proceso.--dbs: Este parámetro le dice a
sqlmap
que, si encuentra una vulnerabilidad de inyección SQL, debe enumerar las bases de datos disponibles en el servidor. Es una opción utilizada para extraer información crítica, que en este caso son los nombres de las bases de datos.
Una vez sepamos que bases de datos existen, vamos seguir utilizando sqlmap pero esta vez le vamos a proporcionar otra sintaxis.
añadiremos -D <nombre_db>
y --tables
para indicarle por un lado que nos muestre la base de datos de users y por otro lado que nos muestre las columnas de dicha base de datos.
Ahora que sabemos el nombre de dicha columna, vamos a indicarle a sqlmap que nos haga otra petición pero esta vez con el parámetro --colums
Cuando no tenemos mucha información otro parámetro que podemos utilizar es: --dump
que nos arrojará toda la información posible sin necesidad de tener que ir 1 por 1. (significativamente mas lento)
📊 Comando para interactuar con MySQL
🛑 Errores Comunes y Soluciones
1️⃣ Error: Access denied for user 'root'@'localhost' (using password: YES)
🔹 Solución: Asegúrate de que la contraseña es correcta o usa `sudo mysql -u .
2️⃣ Error: Can't connect to MySQL server on '127.0.0.1' (111)
**
🔹 Solución: Verifica que MySQL está corriendo.
Algunos ejemplos de SQLinjection
Last updated