
Vulnerabilidade de Elevação de Privilégio no ADManager Plus Build < 7210
Modify Computers é uma função predefinida no ADManager para gerenciar computadores. Se um usuário técnico tiver o privilégio Modify Computers sobre um computador, ele poderá alterar os atributos userAccountControl e msDS-AllowedToDelegateTo do objeto de computador. Dessa forma, o usuário técnico pode configurar a Constrained Kerberos Delegation sobre qualquer computador dentro da Unidade Organizacional para a qual o usuário foi delegado.
Ao contrário do que o ADManager afirma, o usuário que possui a função Modify Computers pode alterar o privilégio de objetos de computador no Active Directory. A Constrained Kerberos Delegation pode ser definida para qualquer serviço, como CIFS, LDAP, serviços HOST. Então o usuário pode acessar esses serviços abusando da Constrained Kerberos Delegation. Além disso, a Unconstrained Kerberos Delegation pode ser definida sobre os objetos de computador alterando o atributo userAccountControl. Normalmente, apenas usuários que possuem o privilégio SeEnableDelegationPrivilege podem definir constrained kerberos delegation. Somente membros do grupo BUILTIN\Administrators possuem esse privilégio por padrão. O usuário delegado para uma Unidade Organizacional não pode definir constrained kerberos delegation, mesmo que um usuário tenha o direito GenericAll sobre uma conta de computador, portanto o processo de delegação no Active Directory não concede esse privilégio. No entanto, o usuário técnico pode usar o direito SeEnableDelegationPrivilege por meio da função Modify Computers.
Problema de autorização no aplicativo web ADMP: Atribuir uma função predefinida Modify Computers delega o usuário técnico a modificar atributos personalizados de computadores inesperadamente. Mesmo que pareça que esse privilégio não é concedido na interface do usuário, a propriedade Additional Custom Attribute é atribuída e isso leva a uma vulnerabilidade de controle de acesso quebrado.
Não há restrição para editar os atributos userAccountControl e msDS-AllowedToDelegateTo dos objetos de computador. O aplicativo ADMP executa alterações com privilégios de administrador de domínio, conforme projetado, de modo que, se pudermos contornar algumas restrições (por exemplo, o formato do valor do atributo), nossas solicitações serão aplicadas com privilégios de administrador de domínio. Dessa forma, podemos editar os atributos userAccountControl e msDS-AllowedToDelegateTo.
Um usuário técnico eleva privilégios de Usuário de Domínio para Administrador de Domínio. O usuário pode obter o hash da conta krbtgt usando um ataque DCSync após configurar a Constrained Kerberos Delegation para o serviço LDAP do controlador de domínio em um computador. Como outro exemplo, o usuário pode definir a Constrained Kerberos Delegation em CLIENT1$ para o serviço CIFS do DC e então acessar o serviço CIFS. Como resultado, o usuário recebe delegação para gerenciar CLIENT1$, mas pode acessar o serviço CIFS do controlador de domínio personificando um usuário inesperadamente.
O usuário atacante pode realizar um ataque DCSync após adicionar a Constrained Kerberos Delegation para o serviço LDAP com os seguintes pré-requisitos:
Cenário 1: Se o atacante tiver direito de administrador local sobre um computador e puder gerenciar este computador com a função “Modify Computers” no ADManager Plus
Cenário 2: Se o atacante adicionar um computador ao Active Directory (MAQ, delegação) e gerenciar este computador com a função “Modify Computers”
Cenário 3: Se o atacante puder extrair o hash NT de uma conta de computador (extraindo hash com mimikatz, secretsdump, etc.) e gerenciar este computador com a função “Modify Computers”
Esta prova de conceito foi realizada no ADManager Plus Build 7203.
https://github.com/user-attachments/assets/496b3bfd-a95f-4d69-8ee5-53ae0592ebdb