
dalanche es una seguridad de Active Directory que es notoriamente difícil. Las organizaciones pequeñas generalmente no tienen idea de lo que están haciendo, y simplemente se agregan demasiadas personas a los administradores de dominio. En las grandes organizaciones hay un gran número de personas con diferentes necesidades a las que se les delega el acceso a diferentes poderes en la AD. En algún momento, alguien comete un error y puede costarle caro.
Ejecute adalanche en su propia infraestructura
Debe asegurarse de tener permiso antes de hacer esto 🙂 Aunque el software es inofensivo, solo usa el servicio LDAP para leer datos cada usuario acceso, su equipo de infraestructura / SOC aún podría enojarse mucho con usted.
Inicio rápido, elija uno de ellos:
- Construye tu propio:
- Instalar go 1.16
go build
– Tiene un archivo binario para su sistema operativobuild
– Tienes binarios para Windows, Linux y OSX
- Descargue los artefactos binarios de la pestaña Acciones para cada confirmación final
- Descargue la última versión de los lanzamientos (en realidad, no es el preferido, ya que todos los lanzamientos parecen desactualizados con nuevas confirmaciones unos días después)
La herramienta intenta detectar automáticamente tanto como sea posible, por lo que la ejecución en una computadora que se ha unido a un dominio de Windows debería funcionar sin parámetros: adalanche.exe
Si no se da ningún comando, la herramienta se ejecuta en un modo de análisis de volcado (volcado, luego análisis). Consulte las opciones del programa para obtener más opciones.
Si está en una computadora con Windows sin una unión de dominio o en otro sistema operativo, también necesita al menos el parámetro -domain.
LDAPS (TLS sobre el puerto 636) es la configuración predeterminada. Si se encuentra en un laboratorio y aún no ha configurado la CA, se producirán errores de conexión porque la computadora no confía en el certificado AD. Cambie a LDAP con adalanche -authmode NoTLS -port 389
Cree un archivo de caché para contoso.local: adalanche -domain contoso.local -username joe -password Hunter42 dump
Analice el archivo de caché para contoso.local e inicie el navegador: adalanche -domain contoso.local analyze
interfaz de usuario
Al principio, puede ver quién puede pwn «Administradores de dominio» y «Administradores de empresa». Los destinos de la consulta están marcados en ROJO. Si puede obtener muchos artículos aquí, felicitaciones, está ejecutando una pwnshop.
Los siguientes ejemplos se cargaron desde el dominio contenido beyond.local, un dominio sintético que se estropeó torpemente con BadBlood. Puedes probar el mismo análisis con: adalanche -domain beyond.local analyze
Su navegador debería aparecer con:

Resultados no realmente emocionantes en este AD sintético. Sí, algunos usuarios son administradores de dominio y administradores. Pero ampliemos un poco la búsqueda.
métodos analíticos
Haga clic en la pestaña Métodos de análisis en la parte inferior de la página y obtendrá:

(se han agregado más métodos desde esta captura de pantalla)
La herramienta puede buscar muchos escenarios, pero de forma predeterminada utiliza escenarios bastante simples que le dan el control de un objeto. Dado que esto no arrojó nada, intentaremos expandir con todos los métodos activados. Si marcamos las casillas que faltan, enviaremos otra solicitud.
Ventana emergente para consultas LDAP
Si hace clic en la pestaña «Consulta LDAP» en la parte inferior de la página, obtendrá la interfaz de búsqueda:

Ingresa una consulta para las cosas que desea buscar. Opcionalmente, también puede agregar una consulta de exclusión secundaria separando las consultas de inclusión y exclusión con una coma. Las cosas que coinciden en la consulta de exclusión nunca se agregan a los resultados.
- El botón «Consultas» es solo para inspirarte, con algunas consultas predefinidas para que puedas comenzar.
- El botón «Seguro» / «Forzar» le permite ejecutar solicitudes que devuelven más de 1000 objetos (posiblemente causando que la pestaña de su navegador se bloquee).
- «Max. Profundidad ”puede limitar los resultados moviéndose no más allá de esta profundidad de un objetivo.
Analizar:
- Búsqueda normal de otros objetos que pueden seleccionar la selección en su consulta LDAP (es decir, quién puede llegar a esos objetos)
- Búsquedas inversas de objetos que pueden convertir sus objetivos de consulta LDAP (es decir, qué pueden lograr estos objetos)
Marqué «Forzar» porque me advirtieron que el análisis devolvería más de 1000 objetos y presioné «Analizar / Normal».

Vaya, eso es mucho. Pero, ¿pueden todos estos objetos hacerse cargo de repente? No, no necesariamente, depende de los métodos de análisis utilizados. Hemos activado los métodos CanDelete *, CanCreate * y InheritsSecurity.
Examinemos lo que está sucediendo aquí: haga clic con el botón derecho en uno de sus objetivos y seleccione «Establecer como objetivo».

