T1053.005: Планировщик заданий Windows

Злоумышленники могут использовать Планировщик заданий Windows для планирования первоначального или периодического запуска вредоносного кода. В Windows существует несколько способов доступа к Планировщику заданий: можно запустить утилиту schtasks непосредственно из командной строки или открыть Планировщик заданий через графический интерфейс в разделе "Администрирование" панели управления. В некоторых случаях злоумышленники использовали обертку .NET для Планировщика заданий Windows, а в других — библиотеку Windows netapi32 для создания запланированной задачи.

Злоумышленники также могут использовать устаревшую утилиту at (см., например, технику Утилита at), хотя at.exe не может получить доступ к задачам, созданным с помощью schtasks или панели управления.

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

Злоумышленники также могут создавать скрытые запланированные задачи (техника Сокрытие артефактов), которые могут быть не видны средствам защиты и при использовании ручных запросов на составление списка задач. В частности, злоумышленник может скрыть задачу от команд schtasks /query и Планировщика заданий, удалив связанное с ней значение реестра Security Descriptor (SD) (при этом удаление должно выполняться с правами SYSTEM). Злоумышленники также могут использовать альтернативные методы скрытия задач, в частности изменять метаданные (например, значение Index) в связанных ключах реестра.

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

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

mitre_attck_execution: PT-CR-344: Scheduled_Task_Manipulation: Пользователь создал, обновил или удалил задачу по расписанию mitre_attck_execution: PT-CR-1092: Scheduled_Task_Execution: Обнаружен запуск подозрительной команды с помощью запланированной задачи. Некоторые инструменты могут удаленно выполнять команды на узле через запланированные задачи, например atexec (impacket) mitre_attck_execution: PT-CR-777: Hidden_Scheduled_Task: Обнаружено создание скрытой запланированной задачи или скрытное изменение уже существующей запланированной задачи без записи в журнал событий Windows. Создание задачи или ее изменение может выполняться непосредственно напрямую в реестре, без использования Планировщика заданий Windows mitre_attck_execution: PT-CR-342: Schtasks_Commandline: Управление запланированной задачей через командную строку или PowerShell mitre_attck_persistence: PT-CR-809: Hiding_Already_Existing_Task: Скрыто запланированное задание mitre_attck_persistence: PT-CR-1345: Abusing_Windows_Telemetry_Persist: Закрепление путем изменения настроек компонента TelemetryController mitre_attck_lateral_movement: PT-CR-212: Scheduled_Task_Was_Created_Or_Updated_Via_Schtasks: Обнаружено удаленное создание или обновление задачи Windows с помощью встроенной утилиты "schtasks" hacking_tools: PT-CR-2332: Atexec_Activity: Использован инструмент AtExec, предназначенный для запуска команд с помощью запланированных задач Windows

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

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

Отслеживайте в хранилищах планировщика заданий Windows в %systemroot%\System32\Tasks изменения в запланированных задачах, не связанные с известным ПО, циклами выпуска исправлений и другой легитимной активностью. Чтобы закрепиться в системе, повысить свои привилегии или получить удаленный доступ, злоумышленники могут запланировать выполнение соответствующей команды, выбрав для этого время, дату и даже конкретный узел с помощью планировщика заданий Windows. Данные планировщика заданий могут храниться в двух каталогах: C:\Windows\Tasks (устаревший) и C:\Windows\System32\Tasks. Соответственно, данная аналитика должна отслеживать попытки создания файлов заданий в этих каталогах.

Аналитика 1. Создание файлов в планировщике заданий Windows

