Conceptos a entender:
AD (active directory): este es un sistema que usan las empresas para gestionar identidades y accesos dentro de una red. Allí se almacenan usuarios, computadoras, grupos y permisos. Es como una base de datos central que decide quien puede acceder a que recurso dentro de la organizacion
LDAP: Este es el protocolo que permite consultar y obtener informacion de Active Directory. Es como el lenguaje que se usa para busquedas dentro del directorio
Kerberos: es un protocolo de autenticacion que usa Active Directory para verificar identidades de forma segura. En lugar de enviar contrasenias constantemente, utiliza tickets
SPN (Service Principal Name): un SPN es un identificador que asocia un servicio (base de datos o servidor web) con una cuenta dentro de Active Directory. Indica que ese usuario esta ejecutando un servicio en especifico.
Ej: un usuario tiene un SPN como HTTP/server, significa que esa cuenta es ligada a un servicio web
Usuario Kerberoasteable: un usuario Kerberoasteable es cualquier cuenta en Active Directory que tiene configurado un SPN. Esto lo convierte en objetivo de ataque porque kerberos permite solicitar un ticket cifrado usando la contrasenia de esa cuenta
Kerberoasting: esta es una tecnica de ataque que aprovecha el como funciona keberos. Un atacante solicita tickets de servicio asociados con cuentas SPN. Esos tickets estan cifrados con la contrasenia del usuario del servicio
Dump LDAP: Este es una copia de la informacion del directorio, exportada a un formato como JSON. Contiene usuarios, atributos configuracion y demas. Este tipo de archivo permite analizar la estructura de Active Directory sin estar conectado al sistema real
Teniendo estos conceptos claros nos enfocamos en el reto:
Este trata de analizar un volcado de Active Directory obtenido mediante ldap2json. A partir de este archivo, se debia identificar un usuario vulnerable a Kerberoasting (es decir un usuario configurado a un SPN)
Para esto usaremos la herramienta que se nos menciona en el enunciado que es ldap2json que esta es una herramienta que sirve para poder extraer informacion de un directorio LDAP y convertirla a formato JSON. Esta pensada principalmente para trabajar con entornos de active directory
En palabras mas simples ldap2json actua como un traductor. Por un lado se conecta al servidor LDAP (usando el protocolo LDAP) y consulta informacion de usuarios, grupos, equipos y atributos. Por otro lado toma esos datos y los guarda en un archivo JSON, que es mucho mas facil de analizar fuera del entorno original
En nuestro caso ya nos dieron el resultado de la ejecucion de este, ahora nuestro trabajo es anlizar ese archivo JSON para encontrar un usuario Kerberoasteable.
Primero clonamos el repositorio
git clone https://github.com/p0dalirius/ldap2json.git

La clonar iremos al directorio que se crea un directorio:

Ya estando aquí debemos ir hasta el directorio analysis y ejecutar el script en python ya que el script ldap2json.py se usa para extraer informacion directamente del servidor LDAP y analysis.py lo que hace este script es leer un archivo JSON ya generado
Entendido esto seguimos:

Como se puede ver la herramienta ya esta en ejecucion y estamos dentro de la consola iterativa de esta
Viendo la documentacion de la herramienta en: https://github.com/p0dalirius/ldap2json/tree/master/analysis
Nos muestra comandos para nuestro caso usamos:
object_by_property_name: se usa para buscar un objeto dentro del volvado LDAP que contenga un atributo especifico
servicePrincipalName: este corresponde al nombre del atributo que se quiere buscar

Y pues como muestra la imagen se nos muestra todos los objetos que contienen el atributo servicePrincipalName (SPN)
De los cuales solo nos interesa el objeto Alexandria que es un usuario con SPN
krbtgt: es una cuenta interna utilizada por kerberos
DC01: este es elc ontrolador de dominio, este posee el SNP por defecto
El ultimo comando a ejecutar es:
object_by_dn: busca un objeto especifico por su Distinguished Name (DN)
CN=Alexandria,CN=Users,DC=ROOTME,DC=local: esto es el Distinguished Name (DN)


Y ahí nos muestra la bandera del reto
Entonces damos por terminado el reto
Mientras realice el reto aprendi conceptos como SPN y LDAP, tambien un poco el funcionamiento de Active Directory. Comprendi el uso de la herramienta ldap2json, especialmente en su fase de analisis para explorar informacion ya extraida