3306:MYSQL

¿Que es MySQL?

MySQL es un sistema de gestión de bases de datos,MySQL almacena los datos en tablas formadas por filas y columnas. Los usuarios pueden definir, manipular, controlar y consultar datos con el lenguaje de consulta estructurada, también conocido como SQL.

Por defecto tiene el puerto:

3306/tcp open  mysql

Escanear

nmap -sV -p 3306,33060,33061 <IP>

Script

# Ejecuta scripts para realizar una auditoría completa de un servidor MySQL, incluyendo la identificación de vulnerabilidades, la enumeración de usuarios y bases de datos, y la obtención de información detallada sobre el servidor.
nmap  --script=mysql-audit,mysql-databases,mysql-dump-hashes,mysql-empty-password,mysql-enum,mysql-info,mysql-query,mysql-users,mysql-variables,mysql-vuln-cve2012-2122 $ip -p 3306

# Ejecuta una serie de scripts para realizar pruebas de penetración
nmap  --script=mysql* $ip -p 3306

# Audita la configuración de seguridad del servidor de base de datos MySQL
nmap -p 3306 --script mysql-audit --script-args "mysql-audit.username='root', \
  mysql-audit.password='foobar',mysql-audit.filename='nselib/data/mysql-cis.audit'" 192.168.x.x

# Bruta Fuerza
nmap --script=mysql-brute --script-args userdb=users.txt,passdb=passwords.txt -p 3306 192.168.x.x

# Intenta enumerar todas las bases de datos en un servidor MySQL.
nmap -sV --script=mysql-databases -p 3306 192.168.x.x

# Vuelca los hash de contraseña de un servidor MySQL en un formato adecuado 
nmap --script mysql-dump-hashes --script-args='username=root,password=secret' -p 3306 192.168.x.x

# Comprueba si hay servidores MySQL con una contraseña vacía para root o anónimo.
nmap -sV --script=mysql-empty-password -p 3306 192.168.x.x

# Realiza una enumeración de usuarios válidos en el servidor MySQL utilizando un error
nmap --script=mysql-enum -p 3306 192.168.x.x

# Se conecta a un servidor MySQL e imprime información como el protocolo y los números de versión, ID del hilo, estado, capacidades y la contraseña salt.
nmap -sV -sC -p 3306 192.168.x.x

# Ejecuta una consulta en una base de datos MySQL y devuelve los resultados como una tabla.
nmap --script mysql-query --script-args='query="<query>"[,username=<username>,password=<password>]' -p 3306 192.168.x.x

# Intenta listar a todos los usuarios en un servidor MySQL.
nmap -sV --script=mysql-users -p 3306 192.168.x.x

# Intenta mostrar todas las variables en un servidor MySQL
nmap -sV --script=mysql-variables -p 3306 192.168.x.x

# Intenta omitir la autenticación en servidores MySQL y MariaDB explotando CVE2012-2122. 
nmap --script mysql-vuln-cve2012-2122 -p3306 192.168.x.x

Comandos

Comandos de enumeración

SHOW DATABASES: Muestra una lista de todas las bases de datos disponibles.
SHOW TABLES: Muestra una lista de todas las tablas disponibles en una base de datos específica.
SHOW COLUMNS: Muestra una lista de todas las columnas disponibles en una tabla específica.
SHOW CREATE TABLE: Muestra el código de creación de una tabla específica.
SHOW CREATE DATABASE: Muestra el código de creación de una base de datos específica.
SHOW CREATE DATABASE: Muestra el código de creación de una base de datos específica.

Comandos de inyección SQL

LIKE: Busca una coincidencia en una cadena.
UNION: Combina los resultados de dos consultas SQL
IN: Busca una coincidencia en un conjunto de valores
BETWEEN: Busca una coincidencia dentro de un rango de valores
NULL: Busca una coincidencia con un valor NULL

Comandos de explotación

REVOKE: Retira privilegios a un usuario para acceder a una base de datos
DELETE: Elimina datos de una tabla
UPDATE: Actualiza datos existentes en una tabla
CREATE USER: Crea un nuevo usuario para acceder a una base de datos
GRANT: Otorga privilegios a un usuario para acceder a una base de datos

Conectar

# Local
mysql -u root # Connect to root without password
mysql -u root -p # A password will be asked (check someone)

# Remoto
mysql -h <Hostname> -u root
mysql -h <Hostname> -u root@localhost

Enumeracion

# Escanea para identificar los servicios que se están ejecutando y sus versiones.
nmap -sV -p 3306,33060,33061 <IP>

# Este módulo se utiliza para enumerar la versión de MySQL que se está ejecutando en un servidor MySQL.
msf> use auxiliary/scanner/mysql/mysql_version

# Este módulo se utiliza para extraer las contraseñas hash de un servidor MySQL que es vulnerable a la vulnerabilidad 
msf> use auxiliary/scanner/mysql/mysql_authbypass_hashdump

# Realiza una auditoría completa de un servidor MySQL
nmap -sV -p 3306 --script mysql-audit,mysql-databases,mysql-dump-hashes,mysql-empty-password,mysql-enum,mysql-info,mysql-query,mysql-users,mysql-variables,mysql-vuln-cve2012-2122 <IP>
auxiliary/scanner/mysql/mysql_file_enum

Recursos

Última actualización