
dbutil_2_3.sys における任意のカーネル読み書き、nt authority/system へのローカル権限昇格の概念実証
CVE-2021-21551 を悪用してシステム cmd を起動し LPE を達成するためのシンプルな PoC。
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-21551
署名された Dell Windows ドライバー (dbutil_2_3.sys) に脆弱性が見つかり、ローカルシステム全体が侵害される可能性があります。このドライバーの ioctl ディスパッチルーチンは、ユーザーが提供するバッファの検証を欠いています。
どのユーザーでもハンドルを作成し、以下の ioctl コードに対して ioctl リクエストを発行でき、Windows のセキュリティモデルを破ります:
この PoC は、0x9b0c1ec4 / 0x9b0c1ec8 ioctl コードを悪用して、それぞれ任意のカーネルメモリ読み取り / 書き込みを行います。まず、カーネル内で PsInitialSystemProcess を特定してシステムトークンを取得し、そのトークンを現在のプロセスの EPROCESS 構造体に書き込みます。コンパイルする前に、https://www.vergiliusproject.com/ を使用して EPROCESS オフセットを更新し、BSOD を回避してください。
DWORD EPROCESS_ActiveProcessLinks = 0x2e8;
DWORD EPROCESS_Token = 0x348;
Visual Studio を使用してコンパイルします (Windows ヘッダーが必要)。Ntdll SDK ヘッダー: https://github.com/mathisvickie/segy-software/blob/main/external/ntdll.h
テスト済み:
正常に悪用されると、システム cmd が起動します。バグチェック PAGE_FAULT_IN_NONPAGED_AREA が発生した場合、オフセットが正しくない可能性があります。出力例:
