π¨HTB - Surveillance
https://app.hackthebox.com/machines/Surveillance

InformaciΓ³n General
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
Enumeration
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.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.
Utilizando WhatWeb para Obtener InformaciΓ³n sobre el Objetivo
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/.
Exploitation
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.
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 este enlace, que prometΓa ser el comienzo de una aventura aΓΊn mΓ‘s emocionante.

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.

SSH Local Port Forward
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.


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: CVE-2023-26035.


Privilege Escalation
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:




