Darren Mar-Elia | Estratega jefe de seguridad

Nota: Actualizado el 30 de marzo de 2022

En una Hybrid Identity Protection Conference, varios de nosotros hablamos sobre el uso continuado de Active Directory como tema de interés en los ataques de malware. Ya sea para extraer información de AD sobre el acceso privilegiado, comprometer cuentas de usuario que conduzcan a un aumento de los niveles de privilegio en AD o atacar deliberadamente los controladores de dominio de AD con ransomware, Active Directory es hoy en día un objetivo muy codiciado. Como resultado, se han llevado a cabo numerosas investigaciones y debates sobre seguridad en torno a las diferentes vías de compromiso dentro de AD. Existen diversos métodos ingeniosos que aprovechan una mala delegación de permisos en AD para hacerse con el control de entidades de seguridad con privilegios en AD. Uno de esos métodos consiste en llegar a un punto en el que el atacante pueda mantenerse en el entorno sin ser detectado. Y una de las formas de lograrlo es crear o hacerse con el control de una cuenta de usuario con privilegios en AD y, a continuación, ocultar esa cuenta de las miradas indiscretas 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!