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.
Le di click a una opcion y al parecer se estaba aplicando Virtual Hosting.
También verifiqué el código fuente para ver si había más de un dominio.
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.
Estaba tratando con un WordPress.
Verifique si tenía el panel de inicio de sesión y si lo tenía.
En este punto pensé en volver a la web del principio para hacer una mejor enumeración.
A primera vista no se ve nada relevante.
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.
Había el archivo de configuración de WordPress que suele tener las contraseñas de acceso, lo abrí.
Parece que no hay nada, pero si miramos el código fuente se puede apreciar su contenido.
Probé a autenticarme con el nombre de usuario y contraseña que me daban, pero no hubo suerte.
Al probar con el usuario administrador si me autentico.
Ahora solo faltaba la intrusión, pensé en modificar la plantilla de error 404, pero no me dejo.
Cambie de tema y ahí si me funciono.
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.
Intente visualizar la “flag” del usuario pero no tenía permisos, al parecer me tenía que convertir en el usuario katie.
Tras una pequeña enumeración del sistema encontré un script en “/opt”.
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.
La máquina tenía SSH habilitado, por lo que probé a autenticarme y hubo suerte.
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.
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.
Guarde el archivo, inicie el servicio, la bash se me puso como SUID, por lo que ejecute bash -p
y conseguí acceso como ROOT
Leave a comment