Resolución de OpenAdmin – Hackthebox Writeup – Walktrough

Comparte este post en tus redes sociales

Enumeración

Para empezar, enumeramos los puertos y servicios de la máquina con nmap.

nmap -sC -sV -o nmapReport 10.10.10.171

El resultado nos muestra el puerto 22 con SSH y el puerto 80 con HTTP, desde un navegador podemos ver un sitio por defecto de Apache2.

Ahora realizaremos un escaneo de contenido con Dirbuster, en las siguientes imagenes veremos la configuración y el resultado del programa. Tambien la ruta de nuestro wordlist.

/usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt

El resultado nos muestra diferentes carpetas, son diferentes sitios web. Nos concentraremos en la carpeta “ona”. Entrando desde el navegador nos muestra lo siguiente:

La imagen anterior nos muestra un panel de control de OpenNetAdmin, un sistema de administración de direcciones IP. La versión que esta usando es la “v18.1.1”

Después de explorar algunos enlaces y el código fuente, sin ver nada interesante. Encontramos un exploit de ejecución remota de código (RCE) en

https://www.exploit-db.com/exploits/47691

Ingresando al segundo enlace podemos ver el código del exploit, lo copiamos con la extensión .sh y lo ejecutamos en nuestra terminal de la siguiente manera

bash exploitONA.sh http://10.10.10.171/ona/

Estamos ejecutando comandos con el usuario www-data como se puede ver en la imagen anterior. Ahora volvemos a enumerar para encontrar algún camino que nos lleve al usuario root.

Para tener una lista de usuarios

cat /etc/passwd | cut -d: -f1

Encontramos dos nombres interesantes: jimmy y joanna. Después de unos minutos de explorar el directorio ona, encontré un archivo PHP interesante llamado database_settings.inc.php que contiene credenciales de acceso a una base de datos.

Probamos la contraseña n1nj4W4rri0R! con el usuario jimmy mediante SSH. Logramos ingresar, sin embargo no tenemos ningún flag. Nuevamente volvemos a buscar pistas.

El directorio www nos muestra tres carpetas, la carpeta internal me parece interesante.

ls -alh /var/www/

Listando el directorio internal encontramos unos archivos PHP.

ls -alh

Visualizando el archivo main.php encontramos la ruta a una clave privada. No podemos acceder porque pertenece al usuario joanna.

cat main.php

Buscando en la configuración de apache2, en el directorio sites-enabled descubrimos un archivo: internal.conf

cd /etc/apache2/sites-enables
ls
cat internal.conf

La imagen anterior nos muestra un host virtual corriendo en el puerto 52846 con la ruta /var/www/internal Donde encontramos nuestra nuestra clave privada. Usaremos el comando curl para ver que existe en esa ruta.

curl http://127.0.0.1:52846/main.php

Como resultado obtenemos una clave privada, sin embargo la misma se encuentra protegida por contraseña.

Por ello procederemos a convertir la llave RSA cifrada a un formato que podremos crackear con John.

python /usr/share/john/ssh2john.py id_rsa>id_rsa.hash
cat id_rsa.hash

Obtendremos lo siguiente:

Ahora utilizamos john para obtener la contraseña de la llave privada.

john --wordlist=/usr/share/wordlists/rockyou.txt id_rsa.hash

Resultado:

John descifró la contraseña como bloodninjas. Ahora procedemos a ingresar con la llave privada de joanna.

ssh -i id_rsa [email protected]

Es posible que la terminal nos arroje una advertencia.

Si esto pasa, se soluciona con el siguiente comando

sudo chmod 600 id_rsa

Volvemos a conectarnos con SHH y la frase bloodninjas y lograremos ingresar con el usuario joanna.

Y conseguimos el user.txt

ls
cat user.txt

Llegando a root

Bien, ya conseguimos una flag, nos falta conseguir root. Ejecutaremos el siguiente comando:

sudo -l

Como podemos observar en la imagen anterior el comando sudo -l nos muestra los comandos que joanna puede ejecutar como root. De esta forma y ayudándonos de GTFOBins conseguiremos shell de superusuario.

Primero escribimos el siguiente comando

sudo /bin/nano /opt/priv

En el link de GTFO podemos obervar las siguientes instrucciones para generar un shell interactivo

Utilizaré la opción (a), desde ^R^X que serian las teclas ctrl+R y las ctrl+X y finalmente reset; sh 1>&0 2>&0 como lo indica la imagen anterior

Ctrl + R
Ctrl + X
reset; sh 1>&0 2>&0

Finalmente llegamos al shell de superusuairo e imprimimos la flag de root.

whoami
cat /root/root.txt


Comparte este post en tus redes sociales