Event ID 4697, 7045. Службы Windows

Событие 4697 в журнале Security связано с созданием новой службы в Windows. Событие 7045 в журнале System связано с изменением конфигурации службы в Windows.

Эти события фиксируются, когда в системе создаются новые службы или изменяются параметры существующей службы, такие как тип запуска, путь к исполняемому файлу, учетные данные для запуска или описание службы.

Подробное описание события 4697

Какие права необходимы

Простой ответ: для создания или изменения службы Windows необходимо обладать правами локального администратора. По умолчанию только члены группы администраторов могут запускать, останавливать, приостанавливать и изменять службы

Однако если необходимо предоставить доступ обычным пользователям для управления конкретными службами, можно настроить специальные разрешения. Для этого можно использовать утилиты, такие как sc.exe или PowerShell, чтобы изменить права на службу.

Второе атакующие часто называют "мисконфигом" и используют для повышения привилегий.

Информация для анализа

  • Имя службы (Service name): Название службы, которая была изменена/установлена. В 4697 поле имя сервиса (Service Name) содержит имя службы, в 7045 содержится Display Name этой службы.

  • Тип запуска (Service Start Type): Указывает, как служба будет запускаться (например, автоматически, вручную или отключена).

Тип запуска
EventID 7045*
EventID 4697

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

Значение в событии 7045 будет зависеть от локализации операционной системы. Например, тип запуска SERVICE_DEMAND_START может принимать значения "вручную", "demand start", "iniciar demanda" или любое другое значение, соответствующее языку ОС.

Это также относится к полю "тип службы".

  • Путь к исполняемому файлу: Путь к файлу, который запускается службой.

  • Тип службы (Service Type):

Тип службы
EventID 7045
EventID 4697

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.

Также в реальной жизни в EventID 4697 можно встретить типы сервисов 0xe0, 0xd0. Это особые типы Per-user сервисов. Это системные сервисы, которые запускаются системой от имени пользователя, когда тот входит в систему и удаляются после выхода.

Такие сервисы:

  • Имеют рандомную часть в своем имени, например BluetoothUserService_b6846da.

  • Создаются из шаблонов. Они могут иметь типы 0x50 (SERVICE_USER_OWN_PROCESS) или 0x60 (SERVICE_USER_SHARE_PROCESS).

  • Сами сервисы имеют типы 0xd0 (SERVICE_USER_OWN_PROCESS + SERVICE_USERSERVICE_INSTANCE + 0x10) 0xe0 (SERVICE_USER_SHARE_PROCESS + SERVICE_USERSERVICE_INSTANCE + 0x10).

С точки зрения обнаружения атак, наиболее интересными являются службы с типами 0x10 и 0x110.

  • Учетные данные службы (Service Account): Учетная запись, от имени которой запускается служба (например, LocalSystem, NetworkService или пользовательская учетная запись). Для запуска службы от имени конкретной учетной записи, она должна обладать правами на вход в качестве службы (logon_type 5). В событии 4697 также есть поле Account Name. Оно указывает имя учетной записи, от имени которой службы была создана. То есть Account Name создал службу X, которая исполнится с правами Service Account.

  • Описание службы: Текстовое описание службы.

  • Создавший процесс (только 4697): PID и PPID процесса, с помощью которого была создана служба. Если эти поля содержат 0 и 0 - то службы была создана через RPC.

Атакующий также может изменять параметры реестра, связанные со службами: создавать новые службы или модифицировать старые. В том случае события 4697 и 7045 не регистрируются.

При изменении/создании службы обычными средствами, также изменяются ключи реестра, связанные со службами. Процессом, изменяющим эти ключи, является services.exe


Для чего атакующие используют службы

  1. Сохранение доступа:

    • Изменение служб может использоваться для создания "бэкдоров" (backdoors), чтобы сохранить доступ к системе. Например, изменение пути к исполняемому файлу на вредоносный в системной службе.

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

  2. Эскалация привилегий:

    • Если служба запускается от имени учетной записи с высокими привилегиями (например, LocalSystem), это может быть использовано для повышения прав и запуска вредоносных исполняемых файлов с повышенными привилегиями.

    • Для манипуляции со службами (создание новой или изменение существующей) нужно обладать правами локального администратора.

Пример сценария атаки

  1. Злоумышленник получает доступ к системе.

  2. Создает новую службу или изменяет существующую, указывая путь к вредоносному файлу.

  3. Устанавливает тип запуска "Автоматически", чтобы вредоносный файл запускался при каждой загрузке системы.

  4. Служба запускается от имени LocalSystem, что дает злоумышленнику высокие привилегии.


На что обращать внимание при анализе событий 4697/7045

  1. Подозрительные изменения пути к исполняемому файлу:

    Если путь к исполняемому файлу нестандартный или подозрительный (например, файл во временной папке или с необычным именем). Создание служб из недавно созданных файлов - может быть как признаком нелегитимной активности, так и признаком установки легитимного ПО.

  2. Изменение типа запуска:

    Если служба, которая ранее была отключена, внезапно переведена в автоматический режим запуска. Или службы антивируса, брандмауэра или других средств безопасности останавливаются.

  3. Подозрительные имена служб: Есть известные инструменты, которые используют известные имена, например, BTOBTO явно говорит об использовании impacket-smbexec Обращайте внимание на случайно сгенерированные значения в именах служб (особенно, из 8 символов) - так делает msf psexec

Создайте Baseline:

Создайте список известных служб и путей их исполняемых файлов. Такой список нелегко поддерживать, но он позволит легче выявлять аномалии.


Как еще могут атаковать службы

Unquoted Service Path (Незакавыченный путь к службе)

Уязвимость, когда путь к исполняемому файлу службы в Windows не заключён в кавычки (например, C:\Program Files\My Service\server.exe вместо "C:\Program Files\My Service\server.exe").

Windows ищет исполняемый файл, разбивая путь по пробелам. Например: C:\Program.exeC:\Program Files\My.exeC:\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.exeServiceHost.exe и BackgroundTaskHost.exe).

Если видите много svchost.exe – это нормально. Однажды я напишу про этот замечательный процесс, но пока вот неплохой материал:


Last updated

Was this helpful?