L’interface est localisée ; les présentations et documents des Skills sont traduits automatiquement par IA dans votre langue. Le code, les commandes, chemins et termes techniques restent en version originale, et le document de l’auteur fait foi.
Explorer les Skills
Productivité · SKILL.md

hunting-for-suspicious-scheduled-tasks

hunting-for-suspicious-scheduled-tasks

通过分析任务创建事件、可疑任务属性和异常执行模式,狩猎攻击者利用 Windows 计划任务实现持久化和执行的行为(T1053.005)。

Independent GitHub snapshot · Automated classification · Original documentation governs

Documentation de la Skill

GitHub

name: hunting-for-suspicious-scheduled-tasks description: 通过分析任务创建事件、可疑任务属性和异常执行模式,狩猎攻击者利用 Windows 计划任务实现持久化和执行的行为(T1053.005)。 domain: cybersecurity subdomain: threat-hunting tags: [threat-hunting, scheduled-tasks, persistence, mitre-t1053-005, windows, endpoint-detection] version: "1.0" author: mahipal license: Apache-2.0

狩猎可疑计划任务

适用场景

  • 主动狩猎 Windows 环境中的持久化机制时
  • 在进程创建日志中检测到 schtasks.exe 或 at.exe 使用后
  • 调查在重启和用户注销后仍能存活的恶意软件时
  • 事件响应期间,枚举受攻击系统上所有持久化时
  • Windows 安全事件 ID 4698(计划任务已创建)对异常任务触发告警时

前置条件

  • Windows 安全事件 ID 4698/4699/4702(任务已创建/已删除/已更新)
  • Sysmon 事件 ID 1,用于记录含命令行的 schtasks.exe 进程创建
  • Windows 任务计划程序操作日志(Microsoft-Windows-TaskScheduler/Operational)
  • PowerShell 日志,用于 Register-ScheduledTask cmdlet 使用记录
  • 对终端上任务计划程序 XML 定义的访问权限

工作流程

  1. 枚举所有计划任务:使用 schtasks /query /fo CSV /v 或 Get-ScheduledTask PowerShell cmdlet 收集目标系统的完整任务清单。
  2. 监控任务创建事件:跟踪事件 ID 4698 以发现新建任务,关联创建进程和用户账户上下文。
  3. 分析任务操作:检查每个任务的执行内容。标记运行脚本(PowerShell、cmd、wscript)、从用户可写路径(TEMP、AppData、Downloads)运行二进制文件或使用编码/混淆命令的任务。
  4. 检查任务触发器:审查触发条件。由系统启动、用户登录或短时间间隔(1-5 分钟)触发的任务需重点调查。
  5. 识别隐藏或伪装的任务:狩猎名称模仿合法 Windows 任务的任务、通过修改安全描述符使其无法被标准枚举发现的任务,以及存储在非标准注册表位置的任务。
  6. 与进程执行关联:将计划任务执行事件与进程创建日志匹配,确认实际运行内容。
  7. 建立基线并差异比对:将当前任务清单与已知正常基线对比,识别新增、修改或异常任务。

检测查询

Splunk——计划任务创建

index=wineventlog EventCode=4698
| spath output=TaskName path=EventData.TaskName
| spath output=TaskContent path=EventData.TaskContent
| where NOT match(TaskName, "(?i)(\\\\Microsoft\\\\|\\\\Windows\\\\)")
| table _time Computer SubjectUserName TaskName TaskContent

Splunk——Schtasks.exe 可疑用法

index=sysmon EventCode=1 Image="*\\schtasks.exe"
| where match(CommandLine, "(?i)/create")
| where match(CommandLine, "(?i)(powershell|cmd|wscript|cscript|mshta|rundll32|regsvr32|http|https|\\\\temp\\\\|\\\\appdata\\\\)")
| table _time Computer User CommandLine ParentImage

KQL——Microsoft Sentinel

SecurityEvent
| where EventID == 4698
| extend TaskName = tostring(EventData.TaskName)
| extend TaskContent = tostring(EventData.TaskContent)
| where TaskContent has_any ("powershell", "cmd.exe", "wscript", "http://", "https://", "\\Temp\\", "\\AppData\\")
| project TimeGenerated, Computer, Account, TaskName, TaskContent

常见场景

  1. Cobalt Strike 持久化:通过 schtasks.exe 创建计划任务,在用户登录时执行 PowerShell 下载加载器。
  2. 勒索软件预备:创建任务在未来某时刻运行加密载荷,通常选择非工作时间以实现最大破坏。
  3. 通过修改安全描述符隐藏任务:攻击者修改计划任务的安全描述符,使其在正常枚举中不可见,同时维持执行能力。
  4. COM 处理程序滥用:任务使用 COM 处理程序而非直接可执行路径,使操作检查更为复杂。
  5. 通过任务进行横向移动:使用 schtasks /create /s REMOTE_HOST 远程创建计划任务在其他系统上执行。

输出格式

狩猎 ID:TH-SCHTASK-[日期]-[序号]
主机:[主机名]
任务名称:[完整任务路径]
操作:[执行的命令/脚本]
触发器:[启动/登录/定时器/事件]
创建者:[用户账户]
创建来源:[本地/远程]
创建时间:[时间戳]
运行账户:[执行账户]
风险等级:[严重/高/中/低]
Skills enregistrées