T1543.003: Служба Windows

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

Для закрепления в системе злоумышленники могут установить новую службу или изменить существующую, чтобы она выполнялась при запуске системы. Конфигурации служб можно устанавливать или редактировать с помощью системных утилит (например, sc.exe), путем изменения реестра или напрямую через API Windows.

Злоумышленники также могут использовать службы для установки и запуска вредоносных драйверов. Например, после записи файла драйвера (например, с расширением .sys) на диск полезная нагрузка может быть загружена и зарегистрирована с помощью функций нативного API, таких как CreateServiceW() (или вручную с помощью функций ZwLoadDriver() и ZwSetValueKey()), либо путем создания необходимых значений для служб в реестре (техника Изменение реестра), либо с помощью утилит командной строки, таких как PnPUtil.exe. Злоумышленники могут использовать эти драйверы в качестве руткитов, чтобы скрыть свою вредоносную активность в системе. Злоумышленники также могут загрузить подписанный, но уязвимый драйвер на скомпрометированный компьютер (техника, известная как Bring Your Own Vulnerable Driver (BYOVD)) с целью эксплуатации уязвимостей для повышения привилегий.

Службы, созданные с привилегиями администратора, могут выполняться с привилегиями SYSTEM, поэтому злоумышленник может также использовать службу для повышения привилегий. Злоумышленники также могут напрямую запускать службы через диспетчер управления службами (SCM).

Чтобы усложнить анализ и обнаружение, вредоносные службы также могут использовать маскировку задачи или службы (например, использовать имя службы и (или) полезной нагрузки, связанное с легитимной ОС или легитимным программным компонентом). Злоумышленники также могут создавать скрытые службы (техника Сокрытие артефактов), например, используя команду sc sdset для установки разрешений службы с применением языка SDDL (Service Descriptor Definition Language). Это позволяет скрыть службу Windows от обнаружения стандартными средствами, например Get-Service, sc query и services.exe.

Какие продукты Positive Technologies покрывают технику

Экспертиза MaxPatrol SIEM

mitre_attck_execution: PT-CR-257: Windows_Service_Installed: Обнаружена попытка установить новую службу не из системных каталогов Windows mitre_attck_execution: PT-CR-217: Execute_PSEXEC: Обнаружение попыток запусить утилиту администрирования PsExec и ее аналогов mitre_attck_execution: PT-CR-778: Hidden_Service_Create: Обнаружено создание скрытой службы через реестр без использование функции CreateService mitre_attck_persistence: PT-CR-271: Service_Created_Or_Modified: Обнаружена попытка выполнить операции со службами Microsoft Windows через командную строку или PowerShell mitre_attck_cred_access: PT-CR-1363: Masky_Tool_Usage: Обнаружение использования инструмента Masky, предназначенного для получения NT-хешей и TGT пользователей, работающих на атакованных узлах, для запроса сертификатов от их имени mitre_attck_lateral_movement: PT-CR-1981: SVCCTL_Connection: Удаленное подключение к диспетчеру служб с помощью интерфейса svcctl, который позволяет удаленно управлять службами Windows mitre_attck_lateral_movement: PT-CR-226: Remoting_Impacket_PsExec: Обнаружено удаленное выполнение кода с помощью PsExec из набора Impacket mitre_attck_lateral_movement: PT-CR-1752: Service_From_Remote_File_Creation: Создание службы из сетевой директории mitre_attck_lateral_movement: PT-CR-589: Remoting_SysInternals_PsExec: Обнаружено удаленное выполнение кода с помощью PsExec из набора Sysinternals Suite mitre_attck_lateral_movement: PT-CR-785: Modify_And_Start_Remote_Service: Обнаружена попытка выполнения кода или горизонтального перемещения путем изменения команды запуска системных служб hacking_tools: PT-CR-1356: Sliver_PsExec: Запуск модуля Sliver PsExec из С2 фреймворка Sliver hacking_tools: PT-CR-752: Cobalt_Strike_Psexec_Jump: Перемещение внутри периметра с помощью утилиты PSexec для Cobalt Strike hacking_tools: PT-CR-523: Remote_Connection_Through_SMBEXEC_WinXP: Обнаружение попыток закрепиться в системе при помощи техники SMBExec hacking_tools: PT-CR-1355: Sliver_GetSystem: Удаленное выполнение команды Sliver GetSystem из С2 фреймворка Sliver hacking_tools: PT-CR-2632: Subrule_Cobalt_Strike_Service_Creation: Создана служба с указанием сетевого пути к исполняемому файлу для перемещения внутри периметра или повышения привилегий с помощью Cobalt Strike hacking_tools: PT-CR-1838: NimExec_Activity: Активность инструмента NimExec, использующегося для удаленного выполнения команд

