Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Herramientas/GitHubGitHub/whatthefuzz/openssl-fuzz
Análisis de VulnerabilidadesExplotaciónFuzzingCriptografíaAnálisis de BinariosAprendizaje y Educación
GitHubwhatthefuzz/openssl-fuzz

openssl-fuzz

Encontrando CVE-2022-3786 (openssl) con Mayhem

Ver Repositorio
533hace 3 añosAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Fuzzing OpenSSL

Este repositorio tiene una publicación de blog complementaria titulada "Finding CVE-2022-3786 (openssl) with Mayhem" en https://www.seandeaton.com.

tl;dr

Todo esto está resuelto para ti con el Dockerfile incluido (también en DockerHub). Puedes ejecutarlo así:

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

El punto de entrada del contenedor es simplemente ejecutar afl para que puedas comenzar a fuzzear inmediatamente. Para anular este comportamiento, agrega /bin/bash al final de la línea de docker run.

Obteniendo una Versión Vulnerable

Descargar herramienta

El último commit que incluye la vulnerabilidad es el commit SHA 3b421ebc64c7b52f1b9feb3812bdc7781c784332 del 1 de noviembre de 2022. Se corrigió en el commit SHA 680e65b94c916af259bfdc2e25f1ab6e0c7a97d6. Podemos obtener la versión vulnerable fácilmente con git:

root@kitploit:~
# Clone the repository.
git clone git://git.openssl.org/openssl.git
# Change into the working directory.
cd openssl
# Detach HEAD from origin to examine the code as it was when it was vulnerable.
git checkout 3b421ebc64c7b52f1b9feb3812bdc7781c784332

Compilación

Para la compilación, usamos el compilador gcc de AFL (porque seguía obteniendo referencias indefinidas con clang). Debido al pequeño desplazamiento del desbordamiento de búfer, también queremos usar la sanitización de direcciones (ASAN), habilitada con la variable de entorno AFL_USE_ASAN de AFL. Dado el uso de grandes cantidades de memoria por parte de ASAN, también necesitamos restringir el espacio de direcciones, lo cual podemos hacer compilando el programa para una arquitectura de 32 bits. Más detalles aquí.

La configuración de OpenSSL para 32 bits utiliza las banderas -m32 y linux-generic32. El script compile.sh hace esto por ti.

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

Esto podría tomar un tiempo dependiendo de los recursos de tu sistema. Después de la compilación, necesitamos compilar nuestro harness. Se proporciona un Makefile.

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

Y ahí lo tienes, puedes comenzar a fuzzear ossl_a2ulabel en openssl. Con AFL, el comando se ve algo como lo siguiente (o simplemente usa el script run.sh incluido).

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