Sploitus

Exploit for CVE-2021-21551

kitploit · 2026-08-25

Exploit Code

MARKDOWN47 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-MATHISVICKIE-CVE-2021-21551
# CVE-2021-21551

CVE-2021-21551 を悪用してシステム cmd を起動し LPE を達成するためのシンプルな PoC。

https://vulners.com/cve/CVE-2021-21551

署名された Dell Windows ドライバー (dbutil_2_3.sys) に脆弱性が見つかり、ローカルシステム全体が侵害される可能性があります。このドライバーの ioctl ディスパッチルーチンは、ユーザーが提供するバッファの検証を欠いています。

## IOCTL

どのユーザーでもハンドルを作成し、以下の ioctl コードに対して ioctl リクエストを発行でき、Windows のセキュリティモデルを破ります:

  * _0x9b0c1f40_ \- 任意の物理メモリ読み取り
  * _0x9b0c1f44_ \- 任意の物理メモリ書き込み
  * _0x9b0c1ec4_ \- 任意のカーネルメモリ読み取り
  * _0x9b0c1ec8_ \- 任意のカーネルメモリ書き込み
  * _0x9b0c1ecc_ \- MmFreeContiguousMemorySpecifyCache 呼び出しへの制御されたパラメータ
  * _0x9b0c1ec0_ \- MmAllocateContiguousMemorySpecifyCache 呼び出しへの制御されたパラメータ
  * _0x9b0c1f00_ & _0x9b0c1f8c_ & _0x9b0c1f88_ & _0x9b0c1f84_ & _0x9b0c1f80_ \- 一部のポートへのアクセス



## PoC のコンパイル

この PoC は、 _0x9b0c1ec4_ / _0x9b0c1ec8_ ioctl コードを悪用して、それぞれ任意のカーネルメモリ読み取り / 書き込みを行います。まず、カーネル内で _PsInitialSystemProcess_ を特定してシステムトークンを取得し、そのトークンを現在のプロセスの _EPROCESS_ 構造体に書き込みます。コンパイルする前に、https://www.vergiliusproject.com/ を使用して _EPROCESS_ オフセットを更新し、BSOD を回避してください。

root@kitploit:~
    
    
    DWORD EPROCESS_ActiveProcessLinks = 0x2e8;
    DWORD EPROCESS_Token = 0x348;
    

Visual Studio を使用してコンパイルします (Windows ヘッダーが必要)。Ntdll SDK ヘッダー: https://github.com/mathisvickie/segy-software/blob/main/external/ntdll.h

## 実行

テスト済み:

  * Windows 8
  * Windows 10 2004
  * Windows 10 20H2



正常に悪用されると、システム cmd が起動します。バグチェック _PAGE_FAULT_IN_NONPAGED_AREA_ が発生した場合、オフセットが正しくない可能性があります。出力例: ![404](https://raw.githubusercontent.com/mathisvickie/CVE-2021-21551/main/pic.png)