11 KiB
Credenciais Shadow
☁️ HackTricks Cloud ☁️ - 🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- Você trabalha em uma empresa de cibersegurança? Gostaria de ver sua empresa anunciada no HackTricks? ou gostaria de ter acesso à última versão do PEASS ou baixar o HackTricks em PDF? Confira os PLANOS DE ASSINATURA!
- Descubra A Família PEASS, nossa coleção exclusiva de NFTs
- Adquira o swag oficial do PEASS & HackTricks
- Junte-se ao 💬 grupo Discord ou ao grupo telegram ou siga-me no Twitter 🐦 @carlospolopm.
- Compartilhe seus truques de hacking enviando PRs para o repositório hacktricks e repositório hacktricks-cloud.
Introdução
Verifique a postagem original para todas as informações sobre essa técnica.
Em resumo: se você puder escrever na propriedade msDS-KeyCredentialLink de um usuário/computador, você pode recuperar o hash NT desse objeto.
Isso ocorre porque você poderá definir credenciais de autenticação de chave pública-privada para o objeto e usá-las para obter um Ticket de Serviço especial que contém seu hash NT dentro do Certificado de Atributo de Privilégio (PAC) em uma entidade NTLM_SUPPLEMENTAL_CREDENTIAL criptografada que você pode descriptografar.
Requisitos
Essa técnica requer o seguinte:
- Pelo menos um Controlador de Domínio do Windows Server 2016.
- Um certificado digital para Autenticação de Servidor instalado no Controlador de Domínio.
- Nível Funcional do Windows Server 2016 no Active Directory.
- Comprometer uma conta com direitos delegados para escrever no atributo msDS-KeyCredentialLink do objeto alvo.
Abuso
Abusar do Key Trust para objetos de computador requer etapas adicionais após obter um TGT e o hash NT da conta. Geralmente, existem duas opções:
- Forjar um ticket silver RC4 para se passar por usuários privilegiados no host correspondente.
- Usar o TGT para chamar S4U2Self para se passar por usuários privilegiados no host correspondente. Esta opção requer modificar o Ticket de Serviço obtido para incluir uma classe de serviço no nome do serviço.
O abuso do Key Trust tem o benefício adicional de que não delega acesso a outra conta que poderia ser comprometida — ele é restrito à chave privada gerada pelo atacante. Além disso, não requer a criação de uma conta de computador que pode ser difícil de limpar até que a escalada de privilégios seja alcançada.
Whisker
Junto com esta postagem, estou lançando uma ferramenta chamada " Whisker ". Com base no código do DSInternals de Michael, o Whisker fornece um wrapper C# para realizar esse ataque em engajamentos. O Whisker atualiza o objeto alvo usando LDAP, enquanto o DSInternals permite atualizar objetos usando tanto LDAP quanto RPC com o Serviço de Replicação de Diretório (DRS) Remote Protocol.
Whisker possui quatro funções:
- Add — Esta função gera um par de chaves pública-privada e adiciona uma nova credencial de chave ao objeto alvo como se o usuário tivesse se inscrito no WHfB a partir de um novo dispositivo.
- List — Esta função lista todas as entradas do atributo msDS-KeyCredentialLink do objeto alvo.
- Remove — Esta função remove uma credencial de chave do objeto alvo especificada por um GUID de DeviceID.
- Clear — Esta função remove todos os valores do atributo msDS-KeyCredentialLink do objeto alvo. Se o objeto alvo estiver usando legitimamente o WHfB, ele será quebrado.
Whisker
Whisker é uma ferramenta C# para assumir o controle de contas de usuário e computador do Active Directory manipulando seu atributo msDS-KeyCredentialLink
, adicionando efetivamente "Credenciais Shadow" à conta de destino.
Whisker possui quatro funções:
- Add — Esta função gera um par de chaves pública-privada e adiciona uma nova credencial de chave ao objeto alvo como se o usuário tivesse se inscrito no WHfB a partir de um novo dispositivo.
- List — Esta função lista todas as entradas do atributo msDS-KeyCredentialLink do objeto alvo.
- Remove — Esta função remove uma credencial de chave do objeto alvo especificada por um GUID de DeviceID.
- Clear — Esta função remove todos os valores do atributo msDS-KeyCredentialLink do objeto alvo. Se o objeto alvo estiver usando legitimamente o WHfB, ele será quebrado.
Add
Adicione um novo valor ao atributo msDS-KeyCredentialLink
de um objeto alvo:
/target:<samAccountName>
: Obrigatório. Define o nome do alvo. Objetos de computador devem terminar com um sinal '$'./domain:<FQDN>
: Opcional. Define o Nome de Domínio Completo (FQDN) do alvo. Se não fornecido, tentará resolver o FQDN do usuário atual./dc:<IP/HOSTNAME>
: Opcional. Define o Controlador de Domínio (DC) de destino. Se não fornecido, tentará direcionar o Controlador de Domínio Primário (PDC)./path:<PATH>
: Opcional. Define o caminho para armazenar o certificado autoassinado gerado para autenticação. Se não fornecido, o certificado será exibido como um blob Base64./password:<PASWORD>
: Opcional. Define a senha para o certificado autoassinado armazenado. Se não fornecido, uma senha aleatória será gerada.
Exemplo: Whisker.exe add /target:computername$ /domain:constoso.local /dc:dc1.contoso.local /path:C:\path\to\file.pfx /password:P@ssword1
{% hint style="info" %} Mais opções no Readme. {% endhint %}
pywhisker
pyWhisker é um equivalente em Python do Whisker original feito por Elad Shamir e escrito em C#. Essa ferramenta permite aos usuários manipular o atributo msDS-KeyCredentialLink de um usuário/computador alvo para obter controle total sobre esse objeto.
É baseado no Impacket e em um equivalente em Python do DSInternals de Michael Grafnetter chamado PyDSInternals feito por podalirius. Essa ferramenta, juntamente com as PKINITtools de Dirk-jan, permitem uma exploração primitiva completa apenas em sistemas baseados em UNIX.
pyWhisker pode ser usado para operar várias ações no atributo msDs-KeyCredentialLink de um alvo
- list: lista todos os IDs e horários de criação atuais das KeyCredentials
- info: imprime todas as informações contidas em uma estrutura KeyCredential
- add: adiciona uma nova KeyCredential ao msDs-KeyCredentialLink
- remove: remove uma KeyCredential do msDs-KeyCredentialLink
- clear: remove todas as KeyCredentials do msDs-KeyCredentialLink
- export: exporta todas as KeyCredentials do msDs-KeyCredentialLink em JSON
- import: sobrescreve o msDs-KeyCredentialLink com KeyCredentials de um arquivo JSON
pyWhisker suporta as seguintes autenticações:
- (NTLM) Senha em texto puro
- (NTLM) Pass-the-hash
- (Kerberos) Senha em texto puro
- (Kerberos) Pass-the-key / Overpass-the-hash
- (Kerberos) Pass-the-cache (tipo de Pass-the-ticket)
{% hint style="info" %} Mais opções no Readme. {% endhint %}
ShadowSpray
Em vários casos, o grupo "Everyone" / "Authenticated Users" / "Domain Users" ou algum outro grupo amplo contém quase todos os usuários no domínio e possui algumas DACLs de GenericWrite / GenericAll sobre outros objetos no domínio. ShadowSpray tenta abusar portanto das Credenciais Shadow sobre todos eles
Funciona da seguinte maneira:
- Faça login no domínio com as credenciais fornecidas (ou use a sessão atual).
- Verifique se o nível funcional do domínio é 2016 (Caso contrário, pare, pois o ataque de Credenciais Shadow não funcionará)
- Reúna uma lista de todos os objetos no domínio (usuários e computadores) do LDAP.
- Para cada objeto na lista, faça o seguinte:
- Tente adicionar KeyCredential ao atributo
msDS-KeyCredentialLink
do objeto. - Se o acima for bem-sucedido, use PKINIT para solicitar um TGT usando o KeyCredential adicionado.
- Se o acima for bem-sucedido, execute um ataque UnPACTheHash para revelar o hash NT do usuário/computador.
- Se
--RestoreShadowCred
foi especificado: Remova o KeyCredential adicionado (limpeza após o uso...) - Se
--Recursive
foi especificado: Faça o mesmo processo usando cada uma das contas de usuário/computador que possuímos com sucesso.
Referências
- https://posts.specterops.io/shadow-credentials-abusing-key-trust-account-mapping-for-takeover-8ee1a53566ab
- https://github.com/eladshamir/Whisker
- https://github.com/Dec0ne/ShadowSpray/
☁️ HackTricks Cloud ☁️ - 🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- Você trabalha em uma empresa de cibersegurança? Gostaria de ver sua empresa anunciada no HackTricks? ou gostaria de ter acesso à última versão do PEASS ou baixar o HackTricks em PDF? Confira os PLANOS DE ASSINATURA!
- Descubra A Família PEASS, nossa coleção exclusiva de NFTs
- Adquira o swag oficial do PEASS & HackTricks
- Junte-se ao 💬 grupo Discord ou ao grupo telegram ou siga-me no Twitter 🐦 @carlospolopm.
- Compartilhe seus truques de hacking enviando PRs para o repositório hacktricks e repositório hacktricks-cloud.