Event ID 4697, 7045. Службы Windows
Событие 4697 в журнале Security связано с созданием новой службы в Windows. Событие 7045 в журнале System связано с изменением конфигурации службы в Windows.
Эти события фиксируются, когда в системе создаются новые службы или изменяются параметры существующей службы, такие как тип запуска, путь к исполняемому файлу, учетные данные для запуска или описание службы.
Какие права необходимы
Простой ответ: для создания или изменения службы Windows необходимо обладать правами локального администратора. По умолчанию только члены группы администраторов могут запускать, останавливать, приостанавливать и изменять службы
Однако если необходимо предоставить доступ обычным пользователям для управления конкретными службами, можно настроить специальные разрешения. Для этого можно использовать утилиты, такие как sc.exe
или PowerShell, чтобы изменить права на службу.
Второе атакующие часто называют "мисконфигом" и используют для повышения привилегий.
Информация для анализа
Имя службы (Service name): Название службы, которая была изменена/установлена. В 4697 поле имя сервиса (Service Name) содержит имя службы, в 7045 содержится Display Name этой службы.
Тип запуска (Service Start Type): Указывает, как служба будет запускаться (например, автоматически, вручную или отключена).
SERVICE_BOOT_START
boot start, при загрузке ОС
0
SERVICE_SYSTEM_START
system start, при запуске системы
1
SERVICE_AUTO_START
auto start, автоматически
2
SERVICE_DEMAND_START
demand start, вручную
3
SERVICE_DISABLED
disabled, отключена
4
Путь к исполняемому файлу: Путь к файлу, который запускается службой.
Тип службы (Service Type):
SERVICE_KERNEL_DRIVER
kernel mode driver, драйвер режима ядра
0x1
Служба является драйвером файловой системы
SERVICE_FILE_SYSTEM_DRIVER
file system driver
0x2
Служба является драйвером устройства
SERVICE_ADAPTER
0x4
SERVICE_RECOGNIZER_DRIVER
0x8
SERVICE_WIN32_OWN_PROCESS
user mode service, служба режима пользователя
0x10
Служба выполняется в собственном процессе
SERVICE_WIN32_SHARE_PROCESS
win32 share process
0x20
Служба работает в одном процессе с другими службами
SERVICE_USER_OWN_PROCESS
0x50
Служба выполняется в собственном процессе под учётной записью вошедшего пользователя
SERVICE_USER_SHARE_PROCESS
0x60
Служба работает в одном процессе с другими службами под учётной записью пользователя
SERVICE_INTERACTIVE_PROCESS
0x100
Служба способна отображать пользовательский интерфейс или взаимодействовать с рабочим столом (например, выводить окна сообщений)
SERVICE_PKG_SERVICE
0x200
Типы сервисов в EventID 4697 работают как битовые флаги, то есть чаще можно встретить процессы суммы типов 0x110
и 0x120
, а не чистое 0x100
.
Учетные данные службы (Service Account): Учетная запись, от имени которой запускается служба (например, LocalSystem, NetworkService или пользовательская учетная запись). Для запуска службы от имени конкретной учетной записи, она должна обладать правами на вход в качестве службы (logon_type 5). В событии 4697 также есть поле Account Name. Оно указывает имя учетной записи, от имени которой службы была создана. То есть Account Name создал службу X, которая исполнится с правами Service Account.
Описание службы: Текстовое описание службы.
Создавший процесс (только 4697): PID и PPID процесса, с помощью которого была создана служба. Если эти поля содержат 0 и 0 - то службы была создана через RPC.
Для чего атакующие используют службы
Сохранение доступа:
Изменение служб может использоваться для создания "бэкдоров" (backdoors), чтобы сохранить доступ к системе. Например, изменение пути к исполняемому файлу на вредоносный в системной службе.
Если изменить тип старта службы на автозапуск, то вредоносный файл будет выполняться каждый раз при старте системы.
Эскалация привилегий:
Если служба запускается от имени учетной записи с высокими привилегиями (например, LocalSystem), это может быть использовано для повышения прав и запуска вредоносных исполняемых файлов с повышенными привилегиями.
Для манипуляции со службами (создание новой или изменение существующей) нужно обладать правами локального администратора.
Пример сценария атаки
Злоумышленник получает доступ к системе.
Создает новую службу или изменяет существующую, указывая путь к вредоносному файлу.
Устанавливает тип запуска "Автоматически", чтобы вредоносный файл запускался при каждой загрузке системы.
Служба запускается от имени LocalSystem, что дает злоумышленнику высокие привилегии.
На что обращать внимание при анализе событий 4697/7045
Подозрительные изменения пути к исполняемому файлу:
Если путь к исполняемому файлу нестандартный или подозрительный (например, файл во временной папке или с необычным именем). Создание служб из недавно созданных файлов - может быть как признаком нелегитимной активности, так и признаком установки легитимного ПО.
Изменение типа запуска:
Если служба, которая ранее была отключена, внезапно переведена в автоматический режим запуска. Или службы антивируса, брандмауэра или других средств безопасности останавливаются.
Подозрительные имена служб: Есть известные инструменты, которые используют известные имена, например, BTOBTO явно говорит об использовании impacket-smbexec Обращайте внимание на случайно сгенерированные значения в именах служб (особенно, из 8 символов) - так делает msf psexec
Как еще могут атаковать службы
Unquoted Service Path (Незакавыченный путь к службе)
Уязвимость, когда путь к исполняемому файлу службы в Windows не заключён в кавычки (например, C:\Program Files\My Service\server.exe
вместо "C:\Program Files\My Service\server.exe"
).
Windows ищет исполняемый файл, разбивая путь по пробелам. Например:
C:\Program.exe
→ C:\Program Files\My.exe
→ C:\Program Files\My Service\server.exe
Если злоумышленник поместит вредоносный файл в одну из этих папок (например, C:\Program.exe
), служба запустит его вместо нужного.
Заключить путь в кавычки в реестре (ImagePath
службы).
Такую атаку довольно сложно обнаружить по классическим логам операционной системы. Тут нужна связка EDR + SIEM: Информация с конфигурации службы + событие запуска процесса из службы
Подмена исполняемого файла службы
Атака, при которой злоумышленник заменяет (или модифицирует) файл, который запускает служба, а не саму службу. Бывает при неправильно натсроенных правах на системные директории. Или в системе есть служба, запущенная не из системной директории.
Так как в этом случае не будет никаких манипуляций в самой службой, то не зарегистрируется ни Event ID 7045, но 4697.
Попробовать поймать такую атаку можно с помощью Sysmon 11 (создание файла) и его последующий запуск от services.exe. Но без связки с EDR такое обнаружение сильно будет зависеть от пременного интервала между этими вдумя событиями.
Что еще надо знать про службы Windows
В Windows процессы служб могут запускаться либо напрямую через services.exe, либо через svchost.exe, и это связано с архитектурой управления службами в операционной системе.
services.exe
- исполняемый файл является основным процессом, отвечающим за управление службами Windows. Он:
Запускается на раннем этапе загрузки системы (как часть
wininit.exe
).Отвечает за запуск, остановку и взаимодействие со службами.
Непосредственно запускает некоторые службы, если они не используют общий хост-процесс (
svchost.exe
).
Обычно это критически важные системные службы, которые должны работать изолированно или требуют особых условий.
svchost.exe
– общий хост-процесс для служб
Этот механизм был введён для оптимизации ресурсов: вместо того чтобы каждая служба запускала свой процесс, несколько служб группируются в одном процессе.
Почему одни службы запускаются через svchost.exe
, а другие – нет?
Службы, написанные как DLL, а не EXE, должны загружаться в
svchost.exe
.Группировка по типу службы: Windows объединяет схожие службы (например, сетевые или системные) в один процесс для экономии памяти.
Изоляция: Некоторые службы (особенно связанные с безопасностью) могут работать в отдельных процессах
svchost.exe
.
Начиная с Windows 10 Microsoft постепенно переходит на универсальные процессы хоста (svchost.exe
→ ServiceHost.exe
и BackgroundTaskHost.exe
).
Если видите много svchost.exe
– это нормально. Однажды я напишу про этот замечательный процесс, но пока вот неплохой материал:
Last updated
Was this helpful?