🟢Antique
Write-up de la máquina Antique de HackTheBox #writeup #walkthrough
Enumeración
Enumeración de puertos
Comenzamos la resolución de la máquina "Antique", enumerando que puertos tiene abiertos el sistema objetivo.
Un único puerto abierto, 23 telnet. Vamos a hacer la enumeración detallada de este servicio.
VERSIONES
Puerto 23 -> telnet -> ?
La enumeración de puertos no nos aporta información que nos permita orientarnos en la resolución de la máquina. Podemos realizar la enumeración de puertos UDP por si nos aportase información relevante.
El sistema objetivo tiene el puerto 161 UDP abierto. Esto puede ser muy útil.
Telnet
En la enumeración inicial determinábamos que el puerto 23 TCP estaba abierto en el objetivo. Vamos a comprobar si podemos acceder a información relevante.
Parece la conexión de un equipo HP, posiblemente una impresora. Se nos solicita una contraseña de la que no disponemos.
SNMP
Tras determinar en la enumeración inicial que existe un puerto 161 UDP (servicio snmp), vamos a tratar de utilizarlo para extraer información relevante del sistema. Buscando información relacionada con la información que tenemos, encontramos el siguiente artículo. Lo hacemos de la siguiente forma.
El artículo que nombrábamos anteriormente hablaba de una filtración de credenciales en formato hexadecimal. Vamos a tratar de descifrar la cadena hexadecimal que hemos encontrado anteriormente.
Utilizando la herramienta CyberChef, desciframos la cadena hexadecimal y encontramos la contraseña "P@ssw0rd@123!!123". Vamos a utilizar está password en la conexión telnet donde se solicitó la contraseña anteriormente.
Explotación
Vamos a comprobar si la contraseña que obtuvimos durante la fase de enumeración es válida para el servicio telnet que se está ejecutando en el sistema.
Como podemos comprobar, la contraseña es válida. Parece que una de las cosas que podemos hacer es ejecutar comandos desde la terminal de telnet. Vamos a tratar de aprovechar esto para ejecutar una reverse shell hacia nuestra máquina de ataque. Ejecutamos el siguiente comando:
Y por otro lado, configuramos un oyente nc en el puerto 1234.
Obtenemos acceso al sistema como usuario "lp". El siguiente paso será buscar la flag de usuario de bajos privilegios.
Elevación de privilegios
Una vez obtenido el acceso al sistema objetivo, el siguiente paso será encontrar posibles vectores que nos permitan obtener privilegios elevados en el sistema. Comenzamos enumerando que puede ejecutar el usuario lp como root sin necesidad de contraseña.
No disponemos de contraseña para el usuario lp. Otra cosa que podemos enumerar son lo permisos SUID.
Ninguno de los binarios con permisos SUID nos va a permitir elevar privilegios. Continuamos enumerando las capabilities.
Nada interesante. Otra cosa que podemos hacer es enumerar los servicios que se están ejecutando de forma interna en la máquina objetivo.
Vemos un puerto interno 631. Veamos que se está ejecutando en este servicio.
Encontramos una versión para el servicio que se está ejecutando de forma interna en el objetivo. Este servicio no es accesible desde nuestra máquina de ataque, así que vamos a reenviar este puerto a nuestra máquina utilizando la herramienta Chisel. Instalamos Chisel en nuestra máquina de ataque desde los repositorios y descargamos el agent desde Github. Por un lado, ejecutamos Chisel en nuestra máquina de ataque:
Y por otro enviamos el agent a la máquina víctima utilizando un servidor HTTP Python.
Damos permisos de ejecución:
Y ejecutamos:
Ahora recibiremos la conexión en nuestra máquina de ataque:
Y podremos conectarnos al servicio interno desde nuestro equipo de ataque.
Lo siguiente que vamos a hacer es buscar vulnerabilidades para la versión que hemos encontrado. Encontramos la siguiente información relevante:
Aunque es un script de post-explotación de la herramienta Metasploit, nos permite comprender como funciona la vulnerabilidad para esta versión. Este módulo muestra la localización del log de error. Por otro lado, importante también, los usuarios que pertenecen al grupo lpadmin pueden modificar la ubicación con el comando cupsctl. Comenzamos comprobando a que pertenece el usuario lp.
Sabiendo esto, vamos a modificar la ruta a la que queremos acceder ejecutando el siguiente comando en la máquina víctima.
En el navegador de nuestra máquina de ataque y accedemos a la siguiente URL.
Encontramos la flag root.txt y finalizamos la resolución de la máquina Antique.
Last updated