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
tmux-fuzzing — Fuzzing aprimorado para tmux usando OSS-Fuzz. Inclui harnesses personalizados `cmd-fuzzer` e `argument-fuzzer` para melhor cobertura de código e uma PoC para `CVE-2020-27347`. | Kitploit
Ferramentas/GitHubGitHub/lucadibello/tmux-fuzzing
Análise de VulnerabilidadesAnálise de CódigoFuzzingAnálise de BináriosAprendizado e EducaçãoLabs e Prática
GitHublucadibello/tmux-fuzzing

tmux-fuzzing

Fuzzing aprimorado para tmux usando OSS-Fuzz. Inclui harnesses personalizados `cmd-fuzzer` e `argument-fuzzer` para melhor cobertura de código e uma PoC para `CVE-2020-27347`.

Ver Repositório
112há 1 anoAinda 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

Laboratório de Fuzzing: Aprimorando o Fuzzing para tmux

Software Security @ EPFL, Primavera de 2025

Resumo

Neste laboratório, aprimoramos os esforços de fuzzing para o multiplexador de terminais tmux dentro da infraestrutura OSS-Fuzz do Google. Primeiro, estabelecemos uma linha de base avaliando a cobertura de linhas do harness input-fuzzer existente, tanto com quanto sem seu corpus de sementes fornecido, observando coberturas iniciais comparáveis. Em seguida, identificamos duas regiões de código significativas no tmux pouco exercitadas pelo fuzzer de linha de base. Para lidar com essas lacunas de cobertura, desenvolvemos e avaliamos dois novos harnesses de fuzzing direcionados, cmd-fuzzer e argument-fuzzer, demonstrando sua capacidade de melhorar a cobertura nessas áreas anteriormente subtestadas. Como essas melhorias de fuzzing não revelaram novas vulnerabilidades críticas dentro do prazo do projeto, nossa análise de crashes concentrou-se em uma vulnerabilidade histórica conhecida. Desenvolvemos uma prova de conceito (PoC) para o CVE-2020-27347 (um buffer overflow baseado em pilha), analisamos sua causa raiz, discutimos a correção implementada e avaliamos suas implicações de segurança.

Visão Geral e Objetivos do Projeto

Este projeto teve como objetivo aplicar e aprimorar técnicas de fuzzing no multiplexador de terminais open-source tmux, utilizando o framework OSS-Fuzz. O projeto abrangeu várias etapas principais:

  1. Avaliação da Linha de Base (Parte 1):

    • Compreender e avaliar o harness input-fuzzer existente para o tmux.
    • Comparar seu desempenho de cobertura de código quando executado com seu corpus de sementes padrão versus um corpus de sementes vazio.
  2. Análise de Lacunas de Cobertura (Parte 2):

    • Analisar relatórios de cobertura da Parte 1 para identificar regiões de código significativas no tmux que não são adequadamente exercitadas pelo input-fuzzer.
    • Focar na análise de argumentos (arguments.c) e na lógica de análise/execução de comandos (cmd-parse.c, módulos cmd-*.c) como áreas-chave para melhoria.
  3. Melhoria do Fuzzer (Parte 3):

    • Desenvolver dois novos harnesses de fuzzing direcionados:
      • argument-fuzzer: Projetado especificamente para testar a lógica de análise de argumentos de linha de comando em arguments.c.
      • cmd-fuzzer: Projetado para testar os caminhos de análise e execução de comandos, visando cmd-parse.c e vários módulos cmd-*.c.
    • Avaliar a eficácia desses novos harnesses medindo a cobertura de código alcançada e comparando-a com a linha de base.
  4. Análise de Crash (Parte 4):

    • Como nenhuma nova vulnerabilidade crítica foi descoberta pelos fuzzers melhorados dentro do prazo do projeto, uma vulnerabilidade conhecida e preexistente no tmux (CVE-2020-27347) foi selecionada para análise aprofundada.
    • Isso envolveu o desenvolvimento de uma Prova de Conceito (PoC) para reproduzir o crash, analisar sua causa raiz, entender a correção aplicada e avaliar suas implicações de segurança.

Estrutura do Repositório

A submissão final está organizada da seguinte forma (dentro do diretório submission/):

