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-2019-17147 | Kitploit
Ferramentas/GitHubGitHub/imnot-ye/cve-2019-17147
Segurança de Sistemas EmbarcadosSegurança IoTAnálise de VulnerabilidadesExploraçãoEngenharia ReversaShellcodeHacking de HardwareSegurança de HardwarePapers e PesquisaAprendizado e EducaçãoAnálise de FirmwareExploração de Binários
4há 6 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
GitHubimnot-ye/cve-2019-17147

CVE-2019-17147

Ver Repositório

CVE-2019-17147: Exploração do TP-Link TL-WR841N

Banner

Visão Geral

Este repositório documenta a engenharia reversa e exploração abrangente da CVE-2019-17147, uma vulnerabilidade crítica de execução remota de código (RCE) no roteador TP-Link TL-WR841N (arquitetura MIPSEL). A vulnerabilidade reside no daemon do servidor web httpd, onde a validação inadequada de entrada permite um Estouro de Buffer de Pilha através de uma função personalizada cstr_strncpy, levando à execução arbitrária de código sem autenticação.

VulnerabilidadeCVE-2019-17147
CVSS v3.18.8 (Alta)
VetorAV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
TipoEstouro de Buffer Baseado em Pilha
Componente/usr/bin/httpd

Infraestrutura e Ferramentas

O ambiente de análise foi estabelecido usando os seguintes componentes:

  • Hardware: Roteador TP-Link TL-WR841N.
  • Ferramentas de Hardware: Programador CH341A (Dump de Flash SPI), Conversor USB-TTL (Console UART), Garra SOIC8.
  • Ferramentas de Software: flashrom (Dump de memória), binwalk (Extração de firmware), IDA Pro (Análise estática), GDB-Multiarch (Depuração remota), QEMU (Emulação MIPSEL).
  • Versão do Firmware: TL-WR841N(US)_V14_180319.

Análise Técnica

1. Análise Estática

A vulnerabilidade foi identificada no binário /usr/bin/httpd. A análise estática via IDA Pro revelou uma função personalizada de cópia de string, cstr_strncpy, usada durante a análise de cabeçalhos HTTP (especificamente o cabeçalho Host).

IDA Graph

A função cstr_strncpy aceita um parâmetro copy_len derivado do comprimento da string origem em vez do tamanho do buffer destino. Isso permite um clássico estouro de buffer de pilha quando um cabeçalho excessivamente longo é fornecido. Além disso, a função http_parser_argStrToList, que manipula uma estrutura de lista encadeada, é afetada por esse estouro, concedendo controle sobre os ponteiros next e prev.

2. Análise Dinâmica

A depuração em tempo de execução com gdbserver confirmou a falha e o controle sobre o fluxo de execução. A análise do mapa de memória (vmmap) revelou uma falta crítica de proteção:

  • Heap: Permissões RWX (Leitura, Escrita, Execução).
  • ASLR: Limitada/Ineficaz para este binário.
  • NX: Desabilitado.

VMMap

Essa configuração permite a execução direta de shellcode colocado no Heap, evitando a necessidade de cadeias ROP complexas.

Estratégia de Exploração

A cadeia de exploração utiliza uma primitiva Escreva-O-Quê-Onde derivada dos ponteiros corrompidos da lista encadeada para alcançar RCE.

  1. Heap Spraying: O shellcode é injetado no Heap. Devido à persistência do heap entre requisições, isso pode ser feito em etapas.
  2. Injeção em Estágios: Para contornar restrições de byte nulo em strcpy, o payload é enviado em múltiplas requisições:
    • Estágio 1: Escrever o endereço do Shellcode em uma área de preparação.
    • Estágio 2: Escrever o endereço GOT alvo na área de preparação.
  3. Sobrescrita de GOT: A entrada da função atol na Tabela de Deslocamento Global (GOT) é sobrescrita com o endereço do shellcode.
  4. Gatilho de Execução: O exploit força uma chamada a atol (através de um cabeçalho Content-Length), redirecionando a execução para o shellcode injetado.

Exploit Diagram

Verificação do Exploit

O script Python final automatiza o ataque com sucesso, gerando um shell root na porta 31337.

Root Shell

Mitigação

A vulnerabilidade decorre de práticas inseguras de codificação no gerenciamento de buffer.

  • Correção no Código Fonte: Substituir o uso de cstr_strncpy por alternativas seguras que imponham estritamente os limites do buffer de destino (ex.: strncpy com verificação explícita de limites baseada em sizeof(dest)).
  • Proteção do Binário: Habilitar NX (Não-Executar) para impedir a execução de código na pilha e heap. Habilitar ASLR completo e PIE (Executável Independente de Posição) para aleatorizar o layout da memória.

Documentação Completa

Para um passo a passo detalhado de todo o processo, incluindo análise de código e configuração do ambiente, consulte os guias completos incluídos neste repositório:

  • 🇮🇹 Guida Completa (Italiano)
  • 🇬🇧 Full Guide (English)

Autores

  • Angelo Zullo
  • Simone Vitto
  • Vincenzo Cantatore

Aviso Legal

Este projeto é apenas para fins educacionais e de pesquisa. As informações fornecidas destinam-se a melhorar a segurança de dispositivos IoT. Os autores não são responsáveis por qualquer uso indevido das informações ou código contidos neste documento.


Baseado em pesquisa e análise originais.

Baixar ferramenta