Подложная учетная запись AD с включенным обратимым шифрованием

Описание приманки

Приманка представляет собой доменную учетную запись с установленным атрибутом ENCRYPTED_TEXT_PWD_ALLOWED (хранить пароль, используя обратимое шифрование). Пароли, хранимые в подобном виде, упрощают процесс получения учетных данных от УЗ в виде открытого текста, что:

  • Может давать представление о парольной политике, используемой в доменной инфраструктуре.

  • Полезно для доступа по протоколу RDP.

После перезагрузки модуля приманка принимает существующего пользователя, если username, SID и флаг шифрования совпадают с ожидаемыми.

Для мониторинга состояния приманки проверяется наличие пользователя в AD (по UserADsPath) и значение атрибута useraccountcontrol, ENCRYPTED_TEXT_PWD_ALLOWED через ADSI.

Приманкой возможно отслеживать попытки:

  • Входа под подложной учётной записью.

  • Запроса билетов Kerberos для подложной учётной записи.

  • Доступа к определённым атрибутам подложной учётной записи.

  • Получения информации об учетной записи (discovery).

Злоумышленник может обнаружить подобную учетную запись в ходе разведки внутри домена как вручную через нативные механизмы AD, так и с использованием специальных инструментов для разведки и перечисления (например, PowerView). И в случае проведения более серьезной атаки (например, DCSync) пароль подложного пользователя будет получен в открытом виде.

Пример конфигурации

В случае незаполненного параметра userDisplayName значение поля берется из поля username.

# Доменная учетная запись с установленным атрибутом # ENCRYPTED_TEXT_PWD_ALLOWED (Хранить пароль, используя обратимое шифрование) - name: ad_new_user_with_rev_enc kind: NewUserWithRevEncAD enabled: true spec: username: svc-avo-integration userDisplayName: Legacy Account oUnit: OU=ServiceAccounts,DC=corp,DC=local minPassLen: 16 maxPassLen: 25 remediation: enabled: true strategy: recreate mode: fixed maxAttempts: 3 backoffSchedule: - 5s - 30s - 60s

Описание конфигурации

Вводные параметры

  • name — имя приманки, обязательное поле.

  • kind — тип приманки, обязательное поле.

  • enabled — признак активности приманки, обязательное поле.

    Значение false отключает приманку.

Подсекция spec

  • username — имя пользователя. Обязательное поле.

  • userDisplayName — отображаемое имя пользователя. Опциональное поле.

  • oUnit — Organizational Unit (Организационная единица) в Active Directory, куда будет помещена УЗ. Обязательное поле.

    Формат значения: OU=...,OU=...,DC=...,DC=...

  • minPassLen — минимальная длина пароля. Опциональное поле. Пароль от учетной записи генерируется случайном образом. Значение должно быть > либо = 1 и < либо = maxPassLen.

    Значение по умолчанию: 8.

  • maxPassLen — максимальная длина пароля. Опциональное поле. Значение должно быть > либо = 1 и > либо = minPassLen.

    Значение по умолчанию: 16.

Подсекция remediation

Подсекция remediation является опциональной и содержит параметры автоматического восстановления приманки:

  • enabled — признак активности автоматического восстановления, обязательное поле.

    Значение false отключает восстановление.

    Значение по умолчанию: true.

  • strategy — стратегия автоматического восстановления приманки, обязательное поле.

    Возможные значения:

    • recreate (по умолчанию) — пересоздание приманки.

    • alert — оповещение о падении приманки.

  • mode — режим автоматического восстановления приманки, обязательное поле.

    Возможные значения:

    • fixed (по умолчанию) — ограниченное количество попыток восстановления.

    • infinite — неограниченное количество попыток восстановления.

  • maxAttempts — количество попыток автоматического восстановления приманки. Обязательное поле, если mode: fixed. При mode: infinite параметр игнорируется, попытки продолжаются до успеха.

    Значение по умолчанию: 3.

  • backoffSchedule — промежуток времени между попытками автоматического восстановления приманки, опциональное поле.

    Определяется списком значений времени, спустя которое осуществится следующая попытка восстановления. Если попыток больше элементов списка, используется последний временной интервал.

    Значение по умолчанию: [5s, 30s, 60s, 5m, 15m, 30m, 60m].