
CVE-2024-24824の概念実証エクスプロイト。任意のクラスローディングプリミティブを脆弱なGraylog環境におけるリモートコード実行に変換する方法を示しています。
このリポジトリは、私の講演で紹介した概念実証のエクスプロイトを含んでいます。
JVMにおける任意のクラスローディングの悪用
興味があればこちらでご覧ください: Youtube
このエクスプロイトは CVE-2024-24824 (スライドに軽微なタイポがあります) をターゲットにしており、Graylog のバージョン 2.0.0 から 5.2.3 に影響を与える任意のクラスローディングの脆弱性です。
この研究では、任意のクラスローディングを最終目標として扱うのではなく、利用可能なJVMクラスパスを分析することによって、そのプリミティブがどのように悪用され、より強力なエクスプロイト技術を発見・構築できるかを探求しています。
攻撃者が制御するデータで任意のクラスをインスタンス化できる能力を考えると、課題は次のようになります。
それで実際に何ができるのか?
答えは、ターゲットアプリケーションのクラスパス内にどのクラスが存在するかに完全に依存します。
この研究では、任意のクラスローディングプリミティブがどのように複数のエクスプロイトプリミティブに変換されるかを探りました。その中には以下が含まれます。
このリポジトリは、講演で実演されたリモートコード実行エクスプロイトに焦点を当てています。
以下は、脆弱なインスタンスでエクスプロイトを実行した際の期待される結果です。

exploit/
exploit source
docs/
slides
この講演では、エクスプロイトプロセスを最初から最後まで説明します。
目標は、単にエクスプロイトを提供するのではなく、エクスプロイト開発の背後にある思考プロセスを示すことです。
このコードは、教育目的、セキュリティ研究、および許可されたセキュリティテストのためにのみ公開されています。
自分が所有している、または評価する明示的な許可があるシステムのみをテストしてください。