Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
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
Point-to-Point-Protocol-Daemon-RCE-Vulnerability-CVE-2020-8597- — Trabalho universitário documentando CVE-2020-8597, um estouro de buffer de pilha no analisador EAP do pppd, com uma demonstração de exploração de execução remota de código usando uma configuração de servidor pppoe e cliente. | Kitploit
Ferramentas/GitHubGitHub/dilan-diaz/point-to-point-protocol-daemon-rce-vulnerability-cve-2020-8597-
Análise de VulnerabilidadesExploraçãoTestes de PenetraçãoAprendizado e EducaçãoExploração de BináriosLabs e Prática
GitHubdilan-diaz/point-to-point-protocol-daemon-rce-vulnerability-cve-2020-8597-

Point-to-Point-Protocol-Daemon-RCE-Vulnerability-CVE-2020-8597-

Trabalho universitário documentando CVE-2020-8597, um estouro de buffer de pilha no analisador EAP do pppd, com uma demonstração de exploração de execução remota de código usando uma configuração de servidor pppoe e cliente.

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

Vulnerabilidade de Execução Remota de Código no Daemon do Protocolo Ponto a Ponto - CVE-2020-8597

Sri Lanka Institute of Information Technology

                Trabalho 1
              M. P. D. M. Dias
                 IT19165530
              MLB_WD_Y2S1_13.1                                             
       Execução Remota de Código no Daemon do Protocolo Ponto a Ponto    
        Vulnerabilidade (CVE-2020-8597)






    Programação de Sistemas e Redes – IE2012

Conteúdo

  1. Introdução
  2. Referência sobre quem descobriu a vulnerabilidade
  3. Como foi descoberta
  4. Quando foi descoberta
  5. Qual o dano que pode causar
  6. Quais são as técnicas de exploração
  7. Qual método de exploração escolheu
  8. Capturas de tela do exploit
  9. Conclusão
  10. Referências

Introdução

O Protocolo Ponto a Ponto (PPP) é um protocolo full-duplex que permite que dados simples sejam encapsulados e distribuídos através da Camada 2 ou infraestrutura de enlace de dados, abrangendo desde conexões discadas até banda larga DSL e redes privadas virtuais (VPNs) que incorporam criptografia SSL. Como estes protocolos não permitem comunicações ponto a ponto, o PPP também é usado para impor IP e TCP sobre dois nós diretamente conectados. Pppd é um daemon usado em sistemas operacionais do tipo Unix para gerenciar o estabelecimento de sessões PPP e a terminação de sessões entre dois nós.

O PPP é o protocolo usado para criar conexões de internet através de modems discados, conexões DSL e várias outras formas de conexões ponto a ponto via Redes Privadas Virtuais (VPN), como o Protocolo de Tunelamento Ponto a Ponto (PPTP). O programa pppd também pode autenticar um par que se conecta à rede e/ou fornecer ao par detalhes de autenticação utilizando vários protocolos de autenticação, como o EAP.

Devido a uma falha no tratamento do pacote do Protocolo de Autenticação Extensível (EAP) pelo Daemon do Protocolo Ponto a Ponto (pppd), um atacante remoto não autenticado pode causar um estouro de buffer de pilha, o que pode permitir a execução arbitrária de código no sistema alvo. Esta fraqueza é desencadeada por um erro na validação do tamanho da entrada antes de copiar os dados fornecidos para a memória. Dado que a validade do tamanho dos dados está errada, dados aleatórios podem ser copiados para a memória, o que pode provocar vazamento de arquivos contribuindo para a execução não intencional de código.

A fraqueza reside na lógica do código de análise do eap, especificamente nas funções eap_request() e eap_response() em eap.c, que são chamadas por um manipulador de entrada de rede. Estas funções, usando o primeiro byte como um tipo, recebem um ponteiro e um comprimento como entrada. Se o tipo for EAPT MD5CHAP(4), então ele analisa uma área embutida de 1 byte de comprimento. A lógica neste código destina-se a garantir que a duração embutida seja menor que o comprimento total do pacote. Após esta verificação, ele tenta copiar os dados fornecidos (hostname), que estão localizados em um buffer local da pilha após o campo de comprimento embutido. Esta verificação de limite é incorreta e permite que a cópia de memória ocorra com um comprimento de dados arbitrário.

