
Analisa e resolve a DACL de um único principal do Active Directory para identificar privilégios de acesso de entrada, resolver SIDs e registrar atributos LDAP para ingestão no BloodHound, permitindo análise direcionada de caminhos de escalonamento de privilégios.
Aced é uma ferramenta para analisar e resolver o DACL de uma única entidade do Active Directory alvo. O Aced irá identificar privilégios de acesso de entrada interessantes permitidos contra a conta alvo, resolver os SIDs das permissões de entrada e apresentar esses dados ao operador. Adicionalmente, os recursos de registro do pyldapsearch foram integrados ao Aced para registrar localmente os atributos LDAP da entidade alvo, que podem então ser analisados pela ferramenta companheira do pyldapsearch, BOFHound, para ingerir os dados coletados no BloodHound.
Escrevi o Aced simplesmente porque queria uma abordagem mais direcionada para consultar ACLs. Bloodhound é fantástico, no entanto, é extremamente ruidoso. Bloodhound coleta todas as coisas enquanto o Aced coleta uma única coisa, fornecendo ao operador mais controle sobre como e quais dados são coletados. O caso para detecção é reduzido ao consultar apenas o que o LDAP quer lhe dizer e ao não realizar uma ação conhecida como "expensive ldap queries". O Aced tem a opção de dispensar conexões SMB para resolução de nomes de host. Você tem a opção de preferir LDAPS em vez de LDAP. Com a integração adicional com o BloodHound, os dados coletados podem ser armazenados em um formato familiar que pode ser compartilhado com uma equipe. Caminhos de ataque de escalada de privilégio podem ser construídos percorrendo para trás a partir do alvo desejado.
Agradecimentos aos abaixo por todo o código que roubei:
@_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.
Na demonstração abaixo, temos as credenciais para a conta corp.local\lowpriv. Ao iniciar a enumeração em Domain Admins, um potencial caminho para escalada de privilégio é identificado percorrendo para trás a partir do alvo de alto valor.
E aqui está como esses dados se parecem quando transformados pelo bofhound e ingeridos no BloodHound.
