Подложная учетная запись AD с отключенной предварительной аутентификацией Kerberos

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

Эта приманка представляет собой доменную учетную запись с отключенной предварительной аутентификацией Kerberos. Отключение этой настройки делает возможным проведение атаки AS-REP Roasting. В рамках неё злоумышленник запрашивает TGT билеты Kerberos для учётных записей пользователей, у которых отключена предварительная аутентификация Kerberos, и далее использует запрошенные билеты для извлечения NTLM-хеша offline методом грубой силы (bruteforce).

В случае успешной атаки в распоряжении злоумышленника оказывается NTLM-хеш соответствующей учётной записи, который даёт атакующему возможность действовать от имени этой учётной записи, а именно получать доступ к любым ресурсам, к которым у данной учётной записи есть доступ.

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

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

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

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

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

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

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

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

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

# Доменная учетная запись с отключенной предварительной аутентификацией Kerberos # Которая делает возможным проведение атаки AS-REP Roasting - name: ad_new_user_with_no_preauth kind: NewUserWithNoPreAuthAD enabled: true spec: username: svc-ldap-test 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].