Spectra - HackTheBox

Inicie con un escaneo de Nmap para ver que puertos tiene abiertos la máquina.

┌─[root@parrot]─[/home/wackyhacker/Desktop]
└──╼ nmap -sS -p- --open --min-rate=5000 -Pn -n 10.10.10.229 -oG allPorts
Starting Nmap 7.80 ( https://nmap.org ) at 2021-06-27 00:02 CEST
Nmap scan report for 10.10.10.229
Host is up (0.052s latency).
Not shown: 65532 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
3306/tcp open  mysql

Nmap done: 1 IP address (1 host up) scanned in 11.34 seconds

Efectúe otro escaneo para verificar el servicio de cada puerto.

┌─[root@parrot]─[/home/wackyhacker/Desktop]
└──╼ nmap -sC -sV -p22,80,3306 10.10.10.229 -oN targeted                                  
Starting Nmap 7.80 ( https://nmap.org ) at 2021-06-27 00:04 CEST
Nmap scan report for spectra.htb (10.10.10.229)
Host is up (0.057s latency).

PORT     STATE SERVICE VERSION
22/tcp   open  ssh     OpenSSH 8.1 (protocol 2.0)
| ssh-hostkey: 
|_  4096 52:47:de:5c:37:4f:29:0e:8e:1d:88:6e:f9:23:4d:5a (RSA)
80/tcp   open  http    nginx 1.17.4
|_http-server-header: nginx/1.17.4
|_http-title: Site doesn't have a title (text/html).
3306/tcp open  mysql   MySQL (unauthorized)

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 14.36 seconds

Comence mirando el servidor Web ya que no podia hacer mucho en los puertos 22 y 3306.

Captura de pantalla (601)

Le di click a una opcion y al parecer se estaba aplicando Virtual Hosting.

Captura de pantalla (603)

También verifiqué el código fuente para ver si había más de un dominio.

Captura de pantalla (604)

Copie el dominio y lo pegue en el /etc/hosts para que el host apunte al dominio y poder ver lo que tiene realmente la WEB.

Captura de pantalla (605)

Estaba tratando con un WordPress.

Captura de pantalla (606)

Verifique si tenía el panel de inicio de sesión y si lo tenía.

Captura de pantalla (612)

En este punto pensé en volver a la web del principio para hacer una mejor enumeración.

Captura de pantalla (603) (1)

A primera vista no se ve nada relevante.

Captura de pantalla (603) (1)

Pero si nos fijamos en la url parece que hay capacidad de “directory listing”, apunte en “testing” y efectivamente podía listar archivos del sistema.

Captura de pantalla (609)

Había el archivo de configuración de WordPress que suele tener las contraseñas de acceso, lo abrí.

Captura de pantalla (610)

Parece que no hay nada, pero si miramos el código fuente se puede apreciar su contenido.

Captura de pantalla (611)

Probé a autenticarme con el nombre de usuario y contraseña que me daban, pero no hubo suerte.

Captura de pantalla (612) (1)

Al probar con el usuario administrador si me autentico.

Captura de pantalla (614)

Ahora solo faltaba la intrusión, pensé en modificar la plantilla de error 404, pero no me dejo.

Captura de pantalla (616)

Cambie de tema y ahí si me funciono.

Captura de pantalla (619)

Pero no me funcionaba esa “reverse shell”, tuve que cambiarla, probé la de Pentestmonkey y si me funciono, accedí a “http://10.10.10.239/main/wp-content/themes/twentynineteen/404.php” y recibí el Shell inverso por el puerto 443, hice un tratamiento de la TTY para manejarme más cómodamente.

Captura de pantalla (620)

Intente visualizar la “flag” del usuario pero no tenía permisos, al parecer me tenía que convertir en el usuario katie.

Captura de pantalla (622)

Tras una pequeña enumeración del sistema encontré un script en “/opt”.

Captura de pantalla (623)

Vi que es lo que hacía y me encontré una ruta que tenía alojado un archivo llamado “passwd”, lo visualice y me encontré una cadena de texto.

Captura de pantalla (624)

La máquina tenía SSH habilitado, por lo que probé a autenticarme y hubo suerte.

Captura de pantalla (625)


ESCALADA DE PRIVILEGIOS

Ahora si pude visualizar la “flag” del usuario, vi si podía ejecutar algo como el usuario ROOT con el comando sudo -l y tenía la capacidad de ejecutar intictl.

Captura de pantalla (627)

Initctl nos permite administrar los trabajos de los usuarios, pensé en ejecutar el binario con sudo, initctl funciona con los archivos de configuración del sevicio en /etc/init, por lo que modifique uno de esos servicios para que le asigne una bash con privilegios SUID.

Captura de pantalla (628)

Guarde el archivo, inicie el servicio, la bash se me puso como SUID, por lo que ejecute bash -p y conseguí acceso como ROOT

Captura de pantalla (630)

Leave a comment