HTB - Surveillance
https://app.hackthebox.com/machines/Surveillance
ΒΏTe fue ΓΊtil?
https://app.hackthebox.com/machines/Surveillance
ΒΏTe fue ΓΊtil?
Nombre de la MΓ‘quina: Surveillance
IP de la MΓ‘quina: 10.10.11.245
Sistema Operativo: Linux
Dificultad: Medium
Fecha de PublicaciΓ³n: 09 Dec 2023
Primero, establecemos el objetivo utilizando el comando settarget con la direcciΓ³n IP de la mΓ‘quina objetivo:
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:
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:
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.245 surveillance.htb" al archivo /etc/hosts, puedes usar el siguiente comando en la terminal:
Este comando aΓ±ade la direcciΓ³n IP 10.10.11.245 asociada al nombre de host surveillance.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://surveillance.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/.
Durante una de nuestras incursiones en la red, nos topamos con un hallazgo interesante: una direcciΓ³n especΓfica que nos llevΓ³ directamente a un panel de administraciΓ³n de un sitio web: http://surveillance.htb/admin/login. Al inspeccionar la pΓ‘gina, nos dimos cuenta de que estaba potenciada por "CraftCMS", y aΓΊn mΓ‘s intrigante, la versiΓ³n se revelaba sin recato en el index.php como la 4.4.14.
Ejecutamos el exploit sudo python3 craft-cms.py http://surveillance.htb/ y accedemos a una shell interactiva.
Para asegurar una shell robusta y poder ejecutar comandos de bash, se puede utilizar un one-liner que establezca una conexiΓ³n inversa o una sesiΓ³n interactiva. Este tipo de conexiΓ³n es ΓΊtil cuando se ha conseguido ejecutar comandos de manera remota en una mΓ‘quina objetivo y se desea tener una interfaz de lΓnea de comandos mΓ‘s estable para interactuar con el sistema.
Uno de los one-liners mΓ‘s comunes para este propΓ³sito utiliza bash para crear una shell inversa. AquΓ tienes un ejemplo:
DespuΓ©s de pasar un buen rato explorando el sistema al que habΓa ganado acceso, me topΓ© con una joya oculta en /html/craft/storage/backups: un archivo .sql. Este tipo de archivo suele contener datos cruciales, como backups de la base de datos, que podrΓan revelar informaciΓ³n valiosa sobre la aplicaciΓ³n web y su estructura de datos. Sabiendo esto, decidΓ que era imperativo obtener una copia para un anΓ‘lisis mΓ‘s detallado.
Para hacer el archivo accesible y poder descargarlo, primero tuve que moverlo a un directorio desde el cual pudiera accederse pΓΊblicamente. La ubicaciΓ³n ideal para esto fue /html/craft/web, un directorio que sabΓa que era servido por el servidor web.
Una vez que obtuvimos el archivo .sql y luego el hash, nuestro siguiente paso fue identificar el tipo de hash para determinar la mejor manera de crackearlo. Para esto, utilizamos la herramienta hash-identifier, que nos permitiΓ³ analizar el hash y determinar su posible algoritmo de hash subyacente.
El proceso de identificaciΓ³n fue sencillo y directo, y nos brindΓ³ informaciΓ³n valiosa sobre la naturaleza del hash, lo que nos permitiΓ³ elegir la mejor estrategia para descifrarlo.
Una vez identificado el tipo de hash como raw-sha256, procedimos a intentar crackearlo utilizando la herramienta John the Ripper. Esta herramienta es ampliamente utilizada para realizar ataques de fuerza bruta y diccionario contra contraseΓ±as cifradas.
EjecuciΓ³n de John the Ripper El comando utilizado para ejecutar John the Ripper y crackear el hash fue el siguiente:
Intentamos ingresar por ssh con las credenciales de matthew@surveillance.htb y este es el resultado:
Revisando las conexiones de la mΓ‘quina me percato de un servicio que estΓ‘ corriendo en el puerto 8080.
El "SSH Local Port Forward" es una tΓ©cnica que permite redirigir el trΓ‘fico desde un puerto local en la mΓ‘quina cliente hacia un puerto especΓfico en un servidor remoto a travΓ©s de una conexiΓ³n SSH. Esta tΓ©cnica es ΓΊtil para acceder a servicios en un servidor remoto que de otra manera no serΓan accesibles directamente desde la mΓ‘quina cliente.
En el ejemplo dado, se utilizΓ³ el siguiente comando para establecer un SSH Local Port Forward desde la mΓ‘quina cliente hacia el servidor remoto:
-L 2222:127.0.0.1:8080: especifica la redirecciΓ³n del trΓ‘fico desde el puerto 2222 en la mΓ‘quina cliente hacia el puerto 8080 en la mΓ‘quina remota. El formato es -L [puerto_local]:[host_destino]:[puerto_destino].
matthew@10.10.11.245: es el usuario y la direcciΓ³n IP del servidor remoto al que se va a conectar a travΓ©s de SSH.
DespuΓ©s de ejecutar este comando, cualquier trΓ‘fico que llegue al puerto 2222 en la mΓ‘quina cliente serΓ‘ redirigido al puerto 8080 en el servidor remoto a travΓ©s de la conexiΓ³n SSH. Esto permite acceder a servicios o aplicaciones que se ejecutan en el puerto 8080 del servidor remoto como si estuvieran siendo ejecutados localmente en el puerto 2222 de la mΓ‘quina cliente.
Lo primero que se me ocurre hacer es un sudo -l
Al parecer hay archivos en /usr/bin/ llamado zm*.pl que podrΓan ser de ayuda:
Movidos por la curiosidad y el instinto de cazadores de vulnerabilidades, nos lanzamos a la vasta mar de informaciΓ³n que es internet, con la esperanza de desenterrar algΓΊn dato ΓΊtil sobre CraftCMS y sus posibles puntos dΓ©biles. No pasΓ³ mucho tiempo antes de que nuestra bΓΊsqueda diera frutos: nos topamos con un CVE especΓfico que parecΓa ser la llave para comprometer la versiΓ³n que tenΓamos enfrente: Craft CMS CVE-2023-41892. La fuente de esta revelaciΓ³n fue , que prometΓa ser el comienzo de una aventura aΓΊn mΓ‘s emocionante.
DespuΓ©s de establecer la conexiΓ³n SSH local, decidΓ investigar si habΓa algΓΊn exploit disponible para ZoneMinder, y encontrΓ© otro exploit relacionado con la ejecuciΓ³n remota de cΓ³digo (RCE). Puedes encontrar mΓ‘s informaciΓ³n sobre este exploit en el siguiente enlace: .