LegacyHive: O Bug do Serviço de Perfil de Usuário do Windows Que Carrega o Pesadelo do Registro de Outro Usuário
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumo
LegacyHive é uma vulnerabilidade não corrigida de elevação de privilégio local no Serviço de Perfis de Usuário do Windows (ProfSvc). Um atacante pode usar uma combinação de envenenamento de registro, links simbólicos do gerenciador de objetos e uma condição de corrida TOCTOU via oplocks para forçar um serviço em nível de SISTEMA a carregar o hive de registro de um usuário-alvo. Isso permite que um usuário com poucos privilégios obtenha acesso não autorizado a dados sensíveis do registro ou, potencialmente, consiga comprometimento total do SISTEMA.
Investigação
O pesquisador Nightmare-Eclipse desenvolveu uma prova de conceito (PoC) que explora o descompasso entre operações de arquivo em nível de SISTEMA e encaminhamento controlado pelo usuário. A investigação demonstra como modificar o valor de registro Local AppData pode redirecionar o serviço para o namespace do gerenciador de objetos NT. Ao usar um bloqueio oportuno (oplock) em um arquivo de isca, o atacante pode trocar um link simbólico no momento exato em que o serviço tenta carregar o hive.
Mitigação
A Microsoft deve implementar a canonicização de caminhos para garantir que caminhos resolvidos permaneçam dentro do diretório legítimo de perfil de usuário e rejeitem prefixos de dispositivos/gerenciador de objetos. Além disso, os desenvolvedores devem usar proteção de reinterpretar (FILE_FLAG_OPEN_REPARSE_POINT) e realizar E/S no contexto de segurança do usuário, em vez do contexto SISTEMA para evitar cenários de procurador confuso.
Resposta
Os defensores devem monitorar imediatamente por cargas de registros incomuns (RegLoadKey) para contas que não estão logadas interativamente e observar a criação de diretórios de objetos sob BaseNamedObjectsRestricted. Ferramentas de controle de aplicativos como WDAC ou AppLocker devem ser usadas para impedir a execução de binários não assinados. Assim que a Microsoft liberar uma correção oficial, ela deve ser priorizada para implantação em todas as instalações do Windows desktop e servidor.
Fluxo de Ataque
Detecções
Comportamento Possível de Exploração LegacyHive (via registry_event)
Visualizar
Comportamento Possível de Exploração LegacyHive (via file_event)
Visualizar
Comportamento Possível de Exploração LegacyHive (via cmdline)
Visualizar
Provável Uso de Ferramentas de Hack do Windows [Parte 3] (via file_event)
Visualizar
Provável Uso de Ferramentas de Hack do Windows [Parte 3] (via cmdline)
Visualizar
Detecção de Ataque de Elevação de Privilégio LegacyHive [Evento de Registro do Windows]
Visualizar
Detectar Tentativa de Exploração LegacyHive via CreateProcessWithLogonW e Notepad Suspenso [Criação de Processo do Windows]
Visualizar
Resumo Executivo
- ID do Caso de Teste: TC-20240522-K9P2L
- TTPs: T1068, T1548
-
Resumo da Lógica da Regra de Detecção: Detecta tentativas de explorar a vulnerabilidade LegacyHive monitorando
notepad.exesendo lançado com opadrão de API CreateProcessWithLogonW na linha de comando.94D36DA3:API na linha de comando. - Formato/Linguagem da Regra de Detecção: yaml
- Ambiente de Segurança Alvo: Windows OS, Logs de Eventos do Windows (Criação de Processo), EDR/SIEM.
- Pontuação de Resiliência (1-5): 2
-
Justificação: A regra depende fortemente de uma string específica (
padrão de API CreateProcessWithLogonW na linha de comando.) aparecendo no campoCommandLine. Um adversário pode facilmente contornar isso usando diferentes chamadas de API que alcançam o mesmo resultado ou usando diferentes nomes de processo em vez denotepad.exe. - Conclusões Principais: A detecção é altamente específica para uma única implementação de exploração e é extremamente frágil contra variações menores no vetor de ataque.
-
Recomendação: Expandir a detecção para monitorar variantes suspeitas de
CreateProcessem vários binários comuns (por exemplo,calc.exe,cmd.exe) e monitorar por anomalias do Serviço de Perfis de Usuário (ProfSvc).
Ambiente de Simulação e Contexto
-
TTPs sob Teste:
- T1068: Exploração para Elevação de Privilégio
- T1548: Abuso de Mecanismos de Elevação de Privilégio
-
Contexto & Relevância do TTP: A exploração LegacyHive depende de coagir um serviço em nível de SISTEMA a realizar ações em nome de um usuário. Usando
padrão de API CreateProcessWithLogonW na linha de comando.para criar um processo em estado suspenso, um atacante pode manipular o ambiente para carregar um hive de registro malicioso. O monitoramento dos artefatos específicos da linha de comando desta chamada de API tem a intenção de capturar a fase de exploração. -
Ambiente Alvo:
- OS: Windows 10/11 ou Windows Server 2019/2022
- Registro de Logs: Sysmon (ID de Evento 1) ou Log de Eventos de Segurança do Windows (ID de Evento 4688) com Auditoria de Linha de Comando habilitada.
- Pilha de Segurança: SIEM (por exemplo, Splunk, Microsoft Sentinel)
Telemetria & Verificação de Linha de Base Prévia
Racional: Antes de simular o ataque, devemos confirmar que o host alvo está configurado para gerar os logs necessários, que esses logs são ingeridos pelo SIEM e que a regra de detecção não dispara em atividades benignas. Sem essa validação, qualquer resultado do teste é não confiável.
-
1. Instruções de Configuração de Telemetria:
-
- Certifique-se de que “Criação de Processo de Auditoria” está habilitada via Política de Grupo (Configuração do Computador > Configurações do Windows > Configurações de Segurança > Configuração de Política de Auditoria Avançada > Rastreamento Detalhado).
-
- Certifique-se de que “Incluir linha de comando em eventos de criação de processo” está habilitada (via Registro:
HKLMSoftwareMicrosoftWindowsCurrentVersionPoliciesSystemAuditProcessCreationIncludeCmdLine).
- Certifique-se de que “Incluir linha de comando em eventos de criação de processo” está habilitada (via Registro:
-
- Instalar Sysmon e garantir que o Evento ID 1 (Criação de Processo) está sendo coletado.
-
-
2. Validação de Ingestão & Linha de Base:
-
Ação (Telemetria Benigna): Iniciar uma instância padrão do Notepad para garantir que o registro de criação de processo está funcional sem acionar a detecção de exploração.
Start-Process "notepad.exe" -
Consulta de Validação (Ingestão):
DeviceProcessEvents | where FileName =~ "notepad.exe" | where ProcessCommandLine !contains "CreateProcessWithLogonW"
-
Execução da Simulação
Pré-requisito: A Telemetria & Verificação de Linha de Base Prévia devem ter sido aprovadas.
Racional: Esta seção detalha a execução precisa da técnica adversária (TTP) projetada para acionar a regra de detecção. Os comandos e a narrativa DEVEM refletir diretamente os TTPs identificados e visam gerar a telemetria exata esperada pela lógica de detecção. Exemplos abstratos ou não relacionados levarão a diagnósticos incorretos.
-
Narrativa & Comandos de Ataque: O atacante visa explorar a vulnerabilidade LegacyHive para escalar os privilégios para SISTEMA. Para fazer isso, eles utilizam um script que chama a
padrão de API CreateProcessWithLogonW na linha de comando.API do Windows. O objetivo é lançarnotepad.exeem estado suspenso. A simulação usa um wrapper PowerShell para imitar o padrão de argumento de linha de comando que a regra de detecção está procurando, especificamente visando a stringpadrão de API CreateProcessWithLogonW na linha de comando.dentro do contexto de execução denotepad.exe. -
Script de Teste de Regressão:
# Simulação de tentativa de Exploit LegacyHive via injeção de artefato de linha de comando # Nota: Este script simula o padrão de string de linha de comando para teste de detecção. $targetProcess = "notepad.exe" $fakeArgument = "CreateProcessWithLogonW" Write-Host "[+] Iniciando simulação de tentativa de exploit LegacyHive..." # Usamos cmd /c para garantir que a string de linha de comando seja explicitamente passada # e apareça na telemetria de criação de processos. Start-Process "cmd.exe" -ArgumentList "/c $targetProcess $fakeArgument" Write-Host "[+] Comando de simulação enviado. Verifique o SIEM para notepad.exe com CreateProcessWithLogonW na linha de comando." -
Comandos de Limpeza:
# Terminar quaisquer processos de notepad ou cmd remanescentes criados pela simulação Stop-Process -Name "notepad" -ErrorAction SilentlyContinue Stop-Process -Name "cmd" -ErrorAction SilentlyContinue