> For the complete documentation index, see [llms.txt](https://4lec4st.gitbook.io/4lec4st/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://4lec4st.gitbook.io/4lec4st/ejpt-notes/pruebas-de-penetracion-de-host-y-red/explotacion/windows/target-mysql-database-server.md).

# Target MySQL Database Server

## 🧪 Laboratorio Práctico

**Paso 1:** Abra el enlace del laboratorio para acceder a la máquina Kali.

<figure><img src="/files/dTQ83brg4xIDeUKvCJ7V" alt=""><figcaption></figcaption></figure>

**Paso 2:** Verifique si la máquina de destino es accesible:

**Dominio:**

```
ping -c 4 demo.ine.local
```

<figure><img src="/files/HKuOBoVDJBQrmk1rHkrq" alt=""><figcaption></figcaption></figure>

El objetivo es alcanzable.

**Paso 3:** Escaneo de puertos con Nmap

En este laboratorio, apuntaremos al puerto MySQL, por lo que podemos limitar nuestro escaneo de Nmap al puerto 3306.

Podemos identificar vulnerabilidades o configuraciones incorrectas en el puerto MySQL realizando un escaneo de scripts de Nmap con la opción predeterminada. Esto se puede hacer ejecutando el siguiente comando:

**Dominio:**

```
nmap -sV -sC -p 3306 demo.ine.local
```

Como se muestra en la siguiente captura de pantalla, el script Nmap predeterminado revela la versión específica de MySQL que se ejecuta en el destino.

<figure><img src="/files/PwDYGtdugQ6L3YNXhBkb" alt=""><figcaption></figcaption></figure>

**Paso 4:** Búsqueda de exploits con Searchsploit

Ahora que hemos identificado la versión específica de MySQL que se ejecuta en el objetivo, podemos usar una herramienta como Searchsploit para buscar exploits que afecten a esta versión específica de MySQL. Esto se puede hacer ejecutando el siguiente comando:

**Dominio:**

```
searchsploit MySQL 5.5
```

<figure><img src="/files/9sQhkga0kUwnUTDDouc0" alt=""><figcaption></figcaption></figure>

**Paso 5:** Fuerza bruta de MySQL

Podemos realizar un ataque de fuerza bruta en el servidor de base de datos MySQL para identificar credenciales legítimas que podamos usar para autenticarnos en el servidor y, en consecuencia, obtener el control de las bases de datos alojadas en el servidor.

Para realizar el ataque de fuerza bruta, podemos utilizar el módulo de Metasploit **auxiliar/scanner/mysql/mysql\_login .**

Para empezar, necesitaremos iniciar la consola de Metasploit Framework (msfconsole), esto se puede hacer ejecutando el siguiente comando:

**Dominio:**

```
msfconsole
```

Ahora podemos cargar el módulo ejecutando el siguiente comando:

**Dominio:**

```
use auxiliary/scanner/mysql/mysql_login
```

Tras cargar el módulo, debemos configurar sus opciones. Una de ellas es la dirección de destino. Esto se puede hacer ejecutando el siguiente comando:

**Dominio:**

```
set RHOSTS demo.ine.local
```

También necesitaremos configurar la lista de palabras para la fuerza bruta de la contraseña, esto se puede hacer ejecutando el siguiente comando:

**Dominio:**

```
set PASS_FILE /usr/share/wordlists/metasploit/unix_passwords.txt
```

<figure><img src="/files/9HxM63QAbmsKMkRxcIOk" alt=""><figcaption></figcaption></figure>

Después de configurar las opciones del módulo, podemos ejecutar el módulo:

**Dominio:**

```
run
```

Como se muestra en la siguiente captura de pantalla, el ataque de fuerza bruta revela que la contraseña de MySQL para el usuario **root** es **NULL** , lo que significa que podemos iniciar sesión en el servidor de base de datos MySQL con la cuenta de usuario root sin proporcionar una contraseña.

<figure><img src="/files/HJPZ6RGjLTSFIO990f2K" alt=""><figcaption></figcaption></figure>

**Paso 6:** Autenticación en el servidor de base de datos MySQL

Dado que hemos identificado la contraseña del usuario root para el servidor de base de datos MySQL, podemos autenticar de forma remota el servidor de base de datos MySQL ejecutando el siguiente comando:

**Dominio:**

```
mysql -u root -p -h demo.ine.local
```

Como se muestra en la siguiente captura de pantalla, se le pedirá que ingrese la contraseña del usuario **root** , sin embargo, no es necesario que ingrese ninguna contraseña.

<figure><img src="/files/ewJtm72IPpubySjF8Oeh" alt=""><figcaption></figcaption></figure>

Tras autenticarse correctamente con el servidor de bases de datos MySQL, se le proporcionará la consola MySQL. Podemos usar nuestro acceso para visualizar las bases de datos alojadas y volcar los datos que contienen.

Podemos mostrar la lista de bases de datos alojadas en el servidor de base de datos MySQL ejecutando el siguiente comando:

**Dominio:**

```
show databases;
```

Como se muestra en la siguiente captura de pantalla, el servidor de bases de datos MySQL aloja cinco bases de datos. La base de datos **de WordPress** parece interesante.

<figure><img src="/files/Qm6tPuAnFdvmUK3zaTSw" alt=""><figcaption></figcaption></figure>

Podemos seleccionar la base de datos **de wordpress** ejecutando el siguiente comando:

**Dominio:**

```
use wordpress;
```

Después de seleccionar la base de datos **de wordpress** , podemos mostrar las tablas almacenadas dentro de la base de datos ejecutando el siguiente comando:

**Dominio:**

```
show tables;
```

<figure><img src="/files/Opdjw4P0FMWHrFjVNB5W" alt=""><figcaption></figcaption></figure>

Podemos ver las distintas cuentas de usuario de WordPress en la tabla **wp\_users** ejecutando el siguiente comando:

**Dominio:**

```
select * from wp_users;
```

<figure><img src="/files/3lxHq3CYkDCDAXwkGdci" alt=""><figcaption></figcaption></figure>

Desde aquí, podemos copiar los hashes de contraseña que se muestran en la columna **user\_pass** . También podemos cambiar la contraseña del usuario administrador para poder iniciar sesión en el sitio de WordPress alojado en el servidor WAMP que identificamos en un laboratorio anterior.

Esto se puede hacer ejecutando el siguiente comando:

**Dominio:**

```
UPDATE wp_users SET user_pass = MD5('password123') WHERE user_login = 'admin';
```

<figure><img src="/files/gp1Gj1ItXLe8Ab99bMUW" alt=""><figcaption></figcaption></figure>

Ahora podemos navegar al sitio de WordPress a través de un navegador accediendo a la siguiente URL:

**URL:** <http://demo.ine.local:8585/wordpress/wp-admin>

Ahora se le pedirá que inicie sesión, puede iniciar sesión con el nombre de usuario **admin** y la contraseña **password123** como se muestra en la siguiente captura de pantalla.

<figure><img src="/files/z6AZ4IVScUrza7LjP3tK" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/1JduwonfLuxz9478bXFK" alt=""><figcaption></figcaption></figure>

Hemos podido obtener acceso con éxito al servidor de base de datos MySQL y modificar la contraseña de la cuenta de usuario administrador de WordPress, obteniendo así control administrativo sobre el sitio de WordPress.

## Conclusión

En este laboratorio, exploramos el proceso de realizar un ataque de fuerza bruta en el servidor de base de datos MySQL, autenticándonos en el servidor de base de datos MySQL de forma remota y modificando la contraseña de la cuenta de usuario administrador de WordPress para obtener control administrativo sobre el sitio de WordPress.
