## 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_ が発生した場合、オフセットが正しくない可能性があります。出力例: 