Entrada

TryHackMe - CVE-2024-50379

Explora y aprende sobre la vulnerabilidad CVE-2024-50379 de Tomcat

TryHackMe - CVE-2024-50379

Introducción

CVE-2024-50379 es una vulnerabilidad TOCTOU causada por una condición de carrera entre la comprobación y el uso de un recurso. Ocurre durante la compilación de JSP en sistemas que no distinguen entre mayúsculas y minúsculas cuando el servlet predeterminado tiene permisos de escritura.

Tryhackme Room Link

Nmap

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
nmap -T4 -n -sC -sV -Pn -p- 10.10.122.218
PORT     STATE SERVICE       VERSION
3389/tcp open  ms-wbt-server Microsoft Terminal Services
| ssl-cert: Subject: commonName=CHANGE-MY-HOSTNAME
| Not valid before: 2025-01-24T14:59:28
|_Not valid after:  2025-07-26T14:59:28
|_ssl-date: 2025-03-12T09:12:34+00:00; -1s from scanner time.
| rdp-ntlm-info: 
|   Target_Name: CHANGE-MY-HOSTN
|   NetBIOS_Domain_Name: CHANGE-MY-HOSTN
|   NetBIOS_Computer_Name: CHANGE-MY-HOSTN
|   DNS_Domain_Name: CHANGE-MY-HOSTNAME
|   DNS_Computer_Name: CHANGE-MY-HOSTNAME
|   Product_Version: 10.0.17763
|_  System_Time: 2025-03-12T09:12:29+00:00
7680/tcp open  pando-pub?
8080/tcp open  http          Apache Tomcat (language: en)
|_http-favicon: Apache Tomcat
|_http-title: Apache Tomcat/10.1.25
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows

Puertos abiertos: 3389/tcp 7680/tcp 8080/tcp

Pregunta: Un servidor Tomcat está escuchando en el puerto 8080 de 10.10.122.218. ¿Cuál es su versión?

Respuesta:

1
10.1.25

Explotación

Descarguemos nuestro exploit de prueba de concepto

1
git clone https://github.com/iSee857/CVE-2024-50379-PoC

Y como nos guía la sala, cambiemos el bucle for a 2000 en lugar de 10000

Loop

Comente la carga útil actual que abre la calculadora usando calc.exe con la mencionada en la sala

Payload

Dado que se trata de una vulnerabilidad de condición de carrera, necesitamos ejecutar el exploit varias veces para que funcione

1
python3 ApachTomcat_CVE-2024-50379_ConditionalCompetitionToRce.py -u 10.10.122.218:8080

Payload

Y podemos leer la bandera:

Payload

Esta entrada está licenciada bajo CC BY 4.0 por el autor.