Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
openssl-fuzz — Découverte de CVE-2022-3786 (openssl) avec Mayhem | Kitploit
Outils/GitHubGitHub/whatthefuzz/openssl-fuzz
Analyse des VulnérabilitésExploitationFuzzingCryptographieAnalyse de BinairesApprentissage et Éducation
GitHubwhatthefuzz/openssl-fuzz

openssl-fuzz

Découverte de CVE-2022-3786 (openssl) avec Mayhem

Voir le dépôt
533il y a 3 ansPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Fuzzing OpenSSL

Ce dépôt est accompagné d'un billet de blog intitulé « Finding CVE-2022-3786 (openssl) with Mayhem » sur https://www.seandeaton.com.

tl;dr

Tout ceci est pris en charge pour vous avec le Dockerfile inclus (également sur DockerHub). Vous pouvez l'exécuter comme suit :

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

Le point d'entrée du conteneur exécute simplement afl pour que vous puissiez commencer le fuzzing immédiatement. Pour modifier ce comportement, ajoutez /bin/bash à la fin de la ligne docker run.

Obtenir une version vulnérable

Télécharger l’outil

Le dernier commit contenant la vulnérabilité est le commit SHA 3b421ebc64c7b52f1b9feb3812bdc7781c784332 du 1er novembre 2022. Il a été corrigé dans le commit SHA 680e65b94c916af259bfdc2e25f1ab6e0c7a97d6. Nous pouvons obtenir la version vulnérable facilement avec 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

Compilation

Pour la compilation, nous utilisons le compilateur gcc d'AFL (car j'obtenais des références non définies avec clang). En raison du petit offset du débordement de tampon, nous voulons également utiliser l'adresse de sanitization (ASAN), activée avec la variable d'environnement d'AFL AFL_USE_ASAN. Étant donné l'utilisation importante de mémoire par ASAN, nous devons également restreindre l'espace d'adressage, ce que nous pouvons faire en compilant le programme pour une architecture 32 bits. Plus de détails ici.

La configuration d'OpenSSL pour 32 bits utilise les flags -m32 et linux-generic32. Le script compile.sh le fait pour vous.

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

Cela peut prendre un certain temps en fonction des ressources de votre système. Après la compilation, nous devons compiler notre harnais. Un Makefile est fourni.

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

Et voilà, vous pouvez commencer à fuzzer ossl_a2ulabel dans openssl. Avec AFL, la commande ressemble à ce qui suit (ou utilisez simplement le script run.sh inclus).

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