LightweightHTB-WriteUp-ETHCOP

EthicalHCOP
5 min readMay 3, 2020

EthicalHCOP

Con una explotación inicial muy orientada al networking, Lightweight tiene componentes interesantes y algunos de ellos vistos muy comúnmente en máquinas de la vida real. Cada maquina es un mundo nuevo con cientos de cosas por aprender y Light no fue la excepción.

Reconocimiento y Escaneo

El resultado de nuestro típico escaneo NMAP nos revela la existencia de los puertos 22, 80 y 389, perteneciendo a respectivamente a los servicios de ssh, http y ldap.

Navegando en el sitio web, encontramos un mensaje que nos advierte que el sitio está protegido contra fuerza bruta.

Vemos en una de las páginas (Info) un mensaje muy importante que en resumen nos avisa que: “no podemos hacer fuerza bruta o seremos bloqueados por 5 minutos”

Otra página que nos avisa de cuáles IP han sido baneadas. Un comportamiento raro en esta página es que se tarda en cargar mucho más que las otras anteriores.

Y por ultimo una pagina que en resumen nos dice que podemos acceder mediante ssh con nuestra IP como usuario y contraseña, aparte que debemos de cambiar la contraseña lo más pronto ingresemos.

Ingresamos al sistema y nos encontramos en una carpeta raíz a la cual solo podemos acceder a nuestra carpeta de usuario.

En lo personal ejecute LinEnum para enumerar algo que me pueda ayudar a elevar privilegios.

El escaneo revela la existencia del programa “tcpdump” el cual podemos usar para ver qué está pasando en la comunicación tcp local de la máquina.

Explotación de Usuario.

Ejecutamos tcpdump leyendo el tráfico de la máquina local y guardando el resultado en un archivo pcap.

Generamos tráfico tcp en la máquina realizando un login al ssh y navegando en el sitio web.

Luego de navegar por los componentes del sitio y del login en ssh, paramos la captura de tcp y vemos que este ha capturado un total de 22 paquetes filtrados

Este archivo ha quedado en nuestra carpeta en el servidor lightweight, así que aprovechando el ssh usamos sftp para acceder y extraer el archivo.

El análisis de este archivo ha revelado varios protocolos, entre ellos algunos pertenecientes a LDAP en donde al ser leídos obtenemos un string de conexion al servidor, entre los datos de este string se encuentra un usuario y su contraseña.

Realizamos el logueo como el usuario y contraseña encontrada para obtener la bandera del usuario.

Explotación de Root.

Dentro de esta carpeta, existen otros archivos que no pueden ser leídos como lo son los pdf y un archivo 7z que tampoco puede ser abierto, así que los paso a la carpeta temporal y les asigno permisos 777, de esta manera puedo acceder de manera gráfica y descargar los archivos.

Al intentar abrir el archivo comprimido nos solicita una contraseña, así que buscando cómo abrirlo, encontré este sitio que me ayudó a encontrar la pass.

Descomprimimos el archivo y vemos que este contiene 5 archivos en su interior.

Estos archivos pertenecen a la página que encontramos en el puerto 80. Analizandolos detalladamente, se encuentra en el archivo status.php las credenciales de otro usuario en el sistema.

Uno de los métodos para elevación de privilegios, se basa en aprovechar las capabilities que tienen los usuarios y elevar la consola al administrador.

https://linux-audit.com/linux-capabilities-101/#what-are-linux-capabilities

https://medium.com/@int0x33/day-44-linux-capabilities-privilege-escalation-via-openssl-with-selinux-enabled-and-enforced-74d2bec02099

En esta máquina, aprovecharemos la capability openssl que tiene el usuario ldapuser1.

Siguiendo con las instrucciones del manual, creamos en la carpeta temporal un certificado ssl, nótese que el certificado no necesita datos específicos para ser creado.

Luego subimos un servidor localmente en la carpeta raíz implementando el certificado ssl anteriormente creado en algún puerto , en este caso es el mismo del ejemplo.

En otra consola utilizamos curl para acceder como administrador a la carpeta del root haciendo un llamado a la url con https.

En la terminal en la que subimos el servidor, podemos ver que se ha hecho una petición al archivo root.txt y ha sido aceptado.

Agradecimientos:

Sephiroth (67969)

ptesting (83555)

--

--