Um erro lógico adicional faz com que a função eap_input() não teste se o EAP foi resolvido durante o processo do Protocolo de Controle de Linha (LCP). Isto permite que um atacante não autenticado envie um pacote EAP mesmo que o ppp tenha recusado negociar autenticação devido à falta de suporte para EAP ou devido a uma não conformidade com uma senha pré-compartilhada acordada na fase LCP. Em eap_input, o código inseguro do pppd ainda deve processar o pacote EAP e causar o estouro de buffer de pilha. Estes dados não verificados e de tamanho desconhecido podem ser usados para comprometer a memória do dispositivo alvo. O pppd também é executado com altos privilégios (sistema ou root) e opera em conjunto com drivers de kernel.

O programa pppd também é usado com o projeto LWIP (lightweight IP) para fornecer capacidade pppd em computadores pequenos. A instalação e as instalações padrão do lwIP não são suscetíveis a este estouro de buffer. No entanto, se o código-fonte do lwIP for usado e modificado explicitamente para permitir EAP em tempo de compilação, o programa pode ser suscetível a estouro de buffer.

CVE-2020-8597 é um bug de estouro de buffer no pppd devido a um defeito conceitual no processador de pacotes do Protocolo de Autenticação Extensível (EAP). Um atacante remoto não autorizado que envia um pacote EAP especialmente criado para um cliente ou servidor PPP vulnerável pode causar uma condição de negação de serviço ou uma execução arbitrária de código. Como o pppd opera em conjunto com drivers de kernel e também possui altos privilégios, como dispositivo ou até mesmo núcleo, qualquer execução de código também pode ser realizada com os mesmos privilégios.

Referência sobre quem descobriu a vulnerabilidade

Descoberta pelo Pesquisador de Proteção da IOActive Ilja Van Sprundel, o problema crucial é uma falha de estouro de buffer de pilha que ocorre devido a um erro lógico no analisador do módulo do Protocolo de Autenticação Extensível (EAP) das aplicações pppd, um aprimoramento que oferece suporte para métodos de autenticação adicionais em conexões PPP.

A fraqueza, monitorada como CVE-2020-8597 com Pontuação CVSS 9.8, pode ser abusada por atacantes não autorizados para executar remotamente código arbitrário em dispositivos afetados e obter controle total sobre eles.

Como foi descoberta

Esta fraqueza é atribuída a um erro na validação do tamanho da entrada antes de transferir os dados para a memória. Como a validação do tamanho dos dados está errada, dados aleatórios podem ser copiados para a memória e podem desencadear fragmentação de banco de dados, provavelmente contribuindo para a execução de código não autorizado.

A vulnerabilidade é encontrada na lógica do código de análise do eap, especificamente nas funções eap_request() e eap_response() em eap.c, que são chamadas pelo manipulador de entrada de rede.

É errado concluir que o pppd não é inseguro se o EAP não for permitido ou se o EAP não tiver sido iniciado por um par remoto usando uma senha ou frase secreta. Isto porque um intruso autenticado pode sempre ser capaz de submeter um pacote EAP não solicitado para induzir um estouro de buffer.

A vulnerabilidade foi identificada no daemon do Protocolo Ponto a Ponto (PPP), ou pppd. PPP é um protocolo de Camada 2 usado para estabelecer conexões através de modems discados, conexões DSL e muitas outras redes físicas, incluindo redes móveis. O PPP foi incluído e expandido para incluir protocolos adicionais, como o Protocolo de Tunelamento Ponto a Ponto (PPTP) que é usado em Redes Privadas Virtuais (VPNs) para fornecer conexões criptografadas.

Ao longo desta situação, a equipe de colaboração do SEI CERT fez parceria com o analista de proteção Ilja Van Sprundel (IOActive) que descobriu esta falha e o desenvolvedor de software Paul Mackerras (OZlabs) que gerencia o código-fonte para examinar facilmente o problema e encontrar uma solução alternativa. O problema envolveu um estouro de buffer no código-fonte do pppd devido a um estouro de buffer básico na expressão booleana e na implementação das instruções condicionais que resultaram. A frase abaixo pode ser enganada para permitir feedback de duração desconhecida e copiá-lo para um buffer de pilha. Isso é comumente referido como sobrecarga de quadro ou estouro de buffer de pilha.

if (vallen >= len + sizeof(rhostname)) { // Copiar para o buffer rhostname

A correção para a vulnerabilidade foi simplesmente alterar a declaração acima para a lógica booleana abaixo.

if (len-vallen >= sizeof(rhostname)) { // Copiar para o buffer rhostname

Baixar ferramenta