Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
ShadowSpray — Uma ferramenta para pulverizar Shadow Credentials por todo um domínio na esperança de abusar de DACLs GenericWrite/GenericAll há muito esquecidas sobre outros objetos no domínio. | Kitploit
Ferramentas/GitHubGitHub/dec0ne/shadowspray
Escalada de PrivilégiosAnálise de VulnerabilidadesExploraçãoTestes de PenetraçãoAutenticaçãoRed Teaming
GitHubdec0ne/shadowspray

ShadowSpray

Uma ferramenta para pulverizar Shadow Credentials por todo um domínio na esperança de abusar de DACLs GenericWrite/GenericAll há muito esquecidas sobre outros objetos no domínio.

Ver Repositório
49079há 3 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

ShadowSpray

Uma ferramenta para pulverizar Shadow Credentials por todo um domínio na esperança de abusar de DACLs GenericWrite/GenericAll há muito esquecidas sobre outros objetos no domínio.

Por que esta ferramenta

Em muitos engajamentos, vejo (no BloodHound) que o grupo "Everyone" / "Authenticated Users" / "Domain Users" ou algum outro grupo amplo, que contém quase todos os usuários do domínio, possui algumas DACLs GenericWrite/GenericAll sobre outros objetos no domínio.

example

Esses direitos podem ser abusados para adicionar Shadow Credentials no objeto alvo e obter seu TGT e NT Hash.

Ocorreu-me que podemos simplesmente tentar pulverizar shadow credentials por todo o domínio e ver o que cola (obviamente, essa abordagem é mais adequada para engajamentos não furtivos, não use isso em uma red team onde a furtividade é necessária). Quando uma Shadow Credential é adicionada com sucesso, simplesmente fazemos toda a dança PKINIT + UnPACTheHash e voilà - obtemos NT Hashes.

Como o processo é extremamente rápido, isso pode ser usado no início do engajamento, e esperamos que você tenha alguns usuários e computadores comprometidos antes mesmo de começar.

Nota: Reciclei muito código da minha ferramenta anterior, então AVs/EDRs podem sinalizar isso como KrbRelayUp...

Como esta ferramenta funciona

Funciona mais ou menos assim:

  1. Faça login no domínio com as credenciais fornecidas (ou use a sessão atual).
  2. Verifique se o nível funcional do domínio é 2016 (caso contrário, pare, pois o ataque Shadow Credentials não funcionará)
  3. Obtenha uma lista de todos os objetos no domínio (usuários e computadores) do LDAP.
  4. Para cada objeto na lista, faça o seguinte:
    1. Tente adicionar KeyCredential ao atributo "msDS-KeyCredentialLink" do objeto.
    2. Se o acima for bem-sucedido, use PKINIT para solicitar um TGT usando o KeyCredential adicionado.
    3. Se o acima for bem-sucedido, execute um ataque UnPACTheHash para revelar o NT hash do usuário/computador.
    4. Se --RestoreShadowCred foi especificado: Remova o KeyCredential adicionado (limpe depois de si mesmo...)
  5. Se --Recursive foi especificado: Faça o mesmo processo usando cada uma das contas de usuário/computador que comprometemos com sucesso.

ShadowSpray suporta CTRL+C, então se a qualquer momento você desejar parar a execução, basta pressionar CTRL+C e o ShadowSpray exibirá os NT Hashes recuperados até o momento antes de sair (como mostrado na demonstração abaixo).

Demo

https://user-images.githubusercontent.com/54464773/194827503-b1eead1a-e09a-41ca-9d9b-0a7a6f0ad6a0.mp4

Uso

root@kitploit:~
 __             __   __        __   __   __
/__` |__|  /\  |  \ /  \ |  | /__` |__) |__)  /\  \ /
.__/ |  | /~~\ |__/ \__/ |/\| .__/ |    |  \ /~~\  |


Usage: ShadowSpray.exe [-d FQDN] [-dc FQDN] [-u USERNAME] [-p PASSWORD] [-r] [-re] [-cp CERT_PASSWORD] [-ssl]

    -r   (--RestoreShadowCred)       Restaura o atributo "msDS-KeyCredentialLink" após o ataque ser concluído. (Opcional)
    -re  (--Recursive)               Realiza o ataque ShadowSpray recursivamente. (Opcional)
    -cp  (--CertificatePassword)     Senha do certificado. (padrão = senha aleatória)


General Options:
    -u  (--Username)                 Nome de usuário para autenticação LDAP inicial. (Opcional)
    -p  (--Password)                 Senha para autenticação LDAP inicial. (Opcional)
    -d  (--Domain)                   FQDN do domínio. (Opcional)
    -dc (--DomainController)         FQDN do controlador de domínio. (Opcional)
    -ssl                             Usar LDAP sobre SSL. (Opcional)
    -y  (--AutoY)                    Não perguntar confirmação para iniciar o ataque ShadowSpray. (Opcional)

TODO

  • Refatoração e limpeza do código!!!
  • Adicionar opção de saída detalhada (Verbose)
  • Adicionar opção para salvar KeyCredentials adicionados / TGT solicitados / NT Hashes coletados em um arquivo no disco
  • Versão em Python ;)
  • Outras sugestões serão bem-vindas

Mitigação e Detecção

Retirado do post do blog de Elad Shamir sobre Shadow Credentials:

  • Se a autenticação PKINIT não for comum no ambiente ou não for comum para a conta alvo, o evento “Foi solicitado um tíquete de autenticação Kerberos (TGT)” (4768) pode indicar comportamento anômalo quando os atributos de Informações do Certificado não estiverem em branco.

  • Se uma SACL estiver configurada para auditar modificações de objetos do Active Directory para a conta alvo, o evento “O objeto do serviço de diretório foi modificado” (5136) pode indicar comportamento anômalo se o sujeito que altera o msDS-KeyCredentialLink não for a conta de sincronização do Azure AD Connect ou a conta de serviço do ADFS, que normalmente atuam como Servidor de Provisionamento de Chaves e modificam legitimamente este atributo para os usuários.

  • Um controle preventivo mais específico é adicionar uma Entrada de Controle de Acesso (ACE) para NEGAR ao principal EVERYONE (TODOS) a modificação do atributo msDS-KeyCredentialLink para qualquer conta que não deva ser inscrita na autenticação sem senha Key Trust, e particularmente contas privilegiadas.

  • Detectando UnPACing e shadowed credentials por Henri Hambartsumyan da FalconForce

Detecções específicas do ShadowSpray:

  • Esta ferramenta tenta modificar cada objeto de usuário/computador no domínio em um período muito curto; quando falha (na maioria das vezes), gera um erro LDAP_INSUFFICIENT_ACCESS. É possível construir detecção em torno disso usando a mesma abordagem de detectar pulverização de senhas (password spray) regular.

Agradecimentos

  • Elad Shamir por sua pesquisa sobre Shadow Credentials e sua ferramenta incrível Whisker.
  • Will Schroeder e todos que contribuíram para o Rubeus que todos conhecemos e amamos. Basicamente, toda a funcionalidade TGT/TGS/UnPACTheHash foi retirada de lá.
  • Cube0x0 Parte do código (especificamente as modificações de atributos LDAP via WINAPI) foi retirada de sua ferramenta incrível KrbRelay.
  • Michael Grafnetter por sua ferramenta DSInternals que foi usada aqui para ajudar com a funcionalidade Shadow Credentials.
  • Orange-Cyberdefense por seu trabalho no GOAD, o laboratório de pesquisa do Active Directory que estou usando e que você pode ver no vídeo de demonstração e imagens.
  • Martijn Laarman pela bela barra de progresso usada nesta ferramenta.
Baixar ferramenta