HTB - Codify
https://app.hackthebox.com/machines/Codify
https://app.hackthebox.com/machines/Codify
Nombre de la Máquina: Codify
IP de la Máquina: 10.10.11.239
Sistema Operativo: Linux
Dificultad: Easy
Fecha de Publicación: 04 Nov 2023
Establecer el objetivo
Primero, establecemos el objetivo utilizando el comando settarget
con la dirección IP de la máquina objetivo:
Ping de reconocimiento
Realizamos un ping a la máquina objetivo para verificar la conectividad y obtener información sobre la ruta utilizando la opción -R
para incluir la ruta de retorno:
Escaneo de puertos con Nmap
Luego, realizamos un escaneo de puertos utilizando Nmap para identificar los puertos abiertos en la máquina objetivo. Utilizamos las opciones -p-
para escanear todos los puertos, --open
para mostrar solo los puertos abiertos, -sS
para un escaneo de tipo TCP SYN, --min-rate 5000
para establecer la velocidad mínima de paquetes y -vvv
para un nivel de verbosidad alto. Además, utilizamos -n
para desactivar la resolución de DNS, -Pn
para no realizar el escaneo de ping, y -oG allPorts
para guardar la salida en un archivo con formato Greppable:
Escaneo detallado con Nmap
Posteriormente, realizamos un escaneo más detallado de los puertos identificados utilizando la opción -sCV
para detección de versiones y scripts de enumeración de servicios. Específicamente, indicamos los puertos a escanear con -p __PORTS__
(reemplazando __PORTS__
con los puertos identificados en el paso anterior) y guardamos la salida en un archivo de texto con el nombre targeted
:
Para añadir la entrada "10.10.11.239 codify.htb" al archivo /etc/hosts
, puedes usar el siguiente comando en la terminal:
Este comando añade la dirección IP 10.10.11.239
asociada al nombre de host codify.htb
al archivo /etc/hosts
de tu sistema.
Para obtener más información sobre nuestro objetivo, utilizamos la herramienta WhatWeb. Esta herramienta nos permite identificar tecnologías web utilizadas en el servidor, como el sistema de gestión de contenidos (CMS), el lenguaje de programación, los plugins y otras características. Ejecutamos el siguiente comando:
Para realizar un descubrimiento de directorios en un sitio web utilizando Gobuster, puedes utilizar el siguiente comando:
Este comando utiliza Gobuster para realizar un escaneo de directorios en el sitio web http://codify.htb/
. Utiliza el archivo de palabras /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt
como lista de palabras clave para la búsqueda. La opción -t 50
indica que se deben utilizar 50 threads simultáneos para acelerar el proceso.
TIP: Instalación de SecLists con apt-get
Para instalar SecLists en sistemas basados en Debian (como Ubuntu) utilizando apt-get
, puedes seguir estos pasos:
Actualiza la lista de paquetes disponibles:
Instala SecLists:
Con estos pasos, SecLists se instalará en tu sistema y podrás acceder a la lista de palabras clave en el directorio /usr/share/seclists/
Exploitation
Después de investigar exhaustivamente la página web y enfrentarme a varios desafíos, descubrí un detalle revelador en la sección "About-us": el nombre de la librería utilizada en el sitio, VM2 3.9.16. Esta información resultó ser crucial, ya que al buscar en Google rápidamente, encontré referencias a un "Sandbox Escape" que podría permitirnos realizar un bypass y ejecutar código malicioso en el sistema. Este descubrimiento destaca la importancia de la perseverancia y la atención a los detalles en la seguridad informática, ya que a veces una pequeña pista puede conducir a grandes hallazgos.
Despues de un rato rebuscando el por el server me encuentro con un archivo llamado tickets.db
alojado en /var/www/contact/
En este caso, utilizaremos John the Ripper con el formato bcrypt y una lista de palabras comunes para intentar crackear una contraseña.
El comando utilizado es el siguiente:
--format=bcrypt
: Especifica el formato del hash a crackear, en este caso, bcrypt.
--wordlist=/usr/share/wordlists/rockyou.txt
: Especifica la lista de palabras que se utilizarán en el intento de crackeo. En este caso, se utiliza el archivo rockyou.txt
que es una lista de contraseñas comunes.
hash.txt
: Especifica el archivo que contiene el hash de la contraseña que queremos crackear.
Conseguimos crackear el hash ;). Por lo que probamos las credenciales, ssh joshua@codify.htb
.
Encontramos permisos de root en mysql-backup.sh.
El comando sudo -l
se utiliza para listar los privilegios que un usuario tiene para ejecutar comandos con sudo
. sudo
es un programa que permite a los usuarios ejecutar comandos con los privilegios de otro usuario (normalmente el usuario root
o administrador) de forma temporal y controlada.
Esto es un bruteforce para el mysql-backup.sh
Ahora probamos la nueva credencial