Introducción
CTF Apocalyst de Hack The Box. Para solucionar este CTF, debemos crear una lista de palabras para encontrar un archivo de imagen específico en el sitio y luego extraer otra lista de esa imagen usando StegHide. Esa lista contiene la contraseña del usuario de WordPress, que da acceso al panel de administración y, por lo tanto, a la ejecución. Para rootear, encontraré un archivo passwd grabable y agregaré un usuario root.
Enumeración
NMAP
Como siempre, comenzamos realizando un escaneo de los servicios abiertos en el target.
Descubrimientos interesantes:
- Puerto 22: SSH OpenSSH 7.2
- Puerto 80: HTTP Apache 2.4.18 ejecutando WordPress 4.8
Añadimos el dominio apocalyst.htb al archivo /etc/hosts.
WPScan
Como estamos ante un CMS WordPress, vamos a escanarlo con wpscan para ver qué información tenemos disponible.
Después de ejecutar el script la información más importante que hemos encontrado es un nombre posible de usuario.
falaraki es el nombre de usuario encontrado.
Enumeración de directorios
Como tenemos un servidor web, vamos a realizar una enumeración de directorios por si hubiese información de interés. Al mismo tiempo vamos a abrir el puerto 80 en el navegador. Para la enumeración de directorios vamos a utilizar la herramienta ffuf.
Además de múltiples endpoints que redireccionaban a la misma imagen.
Vamos a crear una wordlist específica para esta web con la herramienta cewl.
Obtenemos múltiples directorios que devuelven código 200. De entre todos estos endpoinsts, destaca /Rightiousness/ con una longitud diferente a pesar de que todas las páginas en list.txt tienen la misma imagen.
Esteganografía
Descargamos la imagen contenida.
Comenzamos extrayendo los metadatos de la imagen.
Pero no contiene información interesante.
Ejecutamos steghide sin password. Como resultado tenemos una lista de palabras que pueden ser interesantes.
Enumeración de contraseñas WP
Vamos a intentar buscar la contraseña de usuario para WP. Para ello, utilizamos el nombre de usuario encontrado anteriormente y hacemos fuerza bruta con wpscan sobre wp-login utilizando la lista de palabras list.txt que extrajimos haciendo esteganografía.
Después de ejecutar wpscan, tenemos un posible par usuario:contraseña
Elevación de privilegios
Reverse shell
Con el usuario que tenemos vamos a logearnos en http://apocalyst.htb/wp-login.php . Accedemos al panel de control de WP.
Nos desplazamos a http://apocalyst.htb/wp-admin/themes.php y vemos que el tema activado es Twenty Seventeen. Nos desplazamos al editor y editamos el 404.php para añadir la reverse Shell.
La reverse que vamos a utilizar es esta de Pentest Monkey.
Guardamos la modificación y habilitamos un oyente en la máquina atacante.
Ejecutamos http://apocalyst.htb/wp-content/themes/twentyseventeen/404.php y ya debería haber conexión entre la máquina atacante y el objetivo.
Una vez establecemos conexión, nos dirigimos al directorio donde se ejecuta WP, /var/www/html/. Una vez allí, buscamos el directorio del dominio objetivo y vemos que archivos contiene.
Dentro de este directorio vemos archivos interesantes como wp-config.php Veamos su contenido.
Tenemos lo que parecen ser credenciales para una base de datos MySQL. Vamos a comprobarlo.
Pero esto parece ser un agujero de conejo. Intentamos decodificar el user_pass tanto con hascat como con John, pero no es posible.
Flag user.txt
En este punto, vamos a dirigirnos al directorio de usuario para ver qué información contiene.
Dentro del directorio del usuario obtenemos la flag user.txt.
Flag root.txt
Veamos los archivos ocultos dentro del directorio.
Tenemos un archivo llamado .secret, que parece tener algunos datos codificados en base64:
Aprovechando el usuario falaraki y la contraseña obtenida, nos conectamos a la máquina víctima con este usuario.
Una vez llegado a este punto, vamos a subir Linpeas.sh a la máquina víctima. Para ello habilitamos un servidor con Python.
Y ejecutamos Linpeas en la máquina víctima.
El archivo /etc/passwd es editable. Posible vector de elevación de privilegios. Vamos a intentar la elevación de privilegios por este vector.
Creamos un usuario con privilegios root y lo añadimos al archivo /etc/passwd.
Tenemos privilegios root
Buscamos la flag root.txt
Y finalizamos el CTF.
No responses yet