
Analyse et résout la DACL d'un seul principal Active Directory pour identifier les privilèges d'accès entrants, résoudre les SID et enregistrer les attributs LDAP pour l'ingestion dans BloodHound, permettant une analyse ciblée des chemins d'élévation de privilèges.
Aced est un outil pour analyser et résoudre la DACL d'un principal Active Directory ciblé unique. Aced identifiera les privilèges d'accès entrants intéressants autorisés sur le compte ciblé, résoudra les SID des autorisations entrantes et présentera ces données à l'opérateur. De plus, les fonctionnalités de journalisation de pyldapsearch ont été intégrées à Aced pour journaliser localement les attributs LDAP du principal ciblé, qui peuvent ensuite être analysés par l'outil compagnon de pyldapsearch, BOFHound, pour ingérer les données collectées dans BloodHound.
J'ai écrit Aced simplement parce que je voulais une approche plus ciblée pour interroger les ACL. Bloodhound est fantastique, cependant, il est extrêmement bruyant. Bloodhound collecte tout tandis qu'Aced collecte une seule chose, offrant à l'opérateur plus de contrôle sur la manière et les données collectées. Le risque de détection est réduit en n'interrogeant que ce que LDAP veut vous dire et en n'effectuant pas une action connue sous le nom de "requêtes LDAP coûteuses". Aced a l'option de renoncer aux connexions SMB pour la résolution de nom d'hôte. Vous avez la possibilité de préférer LDAPS à LDAP. Avec l'intégration supplémentaire avec BloodHound, les données collectées peuvent être stockées dans un format familier qui peut être partagé avec une équipe. Les chemins d'attaque d'élévation de privilèges peuvent être construits en remontant à partir de l'objectif ciblé.
Merci aux personnes ci-dessous pour tout le code que j'ai volé :
@_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.
Dans la démonstration ci-dessous, nous avons les identifiants du compte corp.local\lowpriv. En commençant l'énumération par les administrateurs de domaine, un chemin potentiel d'élévation de privilèges est identifié en remontant à partir de la cible de haute valeur.
Et voici à quoi ressemblent ces données une fois transformées par bofhound et ingérées dans BloodHound.
