
このリポジトリには、Aligned Chunk Confusion と呼ばれる悪用手法を用いた PoC エクスプロイトが含まれています。 この手法の詳細は論文に記載されています。
このエクスプロイトは、Windows カーネルヒープのヒープオーバーフローを利用して、権限を Low から SYSTEM に昇格させます。
この研究の目的は、カーネルプールのヒープオーバーフロー脆弱性に対する汎用的なエクスプロイトを開発することでした。
ヒープオーバーフローを悪用する際、脆弱なオブジェクト(オーバーフローを起こす側)のサイズは、そのオブジェクトがどこに、どのように割り当てられるかに影響するため重要です。また、割り当て先のプールの種類も同じ理由で重要です。
そのため、汎用性を持たせるには、エクスプロイトは以下の条件を満たす必要があります:
本エクスプロイトは、PagedPool と NonPagedPool の両方で動作します。異なるオブジェクトを使用しつつ、同様の手法を用いています。
悪用される脆弱性は実際のものではなく、完全に制御可能なヒープオーバーフローを公開するドライバーによって構築されています。
このエクスプロイトは PoC であり、完全に安定しているわけではありません。主に 0x130 から 0x300 のサイズで動作しますが、あらゆるサイズで動作するように調整可能です。 また、より優れたヒープマッサージ技術を使用することで、エクスプロイトの安定性を大幅に向上させることができます。
ドライバーは、Driver 内のソリューションを使用して Visual studio でコンパイルできます。
makefile を使用すると、C で書かれたエクスプロイト全体をコンパイルできます。
gcc-mingw-w64-x86-64 に依存しています。
make
デバッグモードでコンパイルすると、ドライバーを使用したチェックとより詳細な出力が追加されます。
make debug
この研究成果は、SSTIC 2020 と OPCDE 8 で発表されました。 両方のプレゼンテーションのスライドはこちらから入手できます。