Delivery Writeup

FácilLinux
Las flags que resuelven este reto se encuentran protegidas. Comparte el artículo en redes sociales para desbloquearlas.
$User Flag
9c6ff9ad...
#Root Flag
bfc2c82d...

En este writeup vamos a ver cómo resolver la máquina Delivery de la plataforma de Hack the Box.

Conexión

Para empezar a resolver esta máquina tenemos que conectar nuestra máquina de ataque a la VPN de Hack The Box:

$ openvpn gorkamu-htb.ovpn

Enumeración

Si hacemos un ping a la IP vemos que tiene un TTL de 63 por lo que se trata de una máquina Linux.

Vamos a enumerar los puertos haciendo uso del comando nmap:

$ nmap -n -p- -sC -sV -Pn -v 10.10.10.222 PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0) | ssh-hostkey: | 2048 9c:40:fa:85:9b:01:ac:ac:0e:bc:0c:19:51:8a:ee:27 (RSA) | 256 5a:0c:c0:3b:9b:76:55:2e:6e:c4:f4:b9:5d:76:17:09 (ECDSA) |_ 256 b7:9d:f7:48:9d:a2:f2:76:30:fd:42:d3:35:3a:80:8c (ED25519) 80/tcp open http nginx 1.14.2 | http-methods: |_ Supported Methods: GET HEAD |_http-server-header: nginx/1.14.2 |_http-title: Welcome 8065/tcp open unknown Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Vemos que tiene el puerto 22, 80 y 8065 abiertos. Los dos primeros puertos son muy comunes, de hecho forman parte de los well-known ports y se trata de SSH y del protocolo HTTP. Lo raro aquí es el puerto 8065.

Si entramos al puerto 8065 desde el navegador vemos un login.

Login Mattermost
Login Mattermost

Navegando por la web del puerto 80 encontramos la url helpdesk.delivery.htb así que vamos a añadirla al fichero /etc/hosts para ver qué es lo que nos resuelve.

10.10.10.222 delivery.htb 10.10.10.222 helpdesk.delivery.htb

Nos dirigimos a la web de helpdesk y vamos a crear un ticket nuevo con cualquier asunto. Cuando enviemos el ticket llegaremos a esta página donde se nos da un correo temporal y un número de ticket:

helpdesk
helpdesk

Con este email vamos a ir a la url de Mattermost y nos registramos: http://10.10.10.222:8065/signup_email

Nos van a enviar un correo de confirmación. De vuelta en helpdesk abrimos para revisar nuestro ticket y ya tendremos ese correo de confirmación:

tiket-helpdesk
tiket-helpdesk

Una vez nos logueemos en Mattermost veremos una aplicación de mensajería. En el canal interno vemos la siguiente conversación:

credenciales
credenciales

Ahí nos están dando las siguientes credenciales para acceder por ssh al servidor:

  • U: maildeliverer
  • P: Youve_G0t_Mail!

Capturar User Flag

Con estas credenciales podemos probarlas y efectivamente comprobar que entramos sin problemas mediante SSH por el puerto 22:

ssh credenciales
ssh credenciales

Y directamente en la $HOME de este usuario tenemos el fichero user.txt con la USER Flag.

Capturar Root Flag

Si nos vamos al directorio /opt/mattermost/config veremos el fichero config.json y dentro de él la siguiente línea:

"DataSource": "mmuser:Crack_The_MM_Admin_PW@tcp(127.0.0.1:3306)/mattermost?charset=utf8mb4,utf8\u0026readTimeout=30s\u0026writeTimeout=30s",

Aquí si nos fijamos bien en este DSN nos están dando las credenciales para conectarnos a MySQL.

  • U: mmuser
  • P: Crack_The_MM_Admin_PW

Una vez dentro de mysql en la base de datos mattermost podemos ver la tabla Users.

Podemos conseguir la contraseña de root desde esta tabla:

MariaDB [mattermost]> select Password from Users where Username = 'root'; +--------------------------------------------------------------+ | Password | +--------------------------------------------------------------+ | $2a$10$VM6EeymRxJ29r8Wjkr8Dtev0O.1STWb4.4ScG.anuu7v0EFJwgjjO | +--------------------------------------------------------------+ 1 row in set (0.000 sec)

En el chat de Mattermost decían que la contraseña de root se podía romper con reglas de hashcat.

Vamos a descargarnos el siguiente repositorio:

$ git clone https://github.com/stealthsploit/Optimised-hashcat-Rule.git

Nos metemos en el directorio recién clonado y vamos a generarnos el diccionario:

$ hashcat -r OneRuleToRuleThemAll.rule --stdout > wordlist.txt

Con el diccionario ya creado vamos a crackear la contraseña con John the Ripper:

$ john --wordlist=wordlists.txt hash

Al rato conseguimos la contraseña para root:

PleaseSubscribe!21

Nos logeamos por ssh y vemos el fichero /root/root.txt para capturar la Root Flag.

También te puede interesar

Doctor Writeup

Doctor Writeup

Knife Writeup

Knife Writeup

Kotarak Writeup

Kotarak Writeup