Sequel
Created by 0xnotkyo

hackthebox.com - © HACKTHEBOX

Os: Linux
Difficulty: Very Easy
0. Introducción
Sequel es una de las máquinas de Starting Point en HackTheBox. Es una máquina Linux que está relacionada con SQL y base de datos. Además, durante la explotación de la máquina tendremos que ir respondiendo a preguntas que tienen la función de guiar en la resolución de estas máquinas.

1. Ping
Para comenzar, hacemos ping a la dirección IP del objetivo para verificar si nuestros paquetes llegan a su destino.
Como estamos recibiendo paquetes desde el ordenador de destino, sabemos que la conexión está establecida correctamente.
TTL = 63
→ Este valor (cercano a 64) indica que nos encontramos ante una máquina Linux.
💡 Por defecto valores de TTL en torno a 64 indica que la máquina es Linux mientras que valores de 128 indicaría que la máquina es Windows

1. Reconocimiento con NMAP
Ejecutaremos la instrucción básica de reconocimiento
🔴🟡🟢
nmap -p- -sS --min-rate 5000 -n -Pn -vvv --open 10.129.176.26 -oG allPorts
Podemos ver que el puerto 3306/tcp está abierto y ejecutando el servicio mysql.
Puerto 3306 = mysql
→ Es el puerto predeterminado para las conexiones MySQL y MariaDB. Se utiliza para la comunicación entre el cliente y el servidor de base de datos.

3. Puertos abiertos (versiones)
Sobre los puertos abiertos detectados en la máquina víctima, ejecutaremos un escaneo con Nmap enfocado a identificar las versiones de los servicios que se están ejecutando en ellos.
🔴🟡🟢
nmap -scV -p3306 10.129.176.26 -oN targeted
El resultado del comando ejecutado sería el siguiente:
Este escaneo ha aportado información sustanciosa para la consecución de la máquina:
5.5.5-10.3.27-MariaDB-0+deb10u1
→ Esta seria la versión de la base de datos de la máquina víctima. Lo tendremos en cuenta más adelante tanto para la resolución de las preguntas como en la búsqueda de posibles vulnerabilidades.
💡 Para poder interactuar con la base de datos de la máquina víctima tendremos que tener instalado mysql o mariadb. En caso de no tenerlo instalado, podremos hacerlo ejecutando: sudo apt update && sudo apt install mysql*
. Una vez instalado comprobaremos que está operativo mirando la ayuda con un mysql --help
.

A continuación, comenzaremos a responder las preguntas que nos indica la plataforma:
Task 1:
During our scan, which port do we find serving MySQL?Which TCP port is open on the machine?
3306
Task 2:
What community-developed MySQL version is the target running?
MariaDB

4. Intrusión
Sabiendo que la máquina víctima tiene el servicio mysql trataremos de conectarnos a él. Para ello ejecutaremos:
🔴🟡🟢
mysql -h 10.129.176.26 -u root
-h
Especifica la ip de la máquina víctima a la cuál nos queremos conectar.
-u
Especifica el usuario con el que nos queremos conectar.
Usaremos el usuario "root" con el objetivo de conectarnos como usuario privilegiado en la base de datos y sin proporcionar contraseña. El resultado del comando ejecutado sería el siguiente:
Como podemos ver, estamos conectados. A partir de ahora vamos a operar dentro de MySQL a través de parámetros.
Es importante no olvidar el simbolo ;
al final de todas las queries SQL que ejecutemos.
Listamos la base de datos disponibles en el servidor usando show databases;
De entre todas las disponibles nos llama la atención la que se llama htb por lo que nos conectaremos haciendo uso del comando: use htb;
Listamos las tablas disponibles en htb con: show tables; y observamos una tabla users que nos llama la atención.
Listamos el contenido de users con: select * from users; y tenemos una lista de nombre de usuarios y su email, en principio ni rastro de la flag.
Listamos ahora el contenido de la otra tabla, la config con select * from config; y ahí tenemos la flag.

Ya tenemos toda la información necesaria para completar el resto de preguntas:
Task 3:
When using the MySQL command line client, what switch do we need to use in order to specify a login username?
-u
Task 4:
Which username allows us to log into this MariaDB instance without providing a password?
root
Task 5:
In SQL, what symbol can we use to specify within the query that we want to display everything inside a table?
*
Task 6:
In SQL, what symbol do we need to end each query with?
;
Task 7:
There are three databases in this MySQL instance that are common across all MySQL instances. What is the name of the fourth that's unique to this host?
htb
Como podemos ver, ¡hemos capturado la bandera para esta máquina!
~Happy Hacking
Última actualización