
Analiza y resuelve la DACL de un solo principal de Active Directory para identificar privilegios de acceso entrantes, resolver SIDs y registrar atributos LDAP para la ingesta en BloodHound, lo que permite el análisis dirigido de rutas de escalada de privilegios.
Aced es una herramienta para analizar y resolver la DACL de un único principal de Active Directory objetivo. Aced identificará los privilegios de acceso entrantes interesantes permitidos contra la cuenta objetivo, resolverá los SID de los permisos entrantes y presentará esos datos al operador. Además, las funciones de registro de pyldapsearch se han integrado con Aced para registrar localmente los atributos LDAP del principal objetivo, los cuales pueden ser analizados posteriormente por la herramienta complementaria de pyldapsearch BOFHound para ingerir los datos recopilados en BloodHound.
Escribí Aced simplemente porque quería un enfoque más dirigido para consultar ACL. Bloodhound es fantástico, sin embargo, es extremadamente ruidoso. Bloodhound recopila todo, mientras que Aced recopila una sola cosa, brindando al operador un mayor control sobre cómo y qué datos se recopilan. El caso de detección se reduce al consultar solo lo que LDAP desea decirle y al no realizar una acción conocida como "consultas LDAP costosas". Aced tiene la opción de prescindir de las conexiones SMB para la resolución de nombres de host. Tiene la opción de preferir LDAPS sobre LDAP. Con la integración adicional con BloodHound, los datos recopilados se pueden almacenar en un formato familiar que se puede compartir con un equipo. Se pueden construir rutas de escalada de privilegios retrocediendo desde el objetivo designado.
Gracias a los siguientes por todo el código que tomé prestado:
@_dirkjan
@fortaliceLLC
@eloygpz
@coffeegist
@tw1sm
└─# python3 aced.py -h
_____
|A . | _____
| /.\ ||A ^ | _____
|(_._)|| / \ ||A _ | _____
| | || \ / || ( ) ||A_ _ |
|____V|| . ||(_'_)||( v )|
|____V|| | || \ / |
|____V|| . |
|____V|
v1.0
Parse and log a target principal's DACL.
@garrfoster
usage: aced.py [-h] [-ldaps] [-dc-ip DC_IP] [-k] [-no-pass] [-hashes LMHASH:NTHASH] [-aes hex key] [-debug] [-no-smb] target
Tool to enumerate a single target's DACL in Active Directory
optional arguments:
-h, --help show this help message and exit
Authentication:
target [[domain/username[:password]@]<address>
-ldaps Use LDAPS isntead of LDAP
Optional Flags:
-dc-ip DC_IP IP address or FQDN of domain controller
-k, --kerberos Use Kerberos authentication. Grabs credentials from ccache file (KRB5CCNAME) based on target parameters. If valid
credentials cannot be found, it will use the ones specified in the command line
-no-pass don't ask for password (useful for -k)
-hashes LMHASH:NTHASH
LM and NT hashes, format is LMHASH:NTHASH
-aes hex key AES key to use for Kerberos Authentication (128 or 256 bits)
-debug Enable verbose logging.
-no-smb Do not resolve DC hostname through SMB. Requires a FQDN with -dc-ip.
En la siguiente demostración, tenemos las credenciales de la cuenta corp.local\lowpriv. Al comenzar la enumeración en Administradores de dominio, se identifica una posible ruta de escalada de privilegios retrocediendo desde el objetivo de alto valor.
Y aquí se ve cómo se ven esos datos transformados por bofhound e ingeridos en BloodHound.
