Modelo de privilegios do Windows
Entendendo a arquitetura de seguranca que controla o acesso a tudo
O que voce vai descobrir
🎯 Por que isso importa
Cada exploit de elevacao de privilegios do Windows tem como alvo uma fraqueza especifica no modelo de seguranca do Windows. Antes de poder quebra-lo, voce precisa entender como ele funciona. Tokens de acesso, SIDs, privilegios e niveis de integridade formam a base da seguranca do Windows - e a base de cada tecnica de privesc que voce aprendera.
🔍 O que voce vai aprender
- Como os tokens de acesso do Windows carregam identidade e privilegios atraves do sistema
- A estrutura dos Identificadores de Seguranca (SIDs) e o que cada componente significa
- Constantes de privilegios do Windows e quais permitem elevacao de privilegios
- Controle de Integridade Obrigatorio e como ele restringe processos de baixo privilegio
🚀 Sua primeira vitoria
Nos proximos 5 minutos, voce examinara seu proprio token de acesso e identificara os privilegios exatos que poderiam permitir escalacao em um sistema comprometido.
🔧 Experimente agora
Abra um Prompt de Comando e examine os privilegios do seu token atual:
whoami /priv
whoami /groups
whoami /all
Voce vera: Uma lista de privilegios atribuidos ao seu token, suas associacoes de grupos com seus SIDs e seu contexto de seguranca completo. Observe quaisquer privilegios marcados como "Enabled" - estes sao imediatamente utilizaveis.
Habilidades que voce dominara
✅ Compreensao fundamental
- Arquitetura de tokens de acesso do Windows
- Estrutura de SID e SIDs conhecidos
- Direitos de usuario vs privilegios
- Niveis de integridade (Low, Medium, High, System)
🔍 Habilidades de especialista
- Identificacao de privilegios perigosos
- Conceitos de manipulacao de tokens
- UAC e filtragem de tokens
- Tokens primarios vs tokens de personificacao
Entendendo o modelo de seguranca do Windows
A seguranca do Windows e construida sobre um conceito simples, mas poderoso: cada processo e executado com um token de acesso que define o que ele pode fazer. Este token contem sua identidade (SIDs), seus privilegios e seu nivel de integridade. Quando voce tenta acessar um recurso, o Windows compara seu token com o descritor de seguranca do recurso para determinar o acesso.
Token de Acesso = Identidade (SIDs) + Privilegios + Nivel de Integridade
Identificadores de seguranca (SIDs)
Cada principal de seguranca no Windows (usuarios, grupos, computadores) tem um SID unico. Os SIDs seguem um formato especifico:
S-1-5-21-3623811015-3361044348-30300820-1013
│ │ │ └─────────────────────────────────┴── ID Relativo (RID)
│ │ │ └── Identificador de Dominio/Maquina
│ │ └── Autoridade de Identificacao (5 = NT Authority)
│ └── Revisao do SID (sempre 1)
└── Prefixo SID
SIDs conhecidos que voce deve memorizar:
SYSTEM
S-1-5-18
Conta com maior privilegio
Administrators
S-1-5-32-544
Grupo admin integrado
Users
S-1-5-32-545
Grupo de usuarios padrao
Privilegios perigosos
Certos privilegios permitem elevacao de privilegios direta. Quando voce os ve em uma conta comprometida, voce tem um caminho para SYSTEM:
| Privilegio | Vetor de ataque |
|---|---|
| SeImpersonatePrivilege | Personificacao de token (ataques Potato) |
| SeAssignPrimaryTokenPrivilege | Atribuir tokens a novos processos |
| SeBackupPrivilege | Ler qualquer arquivo (ignorar ACLs) |
| SeRestorePrivilege | Escrever qualquer arquivo (ignorar ACLs) |
| SeDebugPrivilege | Depurar qualquer processo, injetar codigo |
| SeTakeOwnershipPrivilege | Assumir propriedade de qualquer objeto |
Niveis de integridade
O Controle de Integridade Obrigatorio (MIC) adiciona outra camada de controle de acesso. Mesmo que as ACLs permitam acesso, um processo de integridade mais baixa nao pode escrever em objetos de integridade mais alta:
System - S-1-16-16384 (Servicos Windows, kernel)
High - S-1-16-12288 (Administradores elevados)
Medium - S-1-16-8192 (Usuarios padrao, padrao)
Low - S-1-16-4096 (Processos sandbox, navegadores)
Untrusted - S-1-16-0 (Mais restrito)
Ferramentas e tecnicas
Comandos integrados do Windows
O Windows fornece ferramentas nativas para examinar o contexto de seguranca:
# Exibir privilegios do usuario atual
whoami /priv
# Exibir associacoes de grupos com SIDs
whoami /groups
# Exibir informacoes completas do token
whoami /all
# Verificar nivel de integridade do processo atual
whoami /groups | findstr "Label"
# Exibir SID do usuario atual
wmic useraccount where name='%username%' get sid
Cmdlets de seguranca do PowerShell
O PowerShell oferece uma visao mais profunda do modelo de seguranca:
# Obter identidade Windows atual
[Security.Principal.WindowsIdentity]::GetCurrent()
# Verificar se esta executando como administrador
([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
# Listar todos os privilegios no token atual
[Security.Principal.WindowsIdentity]::GetCurrent().Claims | Where-Object { $_.Type -match "privilege" }
# Obter nivel de integridade do processo
(Get-Process -Id $PID).Handle
Ferramentas Sysinternals
A suite Sysinternals da Microsoft fornece analise de seguranca de nivel profissional:
- Process Explorer - Visualizar tokens, privilegios e niveis de integridade de processos em execucao
- AccessChk - Verificar permissoes em arquivos, servicos, chaves de registro e mais
- PsExec - Executar processos com diferentes tokens (incluindo SYSTEM)
Baixar em: Microsoft Sysinternals
Cenarios de ataque do mundo real
🔴 Estudo de caso: Pool de aplicativos IIS para SYSTEM
Aplicacoes web executando em pools de aplicativos IIS rodam como contas de servico com SeImpersonatePrivilege. Este privilegio, combinado com exploits da familia Potato, permite escalacao de um web shell para SYSTEM. Este e um dos caminhos de elevacao de privilegios mais comuns em testes de penetracao reais.
Cadeia de ataque: Web shell → Verificar privilegios → Encontrar SeImpersonatePrivilege → Executar JuicyPotato/PrintSpoofer → Shell SYSTEM
🟠 Estudo de caso: Abuso do grupo Backup Operators
Membros do grupo Backup Operators tem SeBackupPrivilege e SeRestorePrivilege. Esses privilegios ignoram ACLs de arquivos, permitindo leitura do banco de dados SAM e da colmeia de registro SYSTEM. Com esses arquivos, quebra de senha offline ou ataques pass-the-hash se tornam possiveis.
Cadeia de ataque: Membro de Backup Operators → Exportar SAM/SYSTEM → Extrair hashes com secretsdump → Pass-the-hash para Administrator
💡 Dica de especialista
O modelo de privilegios do Windows e complexo por design. Cada privilegio existe para um proposito legitimo, mas cada um pode ser abusado. Entender por que os privilegios existem ajuda voce a identificar oportunidades de exploracao e explicar riscos para clientes durante debriefings de testes de penetracao.
Contramedidas defensivas
Principio do menor privilegio
A defesa mais eficaz contra elevacao de privilegios e garantir que as contas tenham apenas os privilegios necessarios:
- Remover usuarios de grupos privilegiados (Administrators, Backup Operators) a menos que absolutamente necessario
- Usar Politica de Grupo para restringir atribuicao de privilegios
- Contas de servico devem usar Managed Service Accounts (MSAs) com privilegios minimos
- Auditorias regulares de associacoes de grupos e atribuicoes de privilegios
Protecao de tokens
- Habilitar Credential Guard para proteger LSASS e tokens
- Configurar UAC para "Sempre notificar" para protecao maxima
- Implementar Windows Defender Credential Guard em sistemas sensiveis
- Usar o grupo de seguranca Protected Users para contas de alto valor
Monitoramento e deteccao
- Habilitar politicas de auditoria para uso de privilegios e manipulacao de tokens
- Monitorar Event ID 4672 (Privilegios especiais atribuidos a novo logon)
- Alertar sobre uso de SeDebugPrivilege e SeImpersonatePrivilege
- Usar Microsoft Defender for Endpoint ou solucoes EDR similares
Perguntas frequentes
Qual e a diferenca entre um privilegio e um direito no Windows?
Privilegios controlam o que um usuario pode fazer no sistema (depurar processos, fazer backup de arquivos, desligar), enquanto direitos controlam como os usuarios podem fazer logon (interativo, rede, servico). Ambos sao atribuidos atraves de Politica de Seguranca Local ou Politica de Grupo, mas servem propositos diferentes. Do ponto de vista de privesc, privilegios sao o que voce esta procurando.
Por que contas de servico tem SeImpersonatePrivilege?
Contas de servico precisam deste privilegio para lidar com solicitacoes de clientes. Quando um cliente se conecta a um servico, o servico personifica o cliente para acessar recursos em seu nome. Isso e por design, mas cria a superficie de ataque que os exploits Potato aproveitam. A Microsoft considera isso "funcionando como esperado" em vez de uma vulnerabilidade.
Posso escalar privilegios com um token de integridade Medium?
Tokens de integridade Medium padrao nao tem privilegios perigosos por padrao. Voce precisara encontrar configuracoes incorretas (permissoes de servico fracas, caminhos sem aspas, diretorios de programas graváveis) ou bypasses de UAC para escalar. Os ataques baseados em privilegios como Potato requerem SeImpersonatePrivilege, que usuarios padrao nao tem.
Qual e a diferenca entre Administrator e SYSTEM?
Administrator e uma conta de usuario que pode ser usada para login e tem uma senha. SYSTEM (LocalSystem) e uma conta de servico com os maiores privilegios na maquina local - ela possui processos como services.exe e lsass.exe. SYSTEM pode fazer tudo que Administrator pode, mais acessar certos recursos protegidos. Em ambientes de dominio, SYSTEM representa a conta do computador.
🎯 Modelo de seguranca do Windows - Compreendido!
Voce agora entende a base da seguranca do Windows: tokens de acesso, SIDs, privilegios e niveis de integridade. Cada tecnica de elevacao de privilegios que voce aprendera explora fraquezas neste modelo.
Pronto para aprender tecnicas de enumeracao manual →