Способы обнаружения

IDDS0009Источник и компонент данныхПроцесс: Создание процессаОписание

При сопоставлении запущенных процессов с историческими данными можно выявить новые, подозрительные процессы, запущенные через службы. Отслеживайте аномальные деревья процессов, запущенных известными службами, а также выполнение команд, которые могут быть связаны с техниками изучения и другими методами злоумышленников. Рекомендуется рассматривать события с данными не обособленно, а как элементы цепочки, за которыми могут последовать те или иные дальнейшие действия злоумышленников, например подключение к командному серверу, изучение окружения посредством соответствующих техник и перемещение внутри периметра.

Windows запускает диспетчер управления службами (SCM) из процесса services.exe. Windows запускает службы как отдельные процессы или DLL-библиотеки в группе svchost.exe. Точкой входа для процессов и DLL, являющихся легитимными службами, является функция SvcMain соответствующей службы. Если у приложения нет этой точки входа, по истечении тайм-аута (который по умолчанию равен 30 секундам) процесс завершится.

Чтобы избежать завершения процесса по истечении тайм-аута, злоумышленники и специалисты по тестированию на проникновение могут создавать службы, которые перенаправляют нужную команду в cmd с флагом /c. Флаг /c обеспечивает выход из командной оболочки сразу после выполнения команды. В результате нужная программа продолжит выполняться, а при запуске службы появится сообщение об ошибке. Аналитика отслеживает вызов командной строки с целью запуска вредоносного исполняемого файла. Кроме того, процессы, порожденные services.exe, и их потомки по умолчанию запускаются от имени учетной записи SYSTEM.

Примечание. Создайте список служб, запущенных за последние 30 дней, и список служб, запущенных сегодня. Сопоставив эти списки, вы обнаружите новые запущенные службы. Этот анализ возвращает все процессы с именем cmd.exe, порожденные services.exe. В поисковом запросе не обязательно указывать флаг /c, поскольку случай сам по себе является аномальным.

Аналитика 2. Службы, запускающие CMD

(source="*WinEventLog:Microsoft-Windows-Sysmon/Operational" EventCode="1") OR (source="*WinEventLog:Security" EventCode="4688") Image="*cmd.exe" and ParantImage="*services.exe"

IDDS0029Источник и компонент данныхСетевой трафик: Поток сетевого трафикаОписание

Отслеживайте несколько способов выполнения кода на удаленном узле. Один из самых распространенных способов — использование диспетчера управления службами Windows (SCM), который позволяет авторизованным пользователям удаленно создавать и изменять службы. Эту функциональность используют некоторые инструменты, например PsExec.

Когда клиент удаленно взаимодействует с диспетчером управления службами, можно наблюдать два варианта поведения. Сначала клиент подключается к системе RPC Endpoint Mapper через порт 135/TCP. Эта система проводит аутентификацию и сообщает клиенту, какой порт прослушивает конечная система (в данном случае SCM). Затем клиент подключается непосредственно к порту прослушивания в services.exe. Если запрос заключается в запуске существующей службы с известной командной строкой, процесс SCM выполнит соответствующую команду.

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

IDDS0019Источник и компонент данныхСлужба: Создание службыОписание

Создание новых служб может привести к возникновению события изменения (например, события с идентификаторами 4697 и (или) 7045), особенно если эти службы связаны с неизвестными/аномальными драйверами. Во время установки программного обеспечения могут создаваться новые службы, которые безопасны для пользователей.

Аналитика 1. Создание новых служб в нестандартных каталогах, включая временные файлы в каталоге APPDATA

(source="*WinEventLog:Security" EventCode="4697") OR (source="*WinEventLog:System" EventCode="7045") | where ServiceFilePath LIKE "%APPDATA%" OR ServiceImage LIKE "%PUBLIC%"

IDDS0019Источник и компонент данныхСлужба: Изменения в службеОписание

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

IDDS0024Источник и компонент данныхРеестр Windows: Изменение ключа реестра WindowsОписание

