Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
openssl-fuzz — Mayhem による CVE-2022-3786 (openssl) の発見 | Kitploit
ツール/GitHubGitHub/whatthefuzz/openssl-fuzz
脆弱性分析エクスプロイトファジング暗号化バイナリ解析学習と教育
GitHubwhatthefuzz/openssl-fuzz

openssl-fuzz

Mayhem による CVE-2022-3786 (openssl) の発見

リポジトリを見る
53年前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

Fuzzing OpenSSL

このリポジトリには、「Finding CVE-2022-3786 (openssl) with Mayhem」というタイトルのブログ記事(https://www.seandeaton.com)が付属しています。

tl;dr

これらはすべて、同梱の Dockerfile(DockerHub にもあります)を使用して処理されます。次のように実行できます。

root@kitploit:~
# コンテナをビルドする
docker build --tag openssl-cve-2022-3768 .
# または、既存のものをプルするだけの場合:
TODO
# このプロジェクトのルートディレクトリにいることを確認してください(つまり、./output/ が見えること)
# ./input/ ディレクトリをコンテナの /input にマウントします。これはファズ入力用です。
# これは Linux 固有です。Windows では $(pwd) の代わりに %CD% を使用すると思います。
docker run --interactive --tty --volume $(pwd)/input:/input

コンテナのエントリポイントは、afl を実行するだけなので、すぐにファジングを開始できます。この動作を上書きするには、docker run 行の末尾に /bin/bash を追加します。

脆弱性のあるバージョンの入手

脆弱性が含まれている最後のコミットは、2022年11月1日のコミット SHA 3b421ebc64c7b52f1b9feb3812bdc7781c784332 です。これはコミット SHA 680e65b94c916af259bfdc2e25f1ab6e0c7a97d6 で修正されました。脆弱性のあるバージョンは git を使用して簡単に入手できます。

root@kitploit:~
# リポジトリをクローンする。
git clone git://git.openssl.org/openssl.git
# ワーキングディレクトリに移動する。
cd openssl
# 脆弱だった時点のコードを調べるために、HEAD を origin から切り離す。
git checkout 3b421ebc64c7b52f1b9feb3812bdc7781c784332

コンパイル

コンパイルには、AFL の gcc コンパイラを使用します(clang では未定義参照が発生し続けたため)。小さなバッファオーバーフローオフセットのため、アドレスサニタイゼーション(ASAN)も使用したいところです。これは AFL の環境変数 AFL_USE_ASAN で有効にできます。ASAN は大量のメモリを使用するため、プログラムを32ビットアーキテクチャ向けにコンパイルすることでアドレス空間を制限する必要もあります。詳細はこちら。

OpenSSL の32ビット構成は、フラグ -m32 と linux-generic32 を受け入れます。compile.sh スクリプトがこれを自動で行います。

root@kitploit:~
# 設定
AFL_USE_ASAN=1 CC=afl-gcc-fast CXX=afl-g++-fast ./Configure -m32 linux-generic32
# ビルド
AFL_USE_ASAN=1 CC=afl-gcc-fast CXX=afl-g++-fast CFLAGS="-m32" CXXFLAGS="-m32" make

システムのリソースによっては時間がかかる場合があります。コンパイル後、ハーネスをコンパイルする必要があります。Makefile が用意されています。

root@kitploit:~
# ハーネスをコンパイルする。
$ make harness
# ハーネスを実行する。
$ ./harness input/seed0.txt
ossl_a2ulabel returned: 1

これで、openssl 内の ossl_a2ulabel のファジングを開始できます。AFL を使用する場合、コマンドは次のようになります(または、同梱の run.sh スクリプトを使用してください)。

root@kitploit:~
afl-fuzz -i /input -o /output /harness/harness @@
ツールをダウンロード