Darren Mar-Elia | Estrategista Principal de Segurança

Nota: Actualizado em 30 de Março de 2022

Numa conferência anterior Hybrid Identity Protection Conference, vários de nós falámos sobre a utilização contínua do Active Directory como tema de interesse nos ataques de malware. Seja a extração de informações do AD sobre acesso privilegiado, o comprometimento de contas de utilizador que conduzem a níveis crescentes de privilégios no AD, ou o ataque deliberado a controladores de domínio do AD com ransomware, o Active Directory tem-se tornado um alvo em cheio nos dias de hoje. Como resultado, tem havido muita investigação e discussão em matéria de segurança sobre as diferentes formas de comprometer o AD. Uma variedade de métodos engenhosos tira partido de permissões mal delegadas no AD para assumir o controlo sobre entidades de segurança privilegiadas do AD. Um desses métodos envolve chegar ao ponto em que o atacante consegue manter-se no ambiente sem ser detetado. E uma das formas de o fazer é criar ou assumir o controlo de uma conta de utilizador privilegiada no AD e, em seguida, ocultar essa conta dos olhares curiosos dos administradores.

Leitura relacionada

Por exemplo, se tiverem permissões suficientes num objecto de utilizador, um atacante pode assumir a propriedade do utilizador, definir um ACE de Negar Leitura para todos os utilizadores nesse objecto e o objecto fica essencialmente oculto, como se mostra aqui:

Figura 1: Um utilizador com a função negar leitura

Pode ainda impedir que o utilizador seja visível por outros administradores, negando a permissão "List Contents" a Everyone na UO oculta na captura de ecrã acima. Isto evitaria que qualquer administrador normal reparasse que este utilizador estava presente e um atacante poderia potencialmente utilizar a conta sem ser descoberto (ou pelo menos encontrado).

O amigo da Semperis, Michael Dubinsky(@MichaelDubinsky), escreveu uma excelente publicação no blogue sobre este fenómeno de ocultação, juntamente com um script do PowerShell para detectar objectos de utilizador ocultos, enumerando os Identificadores Relativos (RIDs) deixados no conjunto de RIDs do AD e tentando depois chegar ao SID de cada objecto. Se um SID procurado não puder ser encontrado utilizando uma chamada LDAP padrão, o script indicará que não tem acesso a esse objecto, o que poderá indicar um objecto oculto.

O nosso CTO Guy Teverovsky criou uma abordagem alternativa e um utilitário, Detetor de Objectos Ocultos ADque atinge o objetivo de encontrar objetos ocultos do Active Directory usando uma nova abordagem. Ele usa essencialmente as mesmas chamadas de API que nosso Directory Services Protector produto utiliza, para consultar o AD ao nível da replicação do diretório. Esta chamada de nível inferior permite-nos determinar o número de objectos que o AD conhece, independentemente das ACLs em vigor no objeto, e compará-lo com o número de objectos a que temos permissão. Em seguida, a ferramenta devolve todos os objectos encontrados através da nossa chamada de replicação, que não foram encontrados através de chamadas LDAP normais. O utilitário tem de ser executado como utilizador privilegiado no AD, mas encontra facilmente o meu objeto "Hidden User" (Utilizador oculto), como mostra a saída do utilitário abaixo.

utilitário de objectos ocultos do active directory
Figura 2: Execução do Detector de Objectos Ocultos AD para encontrar objectos ocultos

Uma coisa boa sobre este utilitário é que pode encontrar qualquer tipo de objeto oculto - não apenas objectos de utilizador. Pode descarregar o utilitário aqui AD Hidden Object Detetor e experimentá-lo. Diga-nos o que pensa e, se encontrar objectos ocultos do active directory, talvez seja altura de ir mais fundo e ver quem está à espreita!