
Analysiert und löst die DACL eines einzelnen Active Directory-Principals auf, um eingehende Zugriffsberechtigungen zu identifizieren, SIDs aufzulösen und LDAP-Attribute für den Import in BloodHound zu protokollieren, was eine gezielte Analyse von Privilegieneskalationspfaden ermöglicht.
Aced ist ein Tool zum Parsen und Auflösen des DACL eines einzelnen gezielten Active-Directory-Prinzipals. Aced identifiziert interessante eingehende Zugriffsberechtigungen gegen das Zielkonto, löst die SIDs der eingehenden Berechtigungen auf und präsentiert diese Daten dem Bediener. Darüber hinaus wurden die Logging-Funktionen von pyldapsearch in Aced integriert, um die LDAP-Attribute des Zielprinzipals lokal zu protokollieren, die dann mit dem zugehörigen Tool BOFHound von pyldapsearch analysiert werden können, um die gesammelten Daten in BloodHound zu importieren.
Ich habe Aced geschrieben, einfach weil ich einen gezielteren Ansatz zum Abfragen von ACLs haben wollte. BloodHound ist fantastisch, jedoch extrem laut. BloodHound sammelt alles, während Aced eine einzelne Sache sammelt und dem Bediener mehr Kontrolle darüber gibt, wie und welche Daten erfasst werden. Die Erkennbarkeit wird reduziert, indem nur das abgefragt wird, was LDAP preisgeben will, und indem keine Aktionen durchgeführt werden, die als "teure LDAP-Abfragen" bekannt sind. Aced bietet die Möglichkeit, auf SMB-Verbindungen zur Hostnamenauflösung zu verzichten. Sie haben die Wahl, LDAPS gegenüber LDAP zu bevorzugen. Durch die zusätzliche Integration mit BloodHound können die gesammelten Daten in einem vertrauten Format gespeichert und mit einem Team geteilt werden. Privilegieneskalations-Angriffspfade können aufgebaut werden, indem man vom Zielobjekt rückwärts geht.
Danke an die folgenden Personen für den Code, den ich geklaut habe:
@_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.
In der untenstehenden Demo haben wir die Anmeldedaten für das Konto corp.local\lowpriv. Durch das Starten der Aufzählung bei den Domänenadministratoren wird ein möglicher Pfad zur Privilegieneskalation identifiziert, indem man vom hochwertigen Ziel rückwärts geht.
Und so sehen diese Daten aus, nachdem sie von bofhound umgewandelt und in BloodHound importiert wurden.
