La semana pasada, se llevó a cabo en Buenos Aires una edición más de la ekoparty, una de las principales conferencias sobre seguridad de la información en América Latina, de la que hicimos una detallada cobertura.
Entre muchas charlas y actividades interesantes, una de ellas me llamó la atención: “Six Degrees of Domain Admin – Using BloodHound to Automate Active Directory Domain Privilege Escalation Analysis” ("Seis grados de separación del dominio administrador - Utilizando BloodHund para la automatización del análisis de escalada de privilegios de dominios de Active Directory"). Veamos de qué se trató.
Grados de separación
La teoría de los seis grados de separación dice que a dos personas del mundo las separan tan solo seis lazos de amistad. La teoría se puede aplicar en diferentes contextos; en la rama de la cinematografía, la broma común es calcular el número de lazos hasta Kevin Bacon; en matemáticas calcular el número de Erdös.
Durante ekoparty, Andrew Robbins y Rohan Vazarkar, del Grupo de Veris, presentaron la herramienta BloodHound, creada por ambos (junto con Will Schroeder) e inspirada en los seis grados de separación. La herramienta está diseñada para el análisis de la menor trayectoria de ataque que un atacante debe tratar con el objetivo de obtener privilegios de administrador de dominio. Las cuentas de este tipo son el mayor privilegio en un dominio, que exigen alto grado de protección de las empresas y los hacen atractivos para el robo credenciales.
BloodHound y la teoría de grafos
La característica principal de BloodHund es permitir un análisis simple y visual de cómo un oponente debe proceder para obtener una credencial de administrador de dominio. Para ello, la herramienta cuenta con un par de scripts para la recopilación de datos y una interfaz para analizarlos.
Las scripts para la recopilación de datos responden a las siguientes preguntas:
- ¿Quién ha iniciado sesión en los equipos del dominio?
- ¿Qué equipos y qué usuarios tienen derechos administrativos?
- ¿Los usuarios y grupos que pertenecen a otros grupos?
Una característica importante de esta recogida de datos es que la mayoría de las veces, no se requieren privilegios administrativos ni tampoco la ejecución de código en sistemas remotos.
Detrás del análisis de los datos está la teoría de grafos, que ayuda a extraer los problemas de información modelados como vértices y aristas.
A partir de la información recogida, los modelos de herramientas direccionan el camino hasta la cuenta de administrador de dominio de la siguiente manera:
- Vértice: usuario, equipo de grupo.
- Arista: miembro (grupo), administrador (ordenador), Sesión (usuario).
En la figura anterior, se muestra como un atacante podría obtener una credencial de administrador de dominio por parte de un usuario sin tales privilegios - es decir, siendo necesario escalar un nivel de usuario. En este caso, un atacante podría obtener acceso a la cuenta de Bob a través de los medios habituales, como el phishing y el malware. El uso de estas credenciales, el atacante podría tener acceso al servidor I en el que Bob es administrador y hay una sesión de usuario Administrador de Mary, para luego obtener las credenciales de administrador de dominio utilizando herramientas como Mimikatz.
Este es un ejemplo sencillo, pero ayuda a entender cómo se construye el modelo de análisis de los datos recogidos en la primera fase. Cuando se aplica a grandes áreas, la herramienta ayuda a revelar las relaciones ocultas y que muchas veces, de manera no intencional, existen en entorno de Active Directory.
Los defensores piensan en listado, los atacantes piensan en grafos
Uno de los factores explorados por la herramienta es la máxima “Defenders think in lists. Attackers think in graphs”. Mientras que los defensores se centran en listados de acceso o servicios de bases de datos, entre otros, los atacantes explotan la relación de cada elemento (de esos listados) para encontrar el camino a su blanco.
BloodHound es capaz de ilustrar esta sencilla máxima de manera estupenda y muy aplicable, siendo útil tanto en el campo de defensa para evaluar y mejorar la configuración del dominio, como para el uso ofensivo, aunque también sirve para evaluar la seguridad de otras empresas (con ética, naturalmente).