Luego haga clic derecho en otra persona y seleccione «Reenviar a destino».

Luego obtendrá una ruta que muestra la mejor manera de llegar al destino.

Entonces, el problema aquí es solo que los grupos son miembros anidados de otros grupos, pero al final verá que alguien configuró la marca DELETE_CHILD en el contenedor principal, lo que le da derecho a eliminar (o posiblemente mover) el objetivo. Eso se ve mal, ¿no?
Si examina el objeto Usuarios de dominio, encontrará que no tiene el indicador InheritsSecurity, por lo que no puede realmente moverlo.
Así que pruébelo con sus propios datos: vea lo que su usuario puede pwn buscando (& (objectCategory = Person) (Name = YOURLOGIN)) y haga una búsqueda inversa. Tal vez termines con los grupos de los que eres miembro, tal vez tengas acceso a más de los que crees …
Recuerde, puede obtener demasiados resultados. Limite la elección de objetivos con (& (atributo = algo) (_ límite = 10)) para obtener solo 10 objetivos aleatorios (consulte las consultas LDAP a continuación)
Teoría de funcionamiento
dalanche funciona de manera un poco diferente a otras herramientas, ya que genera todo lo que puede desde un servidor de Active Directory, que luego almacena en un archivo de caché binario altamente comprimido para su uso posterior. Cualquier usuario sin privilegios puede realizar este volcado a menos que Active Directory se haya reforzado para evitarlo (casi nadie lo hace).
La fase de análisis se lleva a cabo en un archivo de caché para que no tenga que estar conectado a los sistemas durante el análisis. Esto le permite explorar diferentes escenarios y hacer preguntas que de otro modo no serían fáciles de responder.
Análisis / visualización
La herramienta funciona como un mapa interactivo en su navegador y, de forma predeterminada, utiliza una consulta de búsqueda LDAP que le muestra cómo convertirse en un «Administrador de dominio» o «Administrador de empresa» (es decir, un miembro de este grupo o la adquisición de una cuenta que es Miembro directo o indirecto de estos grupos.
Consultas LDAP
La herramienta tiene su propio analizador de consultas LDAP y facilita la búsqueda de otros objetos para transferir utilizando un lenguaje de búsqueda familiar.
Las consultas admiten:
- Todos los nombres de atributos no distinguen entre mayúsculas y minúsculas
- Verifique si un atributo está presente con la sintaxis de asterisco (miembro = *)
- Los valores de cadena de caracteres con igual (=) no distinguen entre mayúsculas y minúsculas
- Comparación de enteros con los operadores <, <=, > y> =
- búsqueda glob con igualdad si el valor de búsqueda? o *
- Mayúsculas / minúsculas en la búsqueda de expresiones regulares con igualdad, si el valor de búsqueda está entre barras: (nombre = / ^ Sir. * Mix. * Lot $ / (se puede usar con / (? I) patrón / banderas independientemente de la mayúsculas / minúsculas, consulte https: // github.com/google/re2/wiki/Syntax)
- coincidencia expandible: 1.2.840.113556.1.4.803 (también puede usar: y 🙂 LDAP_MATCHING_RULE_BIT_AND
- coincidencia expandible: 1.2.840.113556.1.4.804 (también puede usar: o 🙂 LDAP_MATCHING_RULE_BIT_OR
- coincidencia expandible: 1.2.840.113556.1.4.1941 (también puede usar: dnchain 🙂 LDAP_MATCHING_RULE_IN_CHAIN
- coincidencia extensible personalizada: recuento: devuelve el número de valores de atributo (miembro: recuento:> 20 indica grupos con más de 20 miembros)
- coincidencia extensible personalizada: longitud – coincidencias de longitud de valores de atributo (nombre: longitud:> 20 le da objetos con nombres largos)
- coincidencia expandible personalizada: da – analiza el atributo como una marca de tiempo y su valor como una duración – pwdLastSet: since: <- 6Y5M4D3h2m1s (pawLastSet es menor que el tiempo 6 años, 5 meses, 4 días, 3 horas, 2 minutos y 1 segundo hace - o simplemente pase un número entero que represente directamente los segundos)
- atributo sintético: _limit (_limit = 10) devuelve verdadero para los primeros 10 resultados y falso para los demás, por lo que obtiene un máximo de 10 elementos
- atributo sintético: _random100 (_random100 <10) le permite devolver un porcentaje aleatorio de los resultados (& (objectclass = person) (_ random100 <1)) le da el 1% de los usuarios
- atributo sintético: _canpwn: le permite seleccionar objetos en función de lo que pueden pwn directo (& (objectclass = Group) (_ canpwn = ResetPassword)) le da a todos los grupos asignados el derecho de restablecer la contraseña
- atributo sintético: _pwnable: le permite seleccionar objetos en función de cómo se pueden pwnable directo (& (objectclass = Person) (_ pwnable = ResetPassword)) le brinda a todos los usuarios cuya contraseña se puede restablecer