submission/
├── README.md                   # Este arquivo
├── part_1/                     # Arquivos da Parte 1: Avaliação da Linha de Base
│   ├── oss-fuzz.diff           # Diff para remover corpus de sementes do input-fuzzer
│   ├── project.diff            # (Provavelmente vazio ou menor para a Parte 1)
│   ├── remove_seed_corpus.patch # O arquivo de patch real usado
│   ├── report/                 # Relatórios de cobertura HTML para o input-fuzzer
│   │   ├── w_corpus/
│   │   └── wo_corpus/
│   ├── run.w_corpus.sh         # Script para executar o input-fuzzer com corpus
│   └── run.wo_corpus.sh        # Script para executar o input-fuzzer sem corpus
├── part_3/                     # Arquivos da Parte 3: Melhorias do Fuzzer
│   ├── coverage_noimprove/     # Cobertura da linha de base (ex.: do input-fuzzer sem corpus)
│   │   └── ...
│   ├── improve1/               # Melhoria 1: argument-fuzzer
│   │   ├── coverage_improve1/  # Relatório de cobertura para argument-fuzzer
│   │   ├── oss-fuzz.diff       # Mudanças de configuração do OSS-Fuzz para argument-fuzzer
│   │   ├── project.diff        # Mudanças no tmux para argument-fuzzer (ex.: novos .cc, Makefile.am)
│   │   └── run.improve1.sh     # Script para executar argument-fuzzer
│   └── improve2/               # Melhoria 2: cmd-fuzzer
│       ├── coverage_improve2/  # Relatório de cobertura para cmd-fuzzer
│       ├── oss-fuzz.diff       # Mudanças de configuração do OSS-Fuzz para cmd-fuzzer
│       ├── project.diff        # Mudanças no tmux para cmd-fuzzer
│       └── run.improve2.sh     # Script para executar cmd-fuzzer
├── part_4/                     # Arquivos da Parte 4: Análise de Crash (CVE-2020-27347)
│   ├── environment/            # Ambiente Docker para PoC
│   │   ├── Dockerfile
│   │   ├── run_tmux_cve_test.sh # Lógica central do teste PoC
│   │   ├── test_fixed.sh
│   │   └── test_vulnerable.sh
│   └── run.poc.sh              # Script para construir imagem Docker e executar testes PoC
└── report.pdf                  # O relatório completo do projeto

(Nota: O diretório scripts/ contendo _run_fuzz_core.sh é um auxiliar e faria parte da raiz se este README estivesse na raiz real do projeto ao lado de submission/)

Configuração e Uso

Todas as campanhas de fuzzing e a reprodução do PoC do CVE são projetadas para serem executadas em ambientes Docker orquestrados por scripts shell.

Configuração e Uso

Todas as campanhas de fuzzing e a reprodução do PoC do CVE são projetadas para serem executadas em ambientes Docker orquestrados por scripts shell.

Pré-requisitos:

  • Docker instalado e em execução em um sistema Unix-like.
  • Shell bash e cliente git.
  • Chaves SSH configuradas para [email protected] se os scripts precisarem clonar o oss-fuzz (eles tentarão clonar se oss-fuzz/ não for encontrado na raiz do projeto). Alternativamente, você pode pré-clonar https://github.com/google/oss-fuzz.git na raiz do projeto.

Arquitetura Geral dos Scripts: O projeto usa um script centralizado, scripts/_run_fuzz_core.sh (não incluído no diretório submission/, mas parte da estrutura geral do projeto que este README pressupõe). Scripts executores individuais localizados em submission/part_1/, submission/part_3/improve1/, submission/part_3/improve2/ e submission/part_4/ são responsáveis por:

  1. Configurar o ambiente de teste específico aplicando patches oss-fuzz.diff específicos da execução a uma cópia limpa do repositório oss-fuzz (esperado estar em ../../oss-fuzz em relação à maioria dos scripts executores).
  2. Exportar variáveis de configuração (como PROJECT, HARNESS, LABEL, caminhos para patches específicos do projeto e diretórios de saída).
  3. Invocar o script _run_fuzz_core.sh, que então lida com:
    • Aplicar um patch opcional no nível do projeto (ex.: para adicionar novas fontes de fuzzer ao tmux).
    • Construir a imagem Docker do OSS-Fuzz (se sinalizado).
    • Construir o(s) fuzzer(s) especificado(s) com o sanitizador escolhido.
    • Executar o fuzzer pela duração configurada (tipicamente 4 horas).
    • Gerar e exportar corpus e relatórios de cobertura HTML para os locais designados dentro da estrutura do diretório submission/.

Executando os Scripts: Geralmente, recomenda-se executar os scripts a partir do diretório raiz do projeto para garantir a resolução correta de caminhos relativos para oss-fuzz/ e os diretórios de saída.

1. Parte 1: Avaliação da Linha de Base (input-fuzzer) Esses scripts avaliam o input-fuzzer existente para o tmux.

# A partir do diretório raiz do projeto:
./submission/part_1/run.w_corpus.sh  # Executa o input-fuzzer com o corpus de sementes padrão
./submission/part_1/run.wo_corpus.sh # Executa o input-fuzzer sem corpus de sementes
Baixar ferramenta