计划任务的隐藏与排查
计划任务的隐藏与排查
0x1-创建
使用ax.exe和schtasks.exe。win8之后都用schticks.txt,at.exe被废弃,主要讲schtasks.exe。
schtasks.exe
是一个 Windows 命令行工具,用于创建、删除、查询、更改、运行和结束计划任务。以下是其详细的用法和参数介绍:
基本命令结构
schtasks /create
:创建新任务。schtasks /delete
:删除任务。schtasks /query
:显示任务的信息。schtasks /change
:更改任务的属性。schtasks /run
:立即运行任务。schtasks /end
:结束正在运行的任务。
/create
参数
/tn
:任务名称。/tr
:执行的任务动作(例如程序路径)。/sc
:任务计划类型(比如一次性、每日、每周等)。- 频率最小是每分,最大是每月
- MINUTE:按分钟计划任务。可与
/mo
参数结合使用,指定分钟间隔。 - HOURLY:按小时计划任务。可与
/mo
参数结合使用,指定小时间隔。 - DAILY:按天计划任务。可与
/mo
参数结合使用,指定天数间隔。 - WEEKLY:按周计划任务。与
/d
参数(指定星期几)和/mo
参数(指定每几周一次)结合使用。 - MONTHLY:按月计划任务。可与
/d
参数(指定日期)、/mo
参数(指定每几个月一次)结合使用。 - ONCE:任务仅执行一次。通常与
/st
(开始时间)和/sd
(开始日期)参数结合使用。 - ONSTART:每次计算机启动时执行任务。
- ONLOGON:每次用户登录时执行任务。
- ONIDLE:计算机空闲时执行任务。
- ONEVENT:响应系统事件执行任务。与
/ec
(事件通道)、/mo
(关联的 XPath 查询)和其他相关参数结合使用。
/mo
:在/sc
参数指定的频率下,任务执行的间隔。/d
:计划任务的天(例如每周的星期几)。/st
:任务开始时间。/et
:任务结束时间(可选)。/sd
:任务开始日期(可选)。/ed
:任务结束日期(可选)。/ru
:运行任务的用户帐户。/rp
:用户帐户的密码。/rl
:运行级别(最高或有限)。/it
:在用户登录时交互。
/delete
参数
/tn
:要删除的任务名称。/f
:强制删除任务,不提示确认。
/query
参数
/fo
:输出格式(TABLE、LIST、CSV)。/nh
:不显示列标题。/v
:显示详细信息。
/change
参数
/tn
:要更改的任务名称。/tr
:更改任务的动作。/sd
:更改任务的开始日期。/st
:更改任务的开始时间。/ru
:更改任务的运行帐户。/rp
:更改帐户的密码。/enable
或/disable
:启用或禁用任务。
/run
和 /end
参数
/tn
:要运行或结束的任务名称。
例子
12月1号上午8点执行任务
1 | schtasks /create /sc once /tn "TaskName" /tr "PathToProgram" /st 08:00 /sd 12/01/2023 |
每天上午8点执行任务
1 | schtasks /create /sc daily /tn "MyTask" /tr "C:\path\to\program.exe" /st 08:00 |
每分钟执行任务
1 | schtasks /create /sc minute /mo 1 /tn "OpenNotepad" /tr "notepad.exe" |
查询所有任务
1 | schtasks /query /fo LIST |
查询创建时间powershell
1 | $tasks = Get-ScheduledTask | Where-Object { $_.Date -ge (Get-Date).AddMonths(-1) } |
0x2查看计划任务
命令
查看所有计划任务,效果不佳
1 | schtasks /query /fo LIST |
查询创建时间powershell
1 | $tasks = Get-ScheduledTask | Where-Object { $_.Date -ge (Get-Date).AddMonths(-1) } |
磁盘配置文件
C:\Windows\System32\Tasks
任务计划程序
在tasks删除不影响 任务计划程序,在任务计划程序删除影响tasks
注册表
1 | 计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree |
工具
Autoruns
适用于 Windows 的 Autoruns - Sysinternals | Microsoft Learn
0x3隐藏计划任务
- 删除磁盘配置文件
- 删除任务计划任务程序中的任务
- 指定不同权限
- 删注册表SD的值
重点讲一下注册表SD的值,前几种方式在system权限下,使用工具还是能够查看到。
此时我们可以通过删除注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows
NT\CurrentVersion\Schedule\TaskCache\Tree\下的SD记录,隐藏计划任务
使用psexec调用system,删除SD的值
0x4排查计划任务
0x5 工具
Autoruns
Procmon
PsExec
LastActivityView
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 小白全栈晋级之路-信息分享!