(source="WinEventLog:Microsoft-Windows-Sysmon/Operational" EventCode="11") (TargetFilename= "C:\Windows\System32\Tasks\" OR TargetFilename "C:\Windows\Tasks\*") AND Image!= "C:\WINDOWS\system32\svchost.exe"

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

Отслеживайте создание процессов и (или) выполнение командных строк через svchost.exe в Windows 10 или через Планировщик заданий Windows taskeng.exe в более старых версиях Windows . Если злоумышленники не планируют таким образом закрепляться в системе, скорее всего, они удалят запланированные задачи после выполнения необходимых действий. Отслеживайте запуск процессов schtasks.exe. Поле command_line необходимо для различения типов команд schtasks. Они включают флаги /create, /run, /query, /delete, /change и /end.

Отслеживайте создание или изменение запланированных задач, которые запускают подозрительные сценарии, файлы с нестандартными расширениями или объекты, находящиеся по изменяемым пользователем путям. Злоумышленники могут создавать или модифицировать запланированные задания для систематического выполнения вредоносного кода. Этот метод детектирования обнаруживает одновременно события создания процесса с идентификаторами 4688 и 1 (SCHTASKS) и события создания/модификации запланированного задания с идентификаторами 4698 и 4702 в журнале событий.

Аналитика 1. Создание новых процессов родительским процессом svchost.exe или taskeng.exe

(source="*WinEventLog:Microsoft-Windows-Sysmon/Operational" EventCode="1") OR (source="*WinEventLog:Security" EventCode="4688") AND (ParentImage="svchost.exe" OR ParentImage="taskeng.exe")

Аналитика 2. Создание или модификация запланированной задачи с подозрительным сценарием, расширением или путями, доступными для записи пользователем

( (source="WinEventLog:Microsoft-Windows-Sysmon/Operational" EventCode="1") OR (source="WinEventLog:Security" EventCode="4688") CommandLine="SCHTASKS" (CommandLine="/CREATE" OR CommandLine="/CHANGE") ) ( ( CommandLine=".cmd" OR CommandLine=".ps1" OR CommandLine=".vbs" OR CommandLine=".py" OR CommandLine=".js" OR CommandLine=".exe" OR CommandLine=".bat" ) OR ( CommandLine="javascript" OR CommandLine="powershell" OR CommandLine="wmic" OR CommandLine="rundll32" OR CommandLine="cmd" OR CommandLine="cscript" OR CommandLine="wscript" OR CommandLine="regsvr32" OR CommandLine="mshta" OR CommandLine="bitsadmin" OR CommandLine="certutil" OR CommandLine="msiexec" OR CommandLine="javaw" ) OR ( CommandLine="%APPDATA%" OR CommandLine="\AppData\Roaming" OR CommandLine="%PUBLIC%" OR CommandLine="C:\Users\Public" OR CommandLine="%ProgramData%" OR CommandLine="C:\ProgramData" OR CommandLine="%TEMP%" OR CommandLine="\AppData\Local\Temp" OR CommandLine="\Windows\PLA\System" OR CommandLine="\tasks" OR CommandLine="\Registration\CRMLog" OR CommandLine="\FxsTmp" OR CommandLine="\spool\drivers\color" OR CommandLine="\tracing" ) )

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

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

При удаленном создании запланированных задач Windows связывается с планировщиком задач на удаленном компьютере с помощью RPC (135/TCP). После установления RPC-соединения клиент взаимодействует с конечной системой запланированных задач, работающей в группе служб netsvcs. С помощью перехвата пакетов, а также подходящих декодеров пакетов или байт-потоковых сигнатур можно выявить удаленные вызовы таких функций. Некоторые строки могут быть идентификаторами schtasks, их можно обнаружить путем поиска UUID интерфейса ITaskSchedulerService в разных форматах.

  • UUID 86d35949-83c9-4044-b424-db363231fd0c (в декодированном виде)
  • Hex 49 59 d3 86 c9 83 44 40 b4 24 db 36 32 31 fd 0c (в необработанном виде)
  • ASCII IYD@$621 (только печатные байты)

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

IDDS0003Источник и компонент данныхЗапланированное задание: Создание запланированного заданияОписание

Отслеживайте создание запланированных заданий, включив параметр Microsoft > Windows > TaskScheduler > Operational в службе журнала событий . После этого будут регистрироваться различные события, связанные с выполнением запланированных заданий, в частности: события с идентификатором 106 в Windows 7, Server 2008 R2 (запланированное задание зарегистрировано); события с идентификатором 4698 в Windows 10, Server 2016 (запланированное задание создано); события с идентификатором 4700 в Windows 10, Server 2016 (запланированное задание включено); события с идентификатором 4701 в Windows 10, Server 2016 (запланированное задание отключено).

Примечание. Подразумевается обнаружение создания или изменения запланированных заданий, в которых указаны подозрительные сценарии, расширения или доступные пользователю для записи пути. Злоумышленники могут создавать или модифицировать запланированные задания для систематического выполнения вредоносного кода. Это обнаружение одновременно фокусируется на событиях с идентификаторами 4688 и 1 для создания процесса (SCHTASKS) и событиях с идентификаторами 4698 и 4702 для создания или изменения запланированных задач в журнале событий.

Аналитика 1. Новые запланированные задачи, использующие подозрительные сценарии, расширения или путь, доступный для записи пользователем

(source="*WinEventLog:Security" EventCode IN (4698, 4702)) | where (JobContent LIKE '%.cmd%' OR JobContent LIKE '%.ps1%' OR JobContent LIKE '%.vbs%' OR JobContent LIKE '%.py%' OR JobContent LIKE '%.js%' OR JobContent LIKE '%.exe%' OR JobContent LIKE '%.bat%' OR JobContent LIKE '%javascript%' OR JobContent LIKE '%powershell%' OR JobContent LIKE '%wmic%' OR JobContent LIKE '%rundll32%' OR JobContent LIKE '%cmd%' OR JobContent LIKE '%cscript%' OR JobContent LIKE '%wscript%' OR JobContent LIKE '%regsvr32%' OR JobContent LIKE '%mshta%' OR JobContent LIKE '%bitsadmin%' OR JobContent LIKE '%certutil%' OR JobContent LIKE '%msiexec%' OR JobContent LIKE '%javaw%' OR JobContent LIKE '%[%]APPDATA[%]%' OR JobContent LIKE '%\AppData\Roaming%' OR JobContent LIKE '%[%]PUBLIC[%]%' OR JobContent LIKE '%C:\Users\Public%' OR JobContent LIKE '%[%]ProgramData[%]%' OR JobContent LIKE '%C:\ProgramData%' OR JobContent LIKE '%[%]TEMP[%]%' OR JobContent LIKE '%\AppData\Local\Temp%' OR JobContent LIKE '%\Windows\PLA\System%' OR JobContent LIKE '%\tasks%' OR JobContent LIKE '%\Registration\CRMLog%' OR JobContent LIKE '%\FxsTmp%' OR JobContent LIKE '%\spool\drivers\color%' OR JobContent LIKE '%\tracing%')

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

Отслеживайте появление ключей реестра после создания нового задания. Удаление значений/ключей в реестре может указывать на подозрительную активность.

Аналитика 1. Создание подозрительных объектов в ключе реестра Schedule

(source="*WinEventLog:Microsoft-Windows-Sysmon/Operational" EventCode="12") | WHERE (RegistryKeyPath LIKE "%HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tasks%" OR RegistryKeyPath LIKE "%HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree%")

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

Отслеживайте в хранилищах планировщика заданий Windows в %systemroot%\System32\Tasks изменения в запланированных задачах, не связанные с известным ПО, циклами выпуска исправлений и другой легитимной активностью.

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

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

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

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

Настройте параметр Increase Scheduling Priority, чтобы только группа администраторов имела право планировать приоритетный процесс. Это можно настроить через GPO: Конфигурация компьютера > [Политики] > Конфигурация Windows > Параметры безопасности > Локальные политики > Назначение прав пользователя > Увеличение приоритета выполнения .

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

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

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

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

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

Настройте параметры запланированных задач так, чтобы они запускались в контексте аутентифицированной учетной записи, а не от имени SYSTEM. Соответствующий ключ реестра: HKLM\SYSTEM\CurrentControlSet\Control\Lsa\SubmitControl. Этот параметр можно настроить с помощью GPO: Конфигурация компьютера > [Политики] > Параметры Windows > Параметры безопасности > Локальные политики > Параметры безопасности > Контроллер домена: разрешить операторам сервера задавать выполнение заданий по расписанию > Отключен .