
ETWコンシューマーからカーネルアドレスを漏洩させます。管理者権限が必要です。
このリポジトリには、ETWを利用してカーネルメモリアドレスを漏洩させるプログラムのPoCが含まれています。これは、コンシューマーを(ほぼすべてのプロバイダーがカーネルアドレスを漏洩させるため、ほとんど任意のプロバイダーに対して)作成し、そこからスタックトレースを要求することで実現されます。スタックトレースを受信すると、それを解析してカーネルメモリアドレスを抽出します。マイクロソフトは管理者からカーネルへの境界をセキュリティ境界と見なしていないため、この状況がすぐに変わることはありません。一部の悪用シナリオ(例えば、ETWプロバイダーがカーネルベースアドレスから特定のオフセットにあるカーネルアドレスやその他の注目すべきアドレスを漏洩させることが分かっている場合に、カーネルベースアドレスを漏洩させたい場合など)や、単なるパーティートリックとして役立つかもしれません。
注意してください。ETWプロバイダーからの消費を開始するには管理者権限が必要です。通常ユーザーがアクセスできるトレースを既に消費しているプログラムが存在する場合、通常ユーザーもカーネルアドレスを漏洩させることができます。これは実際のカーネルデータの漏洩を提供するものではなく、カーネルアドレスのみを提供します(極端なエッジケースを除きます)。

使用方法の例はEtwLeakKernelで確認できます。他のETWコンシューマーを使用してスタックを要求することもできます。この例ではMicrosoft-Windows-Kernel-Networkを使用しています。
git clone https://github.com/Idov31/EtwLeakKernel --recursive