HTB — Admirer

CrhystamiL
4 min readNov 15, 2020

Sigamos con los retos.

Primero iniciamos con un reconocimiento de puertos, para saber que servicios tiene habilitado el host remoto, de esta forma sabremos por donde empezar.

nmap -sC -sV -Pn 10.10.10.187 -oN admirer.nmap

Tenemos 3 puertos abiertos, iniciemos con el 80 ya que encontramos un directorio des-habilitado en robots.txt

Al revisar el directorio no tenemos ninguna información que nos pueda ayudar, entonces toca buscar directorios y archivos con alguna herramienta como WFUZZ, DIRB, etc. Pero después de un rato no se encontró nada, la otra opción es buscar archivos con diferentes extensiones (txt, php, bk. Al ser un servidor apache imagine que había un portal en php), después de otro buen rato buscando se encontró luz al final del túnel.

El archivo credentials.txt fue muy interesante, ahora usemos lo encontrado, primero en FTP.

Al ingresar por FTP con las credenciales pude observar el archivo html.tar, lo descargue y entre su contenido se tenia los archivos utilizados por el portal.

Buscando la carpeta utility-script en el portal solo mostraba el funcionamiento de algunos archivo que no era útil para seguir avanzando.

Tanto resolver CTF’s y retos en HTB siempre nos dejan la tarea para seguir fuzzeando archivos. Bueno seguimos buscando y nos encontramos con un archivo muy interesante “adminer.php

Fue gracioso encontrar adminer.php ya que el reto es adminer. xD

Con esto y las credenciales encontradas anteriormente creí que ya tenia acceso directo, pero resulta que no fue tan fácil.

Buscando vulnerabilidades relacionadas a adminer pude encontrar una vulnerabilidad interesante.

Después de leer el articulo me puse a configurar MariaDB en mi VM con kali.

Una vez configurado probemos todo lo explicado en el articulo.

Al inicio la conexión no fue exitosa, olvide reiniciar el servicio de mysql para aplicar los cambios y pueda aceptar conexiones externas.

Una vez realizada la conexión solo era necesario buscar el archivo adecuado que nos entregue información. Como es un sistema basado en linux, empece buscando en la ruta “/var/www/html/ “.

Una vez ejecutado la sentencia SQL el mejor método de poder capturar los datos es utilizar Wireshark, debemos capturar la información del puerto 3306.

Con las credenciales obtenidas probamos si nos podemos conectar por SSH y por suerte ya tenemos acceso.

Ejecutamos un “ sudo -l “ que nos listara los comandos o permisos que tenemos para ejecutar.

Analizando el archivo admin_tasks.sh no tenia idea de como continuar, así que me puse a buscar las opciones de como escalar privilegios a través de bash y python. Después de una larga búsqueda de 3 días encontré el siguiente articulo.

El articulo es muy interesante y explica como realizar un Library Hijacking. Si seguimos los pasos del articulo vemos que se ejecuta el archivo backup.py

cat /opt/scripts/admin_tasks.sh

Dentro del archivo backup.py hace uso de la libreria shutil del método, al inicio no funciono así que no olvidar poner los parámetros que recibidos por la función (a,b,c). (Nota: la shell que utilicen debe importar librerías que existan en el host)

La shel utilizada esta disponible en el mismo articulo.

Empezamos a realizar el python Hijacking pero antes debemos poner el PYTHONPATH para que nuestro script de backup pueda llamar a la librería que creamos. (estamos usando una BIND Shell)

Una vez ejecutado el script nos conectamos al puerto 31337 y llegamos a obtener una bind shell con permisos de root.

Es un reto de nivel bajo, pero me gusto mucho la complejidad espero que este articulo les sirva como guía y sigan su camino de juaker.

Happy Hacking.

--

--

CrhystamiL

CEH, CyberSecurity Researcher,Ethical Hacker, GNU/Linux Lover.