Whisker

Post-Exploitation >1 года

C#-инструмент для захвата учётных записей пользователей и компьютеров Active Directory через манипуляцию атрибутом msDS-KeyCredentialLink ('Shadow Credentials').


Установка
git clone https://github.com/eladshamir/Whisker.git
# Visual Studio: открыть Whisker.sln -> Build
# или командная строка:
dotnet build Whisker.csproj
# Готовый EXE доступен в GitHub Releases
показать оригинал переведено ИИ

Whisker

Whisker — это утилита на языке C# для захвата учётных записей пользователей и компьютеров Active Directory путем изменения их атрибута msDS-KeyCredentialLink, что эффективно добавляет «Shadow Credentials» на целевую учётную запись.

Этот инструмент основан на коде проекта DSInternals Майкла Графнеттера (@MGrafnetter).

Для успешного выполнения этой атаки среда должна содержать контроллер домена, работающий не ранее чем на Windows Server 2016, а также контроллер домена должен иметь сертификат серверной аутентификации для поддержки аутентификации PKINIT Kerberos.

Дополнительные детали доступны в статье Shadow Credentials: Abusing Key Trust Account Mapping for Takeover.

Использование

Добавить новое значение атрибута msDS-KeyCredentialLink целевого объекта:

  • /target:<samAccountName>: Обязательный параметр. Укажите имя целевой учётной записи. Объекты компьютеров должны оканчиваться символом '$'.
  • /domain:<FQDN>: Необязательный параметр. Укажите полное доменное имя (FQDN) целевой учётной записи. Если не указано, будет попытка разрешить FQDN текущей пользователя.
  • /dc:<IP/HOSTNAME>: Необязательный параметр. Укажите целевой контроллер домена (DC). Если не указано, будет использоваться основной контроллер домена (PDC).
  • /path:<PATH>: Необязательный параметр. Укажите путь для сохранения созданного самоподписанного сертификата для аутентификации. Если не указано, сертификат будет выведен как Base64-строка.
  • /password:<PASWORD>: Необязательный параметр. Укажите пароль для сохранённого самоподписанного сертификата. Если не указано, будет сгенерирован случайный пароль.

Пример: Whisker.exe add /target:computername$ /domain:constoso.local /dc:dc1.contoso.local /path:C:\path\to\file.pfx /password:P@ssword1

Удалить значение из атрибута msDS-KeyCredentialLink целевого объекта:

  • /target:<samAccountName>: Обязательный параметр. Укажите имя целевой учётной записи. Объекты компьютеров должны оканчиваться символом '$'.
  • /deviceID:<GUID>: Обязательный параметр. Укажите DeviceID значения, которое необходимо удалить из атрибута msDS-KeyCredentialsLink целевого объекта. Должен быть допустимым GUID.
  • /domain:<FQDN>: Необязательный параметр. Укажите полное доменное имя (FQDN) целевой учётной записи. Если не указано, будет попытка разрешить FQDN текущей пользователя.
  • /dc:<IP/HOSTNAME>: Необязательный параметр. Укажите целевой контроллер домена (DC). Если не указано, будет использоваться основной контроллер домена (PDC).

Пример: Whisker.exe remove /target:computername$ /domain:constoso.local /dc:dc1.contoso.local /deviceid:2de4643a-2e0b-438f-a99d-5cb058b3254b

Очистить все значения атрибута msDS-KeyCredentialLink целевого объекта:

  • /target:<samAccountName>: Обязательный параметр. Укажите имя целевой учётной записи. Объекты компьютеров должны оканчиваться символом '$'.
  • /domain:<FQDN>: Необязательный параметр. Укажите полное доменное имя (FQDN) целевой учётной записи. Если не указано, будет попытка разрешить FQDN текущей пользователя.
  • /dc:<IP/HOSTNAME>: Необязательный параметр. Укажите целевой контроллер домена (DC). Если не указано, будет использоваться основной контроллер домена (PDC).

Пример: Whisker.exe clear /target:computername$ /domain:constoso.local /dc:dc1.contoso.local

⚠️ Предупреждение: Очистка атрибута msDS-KeyCredentialLink учётных записей, настроенных для беспарольной аутентификации, может вызвать нарушения в работе.

Вывести все значения атрибута msDS-KeyCredentialLink целевого объекта:

  • /target:<samAccountName>: Обязательный параметр. Укажите имя целевой учётной записи. Объекты компьютеров должны оканчиваться символом '$'.
  • /domain:<FQDN>: Необязательный параметр. Укажите полное доменное имя (FQDN) целевой учётной записи. Если не указано, будет попытка разрешить FQDN текущего пользователя.
  • /dc:<IP/HOSTNAME>: Необязательный параметр. Укажите целевой контроллер домена (DC). Если не указано, будет использоваться основной контроллер домена (PDC).

Пример: Whisker.exe list /target:computername$ /domain:constoso.local /dc:dc1.contoso.local

Ссылки

  • https://github.com/MichaelGrafnetter/DSInternals
  • https://posts.specterops.io/shadow-credentials-abusing-key-trust-account-mapping-for-takeover-8ee1a53566ab
Войдите, чтобы оставить комментарий