Introdução
Há algum tempo, escrevi sobre o AdminSDHolder e o processo SDProp.
Aos que não leram esse artigo, clique aqui.
Hoje, mostrarei como um atacante pode utilizar esse recurso para manter a persistência no ambiente.
Quando um invasor compromete o Active Directory, seu objetivo é permanecer oculto e manter seu acesso pelo maior tempo possível.
Isso dará a ele o tempo e as condições necessárias para atingir seu objetivo e invariavelmente gerar danos catastróficos aos ambientes atacados.
A persistência é alcançada por meio de técnicas que permitem que um invasor mantenha controle contínuo sobre o ambiente.
Entre as maneiras de manter a persistência no Active Directory temos:
Concessão de Permissões: O invasor pode conceder permissões elevadas a uma conta pré-existente. Muitas vezes, a conta utilizada é uma conta acima de qualquer suspeita, o que torna a detecção mais difícil.
Criação de Contas de Administrador: O invasor pode criar uma nova conta de administrador no Active Directory, concedendo a essa conta (e, consequentemente a si mesmo) privilégios elevados.
Replicação de Objetos: Uma tática mais avançada envolve replicar um objeto inteiro do AD para um controlador de domínio falso, permitindo que o invasor controle esse objeto sem ser detectado2.
Nesse artigo, mostrarei como isso funciona na pratica, utilizando o AdminSDHolder.
Aqui, me focarei no primeiro caso: Concessão de Permissões.
Ponto importante: Isso NÃO deve ser utilizado para NENHUM outro fim, senão estudos e a proteção dos mais diversos ambientes tecnológicos que utilizam o Active Directory.
Ambiente de testes
Para essa simulação, criei em um ambiente virtual uma foresta e domínio do Active Directory chamado "Contoso.com", executando o Windows Server 2022 Datacenter, e inseri como membro desse domínio uma estação de trabalho Windows 11 Enterprise com o RSAT instalado.
Não é objetivo desse artigo ensinar como instalar o Windows Server, Windows Client e nem orientar a criação de uma nova floresta do Active Directory.
Ainda assim, os links abaixo lhe ajudará na criação do seu ambiente de estudos:
Download da versão de avaliação do Windows Server 2022: Windows Server 2022 | Centro de Avaliação da Microsoft
Instalação do Windows Server 2022: Implantação, configuração e administração do Windows Server - Training | Microsoft Learn
Download da versão de avaliação do Windows 11: Download Windows 11 (microsoft.com)
Procedimento
Para essa simulação, estou utilizando uma conta privilegiada supostamente comprometida em fases anteriores do ataque.
Lembre-se de que o atacante, em fases anteriores pode enumerar todas as contas do domínio ou somente contas que sejam membros de grupos administrativos e, dessa forma tentar comprometer uma ou mais contas.
Publiquei um artigo bem legal sobre enumeração de contas no Active Directory e como se proteger. Se você não leu, clique aqui antes de prosseguir.
Assim, efetuei logon com uma conta de usuário privilegiada padrão, denominada "administrator" (SID 500), em um controlador de domínio Windows Server 2022 Datacenter, membro de um domínio denominado contoso.com.
Conforme abaixo, essa conta não é membro de nenhum grupo altamente privilegiado.
6- Execute o processo "SDProp" manualmente. Para isso:
- No controlador de domínio que hospeda o mestre de operação (FSMO) PDC Emulator, inicie "Ldp.exe". Para isso, clique em "Start" \ "Run" \ digite "ldp.exe" e clique em OK.
- Na caixa de diálogo Ldp, clique em "Connection" e a seguir, clique em "Connect".
- Na caixa de diálogo "Connect", digite o nome do controlador de domínio que contém a função PDCe (PDC Emulator) e clique em OK.
- Clique novamente em "Connection" e a seguir clique em "Bind".
- Na guia "Bind", digite as credenciais de uma conta de usuário que tenha permissão para modificar o objeto rootDSE.
Nesse exemplo, já estou conectado com esse usuário. Assim, basta manter selecionada a opção "Bind as currently logged on user" e clicar em OK.
- Concluída a etapa anterior, clique em "Browse" e a seguir clique em "Modify".
- Na caixa de diálogo "Modify", deixe o campo DN em branco. No campo "Edit Entry Attribute", digite "RunProtectAdminGroupsTask" e, no campo "Values", digite 1.
- Clique em "Enter" para preencher a lista de entradas, e depois clique em "Run".
Isso significa que, embora essa conta não seja membro direto ou indireto de nenhum grupo privilegiado, a partir de agora, ela pode modificar os membros dos grupos protegidos pelo AdminSDHolder e, inclusive inserir a si própria como membro desses grupos.
E aí, a dor de cabeça pode ser grande!!!
Vejamos abaixo a nova permissão refletida em alguns grupos protegidos pelo AdminSDHolder.
1- Com a conta denominada "andre" (que não é membro de nenhum grupo privilegiado), me conectei a uma estação de trabalho Windows 11 Enterprise que possui as ferramentas de administração do Active Directory instalada.
2- Na estação de trabalho, abra o "Active Directory Users and Computers" (dsa.msc). Para isso, clique em "Iniciar" \ "Executar" \ digite "dsa.msc" e clique em OK.

4- Na guia "Membros", clique em "Adicionar".
7- E você pode estar pensando:
10- Com esse método o atacante pode simplesmente resetar a senha do administrator!!!
Vejamos:
Para essa nova simulação, eu removi a conta do usuário andre dos 03 grupos altamente privilegiados, efetuei logoff e um novo logon na estação Windows 11.
Agora estou logado com uma conta comum, certo?
Errado!!!
Essa conta não é membro de nenhum grupo privilegiado, mas lembre-se de que ela recebeu permissão de controle total no AdminSDHolder!!!
E, consequentemente, isso concede a ela controle total na conta do administrator!!!
Para resetar a senha do administrator do domínio, sem ser membro de nenhum grupo privilegiado, basta executar o comando Set-ADAccountPassword -Identity administrator -Reset e alterar a senha.
Conclusão
Nesse artigo, vimos passo a passo como o AdminSDHolder pode ser utilizado para que um atacante se mantenha em um ambiente previamente comprometido.
Esse é um método simples e EXTREMAMENTE eficaz, visto que pouquíssimos administradores do Active Directory conhecem de fato o que é o AdminSDHolder, o processo SDProp e o atributo AdminCount (já mencionado em outro artigo).
Ao entender como o AdminSDHolder funciona, como ele afeta as permissões dos objetos por ele protegidos, e principalmente como um atacante age para se manter no ambiente, você torna-se melhor preparado para proteger esse ambiente adequadamente.
No próximo post falarei sobre como monitorar as ACLs do AdminSDHolder e dessa forma se tornar capaz de detectar alterações.
Lembre-se: Não podemos proteger o que desconhecemos!!!
Espero que tenham gostado e que esse conteúdo contribua de alguma forma para a disseminação do conhecimento na comunidade técnica.
Abraço
Ándré Martins


























