Подложная учетная запись AD с установленным атрибутом Service Principal Name (SPN)
Описание приманки
Приманка представляет собой доменную учетную запись с установленным атрибутом Service Principal Name (SPN). Установленный атрибут SPN делает учетную запись целью для атаки Kerberoasting.
В рамках данной атаки злоумышленник запрашивает большое количество сервисных билетов Kerberos (TGS) для определённых доменных учётных записей и использует в последующем запрошенные билеты для offline-атаки методом грубой силы (bruteforce). В случае успешной атаки в распоряжении злоумышленника оказывается NTLM-хеш сервисной учётной записи, который дает атакующему неограниченный доступ к соответствующему сервису (например, сервер баз данных MS SQL).
После перезагрузки модуля приманка принимает существующего пользователя, если username, SID и SPN совпадают с ожидаемыми.
Для мониторинга состояния приманки проверяется наличие пользователя в AD (по UserADsPath) и значение атрибута serviceprincipalname через ADSI.
Приманкой возможно отслеживать попытки:
Входа под подложной учётной записью.
Запроса билетов Kerberos для подложной учётной записи.
Доступа к определённым атрибутам подложной учётной записи.
Получения информации об учетной записи (discovery).
Пример конфигурации
В случае незаполненного параметра userDisplayName, значение берется из поля username.
# Доменная учетная запись с установленным атрибутом Service Principal Name (SPN) # Который делает ее целью для атаки Kerberoasting - name: sql_service_account kind: NewUserWithSpnAD enabled: true spec: username: svc-mssql userDisplayName: MSSQL account oUnit: OU=ServiceAccounts,DC=corp,DC=local spnServiceClass: MSSQLSvc spnInstanceName: mssql.lab.ru port: 1433 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=...
spnServiceClass— класс сервиса. Опциональное поле.Значение по умолчанию: MSSQLSvc.
spnInstanceName— FQDN хоста с сервисом. Опциональное поле.Значение по умолчанию: db-dev.+domain.
minPassLen— минимальная длина пароля. Опциональное поле. Пароль от учетной записи генерируется случайном образом. Значение должно быть > либо = 1 и < либо = maxPassLen.Значение по умолчанию: 8.
maxPassLen— максимальная длина пароля. Опциональное поле. Значение должно быть > либо = 1 и > либо = minPassLen.Значение по умолчанию: 16.
port— порт для SPN. Опциональное поле. Значение должно быть неотрицательным числом.Значение по умолчанию: 0 (порт не добавляется в SPN).
Подсекция 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].