🟢EvilBox-One

Write-up de la máquina EvilBox-One de Proving Grounds #writeup #walkthrough

Enumeración

Servicios abiertos

Comenzamos realizando un escaneo rápido de los puertos que tiene abiertos la máquina víctima.

nmap -p- --open --min-rate 500 -Pn -n -vvv 192.168.147.212

Dos puertos abiertos, 22 y 80. Seguimos con el escaneo profundo de estos servicios.

nmap -p22,80 -Pn -n -sVC -vvv 192.168.147.212

Servicios abiertos:

  • Puerto 22 -> SSH -> OpenSSH 7.9

  • Puerto 80 -> HTTP -> Apache httpd 2.4.38

Enumeración Web

La máquina objetivo está ejecutando un servidor Web en el puerto 80. Vamos a enumerar su contenido.

Es una página por defecto de un servidor Apache. El siguiente paso será enumerar archivos y directorios interesantes del sitio Web.

feroxbuster -u http://192.168.147.212/ -s200,301 -x html,txt,php

Encontramos un archivo robots.txt y evil.php que pueden ser interesantes. Vamos a ver el contenido de ambos.

El archivo evil.php nos devuelve una página en blanco. Al haberse encontrado solamente un archivo, existe la posibilidad de que haya un parámetro que vuelva al archivo PHP vulnerable. Por lo tanto, en el próximo paso, se utilizará la técnica de fuzzing de parámetros con el fin de descubrir un parámetro válido para el archivo 'evil.php'.

ffuf -c -r -u 'http://192.168.147.212/secret/evil.php?FUZZ=/etc/passwd' -w /usr/share/seclists/Discovery/Web-Content/common.txt -fs 0

Hemos encontrado un parámetro "command". Vamos a ver si podemos extraer información haciendo uso del parámetro encontrado.

El sitio es vulnerable a LFI.

Explotación

En el archivo /etc/passwd, encontramos un nombre de usuario "mowree". Vamos a intentar leer algunos archivos de configuración predeterminados de la carpeta del usuario, teniendo en cuenta el nombre de usuario que hemos encontrado.

Tras una inspección más detallada, encontramos la clave SSH privada del usuario "mowree" ubicada en el directorio "/home/mowree/.ssh/id_rsa"

Vamos a copiar esta clave privada a nuestra máquina de ataque para tratar de descifrarla

A continuación, podemos usar johnpara descifrar la contraseña para el servicio SSH. Para ello, debemos hacer uso de la utilidad ssh2john.

Empezamos cambiando los permisos del archivo "hash "con el siguiente comando:

 chmod 600 hash

Ahora, ya podemos ejecutar la utilidad ssh2john.

 ssh2john hash > hash_john

El siguiente paso será descifrar la clave con "john".

john --wordlist=/home/elhackeretico/rockyou.txt hash_john

La contraseña para poder acceder al servicio SSH haciendo uso de la clave privada id_rsa para el usuario "mowree" es "unicorn". Vamos a comprobar si las credenciales son válidas.

Hemos obtenido acceso a la máquina víctima. Vamos a buscar la flag local.txt

Elevación de privilegios

En este momento, hemos logrado obtener acceso de usuario en la máquina de destino. Sin embargo, si queremos aumentar nuestros privilegios, necesitamos conocer detalles importantes como el sistema operativo que se está ejecutando, la versión del kernel y los privilegios de sudo. Para obtener esta información, podemos consultar la siguiente captura de pantalla, donde se muestran todos los comandos y su salida correspondiente.

Al ejecutar el comando, se obtiene información acerca del sistema operativo y la versión del kernel, aunque no se encontró ningún exploit local funcional para conseguir privilegios de root. Al revisar los permisos del archivo, se detectaron debilidades en los permisos del archivo /etc/passwd, los cuales se evidencian en la captura de pantalla que se adjunta.

En una fila de la archivo /etc/passwd, la letra "x" indica que el hash de la contraseña del usuario se encuentra almacenado en el /etc/shadow. Si se elimina la "x", se eliminará también la contraseña. Sin embargo, en este caso en particular, esta solución no fue efectiva. Por lo tanto, vamos a actualizar la entrada del usuario "root" con mi propia contraseña personalizada, "elhackeretico". La contraseña se crea de la siguiente manera:

openssl passwd -1

El siguiente paso será actualizar el archivo /etc/passwd utilizando "nano"

Una vez guardado el archivo /etc/passwd actualizado, ya podremos iniciar sesión con el usuario "root" y la nueva pass.

Buscamos la flag proof.txt

Y ya tendríamos la máquina EvilBox-One acabada.

Last updated