Внедрение в память LSASS подложных учетных данных (Win)
Описание приманки
Приманка представляет собой подложные учетные данные, внедренные в память процесса LSASS путем создания процесса от имени пользователя-приманки. Порожденный процесс запускается в фоновом режиме и не виден обычному пользователю.
Приманка производится путем создания процесса от имени подложного пользователя через вызов WinAPI функции CreateProcessWithLogonW. Для большей правдоподобности осуществляется подмена процесса родителя (чтобы не было видно, что процесс порождается от модуля Deception) путем изменения Process ID в памяти процесса Deception. По умолчанию, в качестве процесса родителя подставляется svchost.exe. Он может быть заменен на любой другой в конфигурационном файле.
После перезагрузки модуля приманка принимает существующие данные, если имя и PID процесса LSASS совпадают с ожидаемыми.
Важные особенности приманки:
Родительский процесс должен быть с medium integrity level. Это сделано специально, чтобы не было проблем с подменой процесса родителя из-за наличия process protection.
Некоторые системные процессы, характерные для большинства современных ОС, присутствуют в версиях Windows, начиная с 8.1. Это необходимо учитывать при размещении приманки на Windows 7 или Windows server 2008.
Например, файл
C:\Windows\System32\RuntimeBroker.exeне присутствует в Windows 7 или Windows Server 2008. Если указать этот файл в качестве целевого процесса, приманка не будет создана.
Рекомендуется выбирать имя реально существующей УЗ в домене, и исходить из того, что данная учетная запись не используется или ее использование контролируется, доступ к ней разрешен только с определенных хостов. Пароль от учетной записи генерируется случайном образом.
Для мониторинга состояния приманки проверяется наличие целевого процесса, запущенного от имени подложного пользователя (по ProcessName и PID).
Приманкой возможно отслеживать попытки:
Входа под подложной учетной записью.
Запроса билетов Kerberos для подложной учетной записи.
Пример конфигурации
# Имя приманки — учетные данные, внедренные в процесс LSASS # Подложные данные внедряются в память LSASS путем создания процесса от имени пользователя-приманки - name: fake_creds_in_lsass kind: Lsass enabled: true spec: parentProcessName: svchost.exe processFilePath: C:\Windows\System32\RuntimeBroker.exe username: helpdesk-user-lab domain: lab minPassLen: 16 maxPassLen: 25 remediation: enabled: true strategy: recreate mode: fixed maxAttempts: 3 backoffSchedule: - 5s - 30s - 60s
Описание конфигурации
Вводные параметры
name— имя приманки, обязательное поле.kind— тип приманки, обязательное поле.enabled— признак активности приманки, обязательное поле.Значение false отключает приманку.
Подсекция spec
parentProcessName— имя процесса родителя. Обязательное поле. Должен быть с medium integrity level, чтобы не было проблем с подменой процесса родителя из-за наличия process protection. Для большей правдоподобности производится подмена процесса родителя (чтобы не было видно, что процесс порождается от модуля Deception) путем изменения Process ID в памяти процесса Deception.Значение по умолчанию: svchost.exe.
processFilePath— абсолютный путь до исполняемого файла целевого процесса. Обязательное поле. Необходимо учитывать особенность поколения ОС. Например, RuntimeBroker.exe имеется только с версии Windows 8.1, а на Windows 7 эта приманка не появится.Значение по умолчанию:
C:\Windows\System32\ctfmon.exe.username— имя подложного пользователя. Обязательное поле. Рекомендуется выбирать имя реально существующей УЗ в домене, и исходить из того, что данная учетная запись не используется или ее использование контролируется, доступ к ней разрешен только с определенных хостов.Значение по умолчанию: Username.
domain— домен подложного пользователя. Опциональное поле. Значение определяется как имя домена или "." для локальной машины.Значение по умолчанию: ..
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].