
Laboratório educacional demonstrando CVE-2021-36934 (HiveNightmare) - LPE no Windows via configuração incorreta de ACL de shadow copy.
Reproduzir e analisar a vulnerabilidade HiveNightmare em um ambiente de laboratório controlado.
CVE-2021-36934, apelidada de "SeriousSAM" ou "HiveNightmare", é uma vulnerabilidade de elevação de privilégio local (LPE) que afeta o Windows 10 a partir da versão 1809, versões iniciais do Windows 11, bem como Windows Server 2019 e 2022. Ela permite que um usuário padrão duplique e acesse arquivos protegidos do sistema contendo dados sensíveis, como hashes de senhas locais. O problema central reside em Listas de Controle de Acesso (ACLs) mal configuradas, concedendo permissões de leitura a todos os usuários em arquivos sensíveis do sistema (notadamente os hives SAM, SYSTEM e SECURITY). Embora esses arquivos permaneçam bloqueados durante a operação normal, suas cópias de backup (através de shadow copies/pontos de restauração) herdam as mesmas permissões mal configuradas e se tornam acessíveis e exploráveis por qualquer usuário do sistema.
Explorar a vulnerabilidade requer dois pré-requisitos: (1) Proteção do Sistema habilitada e (2) um ponto de restauração existente. Esses elementos costumam estar presentes por padrão em máquinas Windows 10/11. A implementação depende da extração de cópias dos arquivos SAM, SYSTEM e SECURITY de shadow copies (pontos de restauração). Esses arquivos, normalmente bloqueados durante a execução do sistema, tornam-se acessíveis através de suas cópias de snapshot que herdam as mesmas ACLs dos originais.
A partir de uma conta de usuário sem privilégios, a exploração pode ser realizada através de scripts públicos, sendo o mais conhecido o hivenightmare.exe, escrito em C. Os três arquivos recuperados têm papéis complementares. O SAM contém os hashes das senhas de contas locais (criptografados), o SECURITY armazena segredos adicionais do LSA (credenciais em cache, senhas de serviços, também criptografados), e o SYSTEM fornece a chave de descriptografia (BootKey). Para estrita elevação de privilégio local, apenas SAM e SYSTEM são necessários para extrair hashes NTLM. Uma vez obtidos esses arquivos, ferramentas como secretsdump.py ou mimikatz podem descriptografar os hashes e realizar ataques pass-the-hash, ou obter acesso total de administrador via psexec.py.
A implementação da exploração baseia-se na extração de hives do Windows (SAM, SYSTEM, SECURITY) de shadow copies/pontos de restauração, seguida pelo uso dos hashes extraídos para obter acesso SYSTEM via secretsdump.py e psexec.py.
Plataforma testada: Windows 10, build 1903 (atualização de dezembro de 2020).
1. Contexto: Versão do Windows Estamos usando uma versão do Windows 10 (1903, atualização de dezembro de 2020) que contém a vulnerabilidade em estudo.
2. Permissões em Arquivos Sensíveis Observamos que as permissões NTFS nos hives SAM, SYSTEM e SECURITY permitem que usuários locais tenham acesso de Leitura, herdado aqui da pasta config.
3. Executando hivenightmare de um Usuário Local Sem Ponto de Restauração Ao lançar hivenightmare.exe a partir de uma conta local sem pontos de restauração/shadow copies, a ferramenta falha porque não encontra nenhum ponto de restauração para explorar.
4. Ativando a Proteção do Sistema e Criando um Ponto de Restauração Para criar as condições necessárias para a extração de hives, ativamos a Proteção do Sistema e depois criamos manualmente um ponto de restauração. Uma vez que o ponto de restauração existe, o hivenightmare poderá acessar cópias dos arquivos sensíveis.
5. Extraindo Hives Sensíveis Após criar o ponto de restauração, hivenightmare.exe é executado novamente e extrai com sucesso os arquivos SAM, SYSTEM e SECURITY da shadow copy. Existem muitos outros scripts (C#, Go, PowerShell,...). Independentemente da tecnologia usada, todos os scripts visam o mesmo caminho:
\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy[i]\Windows\System32\config\[ARQUIVO SENSÍVEL]
6. Análise no Kali: Recuperando Hashes com secretsdump.py Os arquivos extraídos são transferidos para a máquina Kali. Usamos secretsdump.py (Impacket) para listar contas e recuperar hashes em texto simples.
7. Elevação de Privilégio: Reutilização de Hash via psexec.py Com o hash extraído, usamos psexec.py para autenticar e abrir uma sessão com privilégios SYSTEM, concedendo controle total da máquina.
A correção oficial da Microsoft (KB5004605, julho de 2021) restaura as ACLs apropriadas nos arquivos afetados. No entanto, várias medidas complementares são recomendadas. Primeiro, verificar manualmente as permissões em C:\Windows\System32\config para garantir que apenas SYSTEM e administradores tenham acesso total. Segundo, excluir shadow copies antigas criadas antes da aplicação do patch, pois elas mantêm as permissões vulneráveis. Por razões operacionais (risco de perda de dados, impacto no usuário), a exclusão automática de pontos de restauração antigos não foi incluída no patch distribuído. Por fim, monitorar acessos incomuns a shadow copies através de logs de eventos do sistema.
Aqui demonstramos como mitigar a vulnerabilidade através de correção manual de ACL e exclusão de shadow copies anteriores.
1. Correção Manual de ACL Este comando quebra a herança na pasta C:\Windows\System32\config.
2. Verificação Após Correção de ACL A existência do ponto de restauração criado antes da correção ainda permite extrair hives da shadow copy associada.
3. Exclusão de Shadow Copy
4. Validação Final Após excluir shadow copies antigas, a extração de hives falha e a vulnerabilidade não é mais explorável a partir de uma conta local.
CVE-2021-36934 demonstra como uma simples má configuração de ACL pode comprometer completamente a segurança do sistema Windows. A vulnerabilidade explora um recurso de segurança (pontos de restauração) transformado em vetor de ataque, permitindo que um usuário sem privilégios e potencialmente malicioso obtenha acesso total de administrador. Em conclusão, CVE-2021-36934 destaca a necessidade de auditar regularmente as permissões do sistema e monitorar o acesso a arquivos sensíveis, mesmo em suas cópias de backup.
Apenas para fins educacionais. Não utilize em sistemas sem autorização.