T1053.002: Утилита at

Злоумышленники могут использовать утилиту at для планирования первоначального или повторяющегося выполнения вредоносного кода. Утилита at для планирования выполнения задач на определенное время и дату существует в виде исполняемого файла в Windows, Linux и macOS. В средах Windows утилита at считается устаревшей и от нее отказались в пользу schtasks Планировщика заданий Windows. Для ее работы требуется, чтобы была запущена служба Планировщика заданий, а пользователь вошел в систему как член локальной группы Administrators.

В Linux и macOS команду at может вызывать как суперпользователь, так и все пользователи, указанные в файле at.allow. Если файл at.allow не существует, проверяется файл at.deny. Каждый пользователь, не указанный в at.deny, может запускать утилиту at. Если файл at.deny существует, но он пустой, запускать at может любой пользователь. Если не существуют оба файла (что часто бывает по умолчанию), запускать at могут только суперпользователи.

Злоумышленники могут использовать at для запуска программ при загрузке системы или по расписанию с целью закрепления в системе. Команда at также может использоваться для удаленного выполнения при перемещении внутри периметра и (или) для запуска процесса в контексте определенной учетной записи (например, SYSTEM).

В среде Linux злоумышленники также могут использовать at для выхода из среды с ограничениями, планируя задачу для запуска интерактивной оболочки системы или для выполнения системных команд. Аналогичным образом at также может использоваться для повышения привилегий, если бинарный файл может быть запущен от имени суперпользователя посредством sudo.

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

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

unix_mitre_attck_persistence: PT-CR-1669: Unix_At_Job_Modify: Создание задачи с помощью команды at mitre_attck_lateral_movement: PT-CR-211: Remote_Code_Execution_Via_AtSvc: Удаленное создание запланированной задачи Windows с помощью AtSvc mitre_attck_lateral_movement: PT-CR-2330: Subrule_Task_Created_Via_Atsvc: Запланированная задача Windows создана с помощью AtSvc hacking_tools: PT-CR-2332: Atexec_Activity: Использован инструмент AtExec, предназначенный для запуска команд с помощью запланированных задач Windows

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

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

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

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

Отслеживайте создание запланированных заданий. Если закрепление не является целью выполнения запланированных задач, злоумышленники, вероятнее всего, удалят такие задачи после выполнения нужных действий. В Windows включите параметр 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: запланированное задание отключено.

Кроме того, можно использовать инструменты, такие как Sysinternals Autoruns, для обнаружения действий, которые могут указывать на попытку закрепиться в системе, например получения списка текущих запланированных заданий .

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

Отслеживайте необычные потоки сетевых данных. Процессы, которые взаимодействуют с сетью, хотя обычно этого не делают или вам незнакомы, следует считать подозрительными. Если для удаленного планирования задач используется программа at.exe, то для обращения к API на удаленном компьютере Windows использует именованные каналы поверх SMB. После аутентификации с помощью SMB открывается именованный канал ATSVC, через который вызывается функция JobAdd. На удаленном узле планировщиком задач создаются файлы заданий по шаблону C:\Windows\System32\AT<идентификатор_задания>.

Такую активность каналов можно обнаружить с помощью сетевого декодера, например Wireshark, который может анализировать SMB-трафик на предмет использования каналов. Ее также можно обнаружить, отслеживая захваченные потоки пакетов в необработанном виде или с помощью специально разработанного датчика на узле, перехватывающего соответствующие функции API. Если сетевой или API-уровень видимости невозможен, этот трафик можно определить, отслеживая SMB-соединения через порт 445/TCP с последующим созданием файлов по шаблону C:\Windows\System32\AT<идентификатор_задания>.

Для обнаружения at через сетевой трафик необходим датчик, способный извлекать и декодировать данные PCAP. В частности, он должен правильно декодировать данные SMB и функции, реализованные через именованные каналы. Если датчик соответствует этим критериям, то в данных PCAP необходимо найти экземпляры команды JobAdd через канал ATSVC, реализуемый поверх SMB Windows через порт 445/TCP.

Аналитика 1. Задачи, запланированные удаленно через at

source="Zeek:" (dest_port=445 AND proto_info.pipe="ATSVC") AND (proto_info.function="JobAdd")

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

Отслеживайте создание процессов с командными строками, которые создают или изменяют задачи или запускаются из задач. Например, в Windows задачи могут запускаться процессом svchost.exe или, в более старых версиях ОС, через Планировщик заданий taskeng.exe . При сопоставлении запущенных задач с историческими данными можно выявить новые, подозрительные процессы, запущенные через планировщик заданий. Наличие запущенных экземпляров at.exe указывает на создание или опрашивание задач. Хотя аналитика будет работать и без извлечения командной строки, оно потребуется для идентификации запланированных команд.

Аналитика 1. Планировщик заданий Windows

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

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

В Windows отслеживайте в хранилищах планировщика заданий Windows в %systemroot%\System32\Tasks изменения в запланированных задачах, особенно не связанные с известным ПО, циклами выпуска исправлений и другой легитимной активностью. В Linux и macOS все задания at хранятся в каталоге /var/spool/cron/atjobs/.

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

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

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

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

Такие наборы инструментов, как фреймворк PowerSploit, содержат модули PowerUp — с их помощью можно исследовать системы на предмет слабых мест в разрешениях запланированных задач, которые могут быть использованы для повышения привилегий . Операционная система Windows также создает ключ реестра, связанный с созданием запланированной задачи на целевом узле: Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree\At1 . В средах Linux и macOS запланированные задачи с использованием at могут быть проверены локально или через централизованный журнал, используя syslog или события auditd с хоста .

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

Ограничьте привилегии пользователей и устраните способы повышения уровня привилегий, чтобы только авторизованные администраторы могли создавать запланированные задачи в удаленных системах. В среде Linux доступ пользователей к утилите at можно настроить с помощью файлов at.allow и at.deny. Пользователи, перечисленные в файле at.allow, могут планировать задачи с помощью утилиты at, а пользователям в файле at.deny доступ к ней запрещен.

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

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