Отслеживайте изменения в записях реестра служб, не связанные с известным ПО, циклами выпуска исправлений и другой легитимной активностью. Данные служб хранятся в реестре в HKLM\SYSTEM\CurrentControlSet\Services. Изменение путей к бинарным файлам и нетипичное переключение запуска службы с ручного или отключенного режима на автоматический следует считать подозрительным. С помощью таких инструментов, как Sysinternals Autoruns, можно обнаружить изменения в системных службах, которые могут указывать на попытки закрепления в системе.

Аналитика 1. Изменение ключа реестра HKLM\System\CurrentControlSet\Services

(source="*WinEventLog:Microsoft-Windows-Sysmon/Operational" EventCode IN (13, 14) EventType= "SetValue" TargetObject="HKLM\System\CurrentControlSet\Services*" | where RegistryKeyPath LIKE "%ImagePath%" OR RegistryKeyPath LIKE "%Type%" OR RegistryKeyPath LIKE "%DisplayName%" OR RegistryKeyPath LIKE "%Objectname%"

IDDS0017Источник и компонент данныхКоманда: Выполнение командОписание

Отслеживайте процессы и аргументы командной строки, которые могут использоваться для создания или изменения служб. В некоторых средах запуск инструментов, способных добавлять или изменять службы, через командную строку может быть подозрительным. Для изменения служб также могут использоваться системные средства администрирования, такие как инструментарий управления Windows и PowerShell. Для сбора данных об использовании этих средств рекомендуется настроить дополнительные функции журналирования. Рекомендуется собирать данные о запуске утилит, пути к бинарным файлам служб и использованных аргументах для дальнейшего анализа. Злоумышленники могут менять пути к бинарным файлам служб, чтобы выполнять свои команды и сценарии.

IDDS0022Источник и компонент данныхФайл: Метаданные файлаОписание

Злоумышленники могут изменить бинарный файл существующей службы с целью закрепления в системе, потенциально используя при этом тактику Предотвращение обнаружения. Если недавно созданный или измененный файл запускается как служба, это может свидетельствовать об APT-атаке. Однако стоит учесть, что легитимное ПО тоже нередко устанавливает службы. Чтобы отличать безопасные изменения в работе службы от вредоносных, необходимо тщательно сформировать профиль нормальной активности. Обращайте особое внимание на события, уведомляющие о создании файла с последующим его запуском как службы. Это свидетельствует или о создании новой службы, или об изменении бинарного файла. Подобные операции выполняют многие легитимные программы, включая msiexec.exe. Отслеживая их, можно подтвердить легитимность создания или изменения службы.

IDDS0024Источник и компонент данныхРеестр Windows: Создание ключа реестра WindowsОписание

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

Аналитика 1. Создание ключа реестра HKLM\System\CurrentControlSet\Services

source="*WinEventLog:Microsoft-Windows-Sysmon/Operational" EventCode="12" TargetObject="HKLM\System\CurrentControlSet\Services*"

IDDS0027Источник и компонент данныхДрайвер: Загрузка драйвераОписание

Отслеживайте установку и загрузку новых драйверов служб (например, события Sysmon с идентификатором 6) вне циклов выпуска обновлений и исправлений известного ПО.

Примечание. С помощью события Sysmon с идентификатором 6 (загрузка драйвера) можно понять, имелась ли у загруженного драйвера действительная подпись (это указано в полях Signature и SignatureStatus). Чтобы уменьшить количество уведомлений и ложных срабатываний, связанных с этим событием, можно настроить фильтр, который исключает загрузку драйверов с подписями от известных и легитимных издателей, таких как Microsoft.

IDDS0009Источник и компонент данныхПроцесс: Вызовы API ОСОписание

Отслеживайте вызовы API (такие как CreateServiceW()), с помощью которых можно создать или изменить службы Windows для систематического выполнения полезной нагрузки с целью закрепления в системе.

Меры противодействия

IDM1018НазваниеУправление учетными записямиОписание

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

IDM1028НазваниеИзменение конфигурации ОСОписание

Проследите, чтобы была включена функция Driver Signature Enforcement для запрета установки неподписанных драйверов.

IDM1040НазваниеПредотвращение некорректного поведенияОписание

Включите правила Attack Surface Reduction (ASR) в Windows 10, чтобы предотвратить запись приложением в систему подписанного уязвимого драйвера. В Windows 10 и 11 включите блок-лист уязвимых драйверов Microsoft для защиты от драйверов служб, разработанных сторонними разработчиками.

IDM1045НазваниеПодпись исполняемого кодаОписание

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

IDM1047НазваниеАудитОписание

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