MaxPatrol SIEM

Выявляет инциденты ИБ, ведущие к нарушению киберустойчивости компании

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

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
unix_mitre_attck_persistence: PT-CR-1669: Unix_At_Job_Modify: Создание задачи с помощью команды at

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

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

Monitor for newly constructed scheduled jobs. If scheduled tasks are not used for persistence, then the adversary is likely to remove the task when the action is complete. On Windows, enable the "Microsoft-Windows-TaskScheduler/Operational" setting within the event logging service where several events will then be logged on scheduled task activity, including:

  • Event ID 106 on Windows 7, Server 2008 R2 - Scheduled task registered
  • Event ID 4698 on Windows 10, Server 2016 - Scheduled task created
  • Event ID 4700 on Windows 10, Server 2016 - Scheduled task enabled
  • Event ID 4701 on Windows 10, Server 2016 - Scheduled task disabled

Tools such as Sysinternals Autoruns may also be used to detect system changes that could be attempts at persistence, including listing current scheduled tasks.

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

Monitor network data for uncommon data flows. Processes utilizing the network that do not normally have network communication or have never been seen before are suspicious. When AT.exe is used to remotely schedule tasks, Windows uses named pipes over SMB to communicate with the API on the remote machine. After authentication over SMB, the Named Pipe ATSVC is opened, over which the JobAdd function is called. On the remote host, the job files are created by the Task Scheduler and follow the convention C:\Windows\System32\AT.

This pipe activity could be discovered with a network decoder, such as that in wireshark, that can inspect SMB traffic to identify the use of pipes. It could also be detected by looking for raw packet capture streams or from a custom sensor on the host that hooks the appropriate API functions. If no network or API level of visibility is possible, this traffic may inferred by looking at SMB connections over 445/tcp followed by the creation of files matching the pattern C:\Windows\System32\AT\.

To detect AT via network traffic, a sensor is needed that has the ability to extract and decode PCAP information. Specifically, it needs to properly decode SMB and the functions that are implemented over it via NamedPipes. If a sensor meets these criteria, then the PCAP data needs to search for instances of the command JobAdd over the pipe ATSVC, which is all implemented over Windows SMB 445/tcp.

Analytic 1 - Remotely Scheduled Tasks via AT

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

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

Monitor for newly constructed processes with command-lines that create/modify or are executed from tasks. For example, on Windows tasks may spawn from svchost.exe or the Windows Task Scheduler taskeng.exe for older OS versions. Suspicious program execution through scheduled tasks may show up as outlier processes that have not been seen before when compared against historical data. Instances of the process at.exe running imply the querying or creation of tasks. Although the command_line is not essential for the analytic to run, it is critical when identifying the command that was scheduled.

Analytic 1 - Scheduled Task

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

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

Monitor executed commands and arguments for actions that could be taken to create/modify tasks. Tasks may also be created through Windows system management tools such as Windows Management Instrumentation and PowerShell, so additional logging may need to be configured to gather the appropriate data.

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

On Windows, monitor Windows Task Scheduler stores in %systemroot%\System32\Tasks for change entries related to scheduled tasks, especially those that do not correlate with known software, patch cycles, etc. On Linux and macOS, all at jobs are stored in /var/spool/cron/atjobs/.

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

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

Configure settings for scheduled tasks to force tasks to run under the context of the authenticated account instead of allowing them to run as SYSTEM. The associated Registry key is located at HKLM\SYSTEM\CurrentControlSet\Control\Lsa\SubmitControl. The setting can be configured through GPO: Computer Configuration > [Policies] > Windows Settings > Security Settings > Local Policies > Security Options: Domain Controller: Allow server operators to schedule tasks, set to disabled.

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

Toolkits like the PowerSploit framework contain PowerUp modules that can be used to explore systems for permission weaknesses in scheduled tasks that could be used to escalate privileges. Windows operating system also creates a registry key specifically associated with the creation of a scheduled task on the destination host at: Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree\At1. In Linux and macOS environments, scheduled tasks using at can be audited locally, or through centrally collected logging, using syslog, or auditd events from the host.

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

Limit privileges of user accounts and remediate Privilege Escalation vectors so only authorized administrators can create scheduled tasks on remote systems. In Linux environments, users account-level access to at can be managed using at.allow and at.deny files. Users listed in the at.allow are enabled to schedule actions using at, whereas users listed in at.deny file disabled from the utility.

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

Configure the Increase Scheduling Priority option to only allow the Administrators group the rights to schedule a priority process. This can be configured through GPO: Computer Configuration > [Policies] > Windows Settings > Security Settings > Local Policies > User Rights Assignment: Increase scheduling priority.