
Whisker é uma ferramenta C# para assumir contas de usuário e computador do Active Directory manipulando seu atributo msDS-KeyCredentialLink, adicionando efetivamente "Shadow Credentials" à conta alvo.
Whisker é uma ferramenta em C# para assumir contas de usuário e computador do Active Directory manipulando seu atributo msDS-KeyCredentialLink, efetivamente adicionando "Shadow Credentials" à conta alvo.
Esta ferramenta é baseada em código do DSInternals por Michael Grafnetter (@MGrafnetter).
Para que este ataque tenha sucesso, o ambiente deve ter um Controlador de Domínio executando pelo menos Windows Server 2016, e o Controlador de Domínio deve ter um certificado de autenticação de servidor para permitir a autenticação Kerberos PKINIT.
Mais detalhes estão disponíveis no post Shadow Credentials: Abusing Key Trust Account Mapping for Takeover.

/target:<samAccountName>: Obrigatório. Define o nome do alvo. Objetos de computador devem terminar com o sinal '$'.
/domain:<FQDN>: Opcional. Define o Nome de Domínio Totalmente Qualificado (FQDN) do alvo. Se não for fornecido, tentará resolver o FQDN do usuário atual.
/dc:<IP/HOSTNAME>: Opcional. Define o Controlador de Domínio (DC) alvo. Se não for fornecido, tentará atingir 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 for fornecido, o certificado será impresso como um blob Base64.
/password:<PASWORD>: Opcional. Define a senha para o certificado autoassinado armazenado. Se não for 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
/target:<samAccountName>: Obrigatório. Define o nome do alvo. Objetos de computador devem terminar com o sinal '$'.
/deviceID:<GUID>: Obrigatório. Define o DeviceID do valor a ser removido do atributo msDS-KeyCredentialLink do objeto alvo. Deve ser um GUID válido.
/domain:<FQDN>: Opcional. Define o Nome de Domínio Totalmente Qualificado (FQDN) do alvo. Se não for fornecido, tentará resolver o FQDN do usuário atual.
/dc:<IP/HOSTNAME>: Opcional. Define o Controlador de Domínio (DC) alvo. Se não for fornecido, tentará atingir o Controlador de Domínio Primário (PDC).
Exemplo: Whisker.exe remove /target:computername$ /domain:constoso.local /dc:dc1.contoso.local /deviceid:2de4643a-2e0b-438f-a99d-5cb058b3254b
/target:<samAccountName>: Obrigatório. Define o nome do alvo. Objetos de computador devem terminar com o sinal '$'.
/domain:<FQDN>: Opcional. Define o Nome de Domínio Totalmente Qualificado (FQDN) do alvo. Se não for fornecido, tentará resolver o FQDN do usuário atual.
/dc:<IP/HOSTNAME>: Opcional. Define o Controlador de Domínio (DC) alvo. Se não for fornecido, tentará atingir o Controlador de Domínio Primário (PDC).
Exemplo: Whisker.exe clear /target:computername$ /domain:constoso.local /dc:dc1.contoso.local
⚠️ Aviso: Limpar o atributo msDS-KeyCredentialLink de contas configuradas para autenticação sem senha causará interrupções.
/target:<samAccountName>: Obrigatório. Define o nome do alvo. Objetos de computador devem terminar com o sinal '$'.
/domain:<FQDN>: Opcional. Define o Nome de Domínio Totalmente Qualificado (FQDN) do alvo. Se não for fornecido, tentará resolver o FQDN do usuário atual.
/dc:<IP/HOSTNAME>: Opcional. Define o Controlador de Domínio (DC) alvo. Se não for fornecido, tentará atingir o Controlador de Domínio Primário (PDC).
Exemplo: Whisker.exe list /target:computername$ /domain:constoso.local /dc:dc1.contoso.local