External Forest Domain - One-Way (Outbound)
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP:
HackTricks Training GCP Red Team Expert (GRTE)
Neste cenário seu domínio está confiando alguns privilégios a um principal de domínios diferentes.
Enumeração
Confiança de Saída
Ataque à Conta de Confiança
Uma vulnerabilidade de segurança existe quando uma relação de confiança é estabelecida entre dois domínios, identificados aqui como domínio A e domínio B, onde o domínio B estende sua confiança ao domínio A. Nesse arranjo, uma conta especial é criada no domínio A para o domínio B, que desempenha um papel crucial no processo de autenticação entre os dois domínios. Esta conta, associada ao domínio B, é utilizada para criptografar tickets para acessar serviços entre os domínios.
O aspecto crítico a entender aqui é que a senha e o hash desta conta especial podem ser extraídos de um Controlador de Domínio no domínio A usando uma ferramenta de linha de comando. O comando para realizar essa ação é:
Esta extração é possível porque a conta, identificada com um $ após seu nome, está ativa e pertence ao grupo "Domain Users" do domínio A, herdando assim as permissões associadas a este grupo. Isso permite que indivíduos se autentiquem no domínio A usando as credenciais desta conta.
Warning: É viável aproveitar essa situação para obter uma base no domínio A como um usuário, embora com permissões limitadas. No entanto, esse acesso é suficiente para realizar enumeração no domínio A.
Em um cenário onde ext.local
é o domínio confiável e root.local
é o domínio confiável, uma conta de usuário chamada EXT$
seria criada dentro de root.local
. Através de ferramentas específicas, é possível despejar as chaves de confiança do Kerberos, revelando as credenciais de EXT$
em root.local
. O comando para alcançar isso é:
Seguindo isso, poderia-se usar a chave RC4 extraída para autenticar como root.local\EXT$
dentro de root.local
usando outro comando de ferramenta:
Esta etapa de autenticação abre a possibilidade de enumerar e até explorar serviços dentro de root.local
, como realizar um ataque Kerberoast para extrair credenciais de contas de serviço usando:
Coletando a senha de confiança em texto claro
No fluxo anterior, foi utilizado o hash de confiança em vez da senha em texto claro (que também foi extraída pelo mimikatz).
A senha em texto claro pode ser obtida convertendo a saída [ CLEAR ] do mimikatz de hexadecimal e removendo bytes nulos ‘\x00’:
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F910640767-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FjzQiXe8oFAkPoN0MXcUG%252Fuploads%252Fgit-blob-0f8a86733fb5f126d4465dd9269a0703cb1f11bb%252Fimage%2520%28938%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=8aedf6a0&sv=1)
Às vezes, ao criar um relacionamento de confiança, uma senha deve ser digitada pelo usuário para a confiança. Nesta demonstração, a chave é a senha original de confiança e, portanto, legível por humanos. À medida que a chave muda (a cada 30 dias), o texto claro não será legível por humanos, mas tecnicamente ainda utilizável.
A senha em texto claro pode ser usada para realizar autenticação regular como a conta de confiança, uma alternativa a solicitar um TGT usando a chave secreta Kerberos da conta de confiança. Aqui, consultando root.local a partir de ext.local para membros do Domain Admins:
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F910640767-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FjzQiXe8oFAkPoN0MXcUG%252Fuploads%252Fgit-blob-847a8c4e7b548cab57d11fe84ac44b8cb99bc9a1%252Fimage%2520%28792%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=7ed2136a&sv=1)
Referências
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP:
HackTricks Training GCP Red Team Expert (GRTE)
Last updated