Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
openssl-fuzz — Auffinden von CVE-2022-3786 (openssl) mit Mayhem | Kitploit
Tools/GitHubGitHub/whatthefuzz/openssl-fuzz
SchwachstellenanalyseExploitationFuzzingKryptographieBinäranalyseLernen & Bildung
GitHubwhatthefuzz/openssl-fuzz

openssl-fuzz

Auffinden von CVE-2022-3786 (openssl) mit Mayhem

Repository anzeigen
5vor 3 JahrenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

OpenSSL fuzzen

Dieses Repository enthält einen begleitenden Blogbeitrag mit dem Titel "Finding CVE-2022-3786 (openssl) with Mayhem" unter https://www.seandeaton.com.

tl;dr

All dies wird für Sie mit dem enthaltenen Dockerfile (auch auf DockerHub) erledigt. Sie können es wie folgt ausführen:

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

Der Einstiegspunkt des Containers besteht darin, einfach afl auszuführen, damit Sie sofort mit dem Fuzzing beginnen können. Um dieses Verhalten zu überschreiben, hängen Sie /bin/bash an das Ende der docker run-Zeile an.

Eine verwundbare Version erhalten

Der letzte Commit, der die Schwachstelle enthält, ist der Commit SHA 3b421ebc64c7b52f1b9feb3812bdc7781c784332 vom 1. November 2022. Sie wurde im Commit SHA 680e65b94c916af259bfdc2e25f1ab6e0c7a97d6 behoben. Wir können die verwundbare Version einfach mit git erhalten:

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

Kompilieren

Für die Kompilierung verwenden wir den gcc-Compiler von AFL (da ich mit clang ständig undefinierte Referenzen erhielt). Aufgrund des geringen Pufferüberlauf-Offsets möchten wir auch die Address Sanitization (ASAN) verwenden, die mit der Umgebungsvariablen AFL_USE_ASAN von AFL aktiviert wird. Aufgrund des hohen Speicherbedarfs von ASAN müssen wir auch den Adressraum einschränken, was wir durch die Kompilierung des Programms für eine 32-Bit-Architektur erreichen können. Weitere Details hier.

Die Konfiguration von OpenSSL für 32-Bit verwendet die Flags -m32 und linux-generic32. Das Skript compile.sh erledigt dies für Sie.

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

Dies kann je nach den Ressourcen Ihres Systems eine Weile dauern. Nach der Kompilierung müssen wir unseren Harness kompilieren. Eine Makefile ist vorhanden.

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

Und schon können Sie mit dem Fuzzing von ossl_a2ulabel in openssl beginnen. Mit AFL sieht der Befehl etwa wie folgt aus (oder verwenden Sie einfach das enthaltene Skript run.sh).

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