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
openssl-fuzz — Encontrando CVE-2022-3786 (openssl) com Mayhem | Kitploit
Ferramentas/GitHubGitHub/whatthefuzz/openssl-fuzz
Análise de VulnerabilidadesExploraçãoFuzzingCriptografiaAnálise de BináriosAprendizado e Educação
GitHubwhatthefuzz/openssl-fuzz

openssl-fuzz

Encontrando CVE-2022-3786 (openssl) com Mayhem

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

Fuzzing OpenSSL

Este repositório tem um post de blog complementar intitulado 'Finding CVE-2022-3786 (openssl) with Mayhem' em https://www.seandeaton.com.

tl;dr

All of this is taken care of for you with the included Dockerfile (also on DockerHub). You can run it like so:

root@kitploit:~
# Build the container
docker build --tag openssl-cve-2022-3768 .
# Or if you just want to pull down the existing one:
TODO
# Ensure that you're in this project's root directory (ie you can see ./output/)
# Mount the ./input/ directory to the containers /input. This is for fuzz input.
# This is Linux specific, Windows I think has %CD% in lieu of $(pwd)?
docker run --interactive --tty --volume $(pwd)/input:/input

O ponto de entrada do container é apenas executar afl para que você possa começar a fuzzing imediatamente. Para sobrescrever esse comportamento, acrescente /bin/bash ao final da linha docker run.

Obtendo uma Versão Vulnerável

O último commit que inclui a vulnerabilidade é o commit SHA de 1 de novembro de 2022. Foi corrigido no commit SHA . Podemos obter a versão vulnerável facilmente com :

Baixar ferramenta
3b421ebc64c7b52f1b9feb3812bdc7781c784332
680e65b94c916af259bfdc2e25f1ab6e0c7a97d6
git
root@kitploit:~
git clone git://git.openssl.org/openssl.git
cd openssl
git checkout 3b421ebc64c7b52f1b9feb3812bdc7781c784332

Compilando

Para a compilação, usamos o compilador gcc do AFL (porque eu continuava recebendo referências indefinidas com clang). Devido ao pequeno deslocamento de buffer overflow, também queremos usar a sanitização de endereço (ASAN), habilitada com a variável de ambiente do AFL AFL_USE_ASAN. Dado o uso de grandes quantidades de memória pelo ASAN, também precisamos restringir o espaço de endereço, o que podemos fazer compilando o programa para uma arquitetura de 32 bits. Mais detalhes aqui.

A configuração do OpenSSL para 32 bits aceita as flags -m32 e linux-generic32. O script compile.sh faz isso para você.

root@kitploit:~
# Configuration
AFL_USE_ASAN=1 CC=afl-gcc-fast CXX=afl-g++-fast ./Configure -m32 linux-generic32
# Make
AFL_USE_ASAN=1 CC=afl-gcc-fast CXX=afl-g++-fast CFLAGS="-m32" CXXFLAGS="-m32" make

Isso pode levar algum tempo dependendo dos recursos do seu sistema. Após a compilação, precisamos compilar nosso harness. Um Makefile é fornecido.

root@kitploit:~
# Compile the harness.
$ make harness
# Run the harness.
$ ./harness input/seed0.txt
ossl_a2ulabel returned: 1

E pronto, você pode começar a fuzzing o ossl_a2ulabel no openssl. Com AFL, o comando se parece com algo assim (ou apenas use o script run.sh incluído).

root@kitploit:~
afl-fuzz -i /input -o /output /harness/harness @@