Darren Mar-Elia

Nota: Actualizado el 30 de marzo de 2022

En la pasada Conferencia sobre Protección de Identidad Híbrida, varios de nosotros hablamos sobre el uso continuado de Active Directory como objeto de interés en los ataques de malware. Ya se trate de extraer información de AD sobre accesos privilegiados, de comprometer cuentas de usuario que conducen a niveles crecientes de privilegio en AD o de atacar deliberadamente controladores de dominio AD con ransomware, Active Directory tiene una gran diana en la espalda en estos días. Como resultado, ha habido mucha investigación y discusión sobre seguridad acerca de los diferentes caminos para comprometer AD. Una variedad de métodos inteligentes se aprovechan de los permisos mal delegados de AD para tomar el control sobre los principales privilegiados de seguridad de AD. Uno de esos métodos implica llegar al punto en el que el atacante pueda persistir dentro del entorno sin ser detectado. Y una de las formas de hacerlo es crear o tomar el control de una cuenta de usuario privilegiada en AD y luego ocultar esa cuenta de los ojos indiscretos de los administradores.

Lecturas relacionadas

Como ejemplo, si tienen suficientes permisos sobre un objeto de usuario, un atacante puede tomar la propiedad del usuario, establecer una ACE de Denegar Lectura para todos los usuarios sobre ese objeto, y el objeto queda esencialmente oculto, como se muestra aquí:

Figura 1: Un usuario con denegación de lectura

Puedes remover al usuario de ser visible por otros administradores, negando el permiso de "Listar Contenidos" a Todos en la OU Oculta en la captura de pantalla de arriba. Esto evitaría que cualquier administrador normal se diera cuenta de que este usuario estaba allí y un atacante podría potencialmente utilizar la cuenta sin ser descubierto (o al menos encontrado).

El amigo de Semperis Michael Dubinsky(@MichaelDubinsky) escribió una gran entrada de blog sobre este fenómeno de ocultación, junto con un script de PowerShell para detectar objetos de usuario ocultos enumerando los Identificadores Relativos (RID) que quedan en el grupo de RID de AD y luego tratando de llegar al SID de cada objeto. Si no se puede encontrar un SID buscado mediante una llamada LDAP estándar, el script indicará que no se tiene acceso a ese objeto, lo que podría indicar que se trata de un objeto oculto.

Nuestro CTO Guy Teverovsky ideó un enfoque alternativo y una utilidad, Detector de Objetos Ocultos ADque logra el objetivo de encontrar objetos ocultos de Active Directory utilizando un enfoque novedoso. Básicamente, utiliza las mismas llamadas a la API que nuestro Directory Services Protector producto, para consultar AD en el nivel de replicación del directorio. Esta llamada de nivel inferior nos permite determinar el número de objetos de los que AD tiene conocimiento, independientemente de las ACL que tenga el objeto, y compararlo con el número de objetos para los que tenemos permiso. A continuación, la herramienta devuelve todos los objetos que haya encontrado a través de nuestra llamada de replicación y que no hayamos encontrado a través de las llamadas LDAP normales. La utilidad debe ejecutarse como un usuario con privilegios en AD, pero encuentra fácilmente mi objeto "Usuario oculto", como se muestra en la salida de la utilidad a continuación.

utilidad de objetos ocultos de active directory
Figura 2: Ejecución del detector de objetos ocultos AD para encontrar objetos ocultos

Lo bueno de esta utilidad es que puede encontrar cualquier tipo de objeto oculto, no sólo objetos de usuario. Puede descargar la utilidad aquí AD Hidden Object Detector y darle una oportunidad. Háganos saber lo que piensa y si encuentra objetos ocultos de Active Directory, bueno, ¡podría ser el momento de cavar más profundo y ver quién está al acecho!