Windows系统计划任务是在攻防场景下,权限维持的一种常用的方式。通常在获取目标权限后,为了避免权限丢失,而设置持久化项。系统计划任务便是其中的一种,使得后门程序再次启动。
本篇文章主要介绍了通过系统命令schtasks,本地和远程创建计划任务的方法,以及对应操作在应急场景下如何进行排查。
0x00 命令格式
schtasks /parameter [arguments]
0x01 描述信息
允许管理员创建、删除、查询、更改、运行和中止本地或远程系统上的计划任务。
0x02 参数列表
参数 |
说明 |
/Create |
创建新计划任务 |
/Delete |
删除计划任务 |
/Query |
显示所有计划任务 |
/Run |
按需运行计划任务 |
|
|
|
|
|
|
常用参数说明,允许管理员在本地或远程系统上创建计划任务。
参数 |
全称 |
说明 |
/TN |
taskname |
任务名(路径名称) |
/TR |
taskrun |
要运行的程序(路径文件名) |
/S |
System |
指定远程系统 |
/U |
username |
指定远程系统的用户 |
/P |
password |
指定远程系统的密码 |
/RU |
以system身份进行运行 |
|
/sc |
schedule |
指定计划任务的频率: minute, hourly, daily, weekly, monthly, once, onstart, onlogon, onidle, onevent |
/mo |
modifier |
改进计划类型以允许理好地控制计划重复周期,按计划类型的 /MO 开关的有效值: MINUTE: 1 到 1439 分钟。 HOURLY: 1 - 23 小时。 DAILY: 1 到 365 天。 WEEKLY: 1 到 52 周。 ONCE: 无修改者。 ONSTART: 无修改者。 ONLOGON: 无修改者。 ONIDLE: 无修改者。 MONTHLY: 1 到 12,或FIRST, SECOND, THIRD, FOURTH, LAST, LASTDAY。 |
/st |
starttime |
指定开始时间格式:HH:mm |
/ri |
interval |
用于分钟指定重复间隔 |
/et |
endtime |
指定运行任务的结束时间。时间格式为 HH:mm (24 小时时间), 例如,14:50 表示 2:50 PM。 这不适用于计划类型: ONSTART、ONLOGON, ONIDLE, ONEVENT。 |
0x03 本地创建计划任务
命令示例:
schtasks /create /tn 计划任务名 /tr "执行的命令" /sc 计划任务的频率 /ru System
1、创建计划任务test1每5分钟运行一次calc.exe。
schtasks /create /tn test1 /tr “calc.exe” /sc minute /mo 5
2、创建计划任务test2在用户登录时自动执行一次calc.exe。
schtasks /create /tn test2 /tr “calc.exe” /sc onlogon
注意:在非管理员权限下,只能创建周期性任务,无法创建特定条件任务。
3、删除计划任务test1
schtasks /Delete /tn "test1" /F
4、在每个任意用户登录中以SYSTEM的形式执行计划任务,SYSTEM形式的均需要管理员权限。
schtasks /create /tn 计划任务名 /tr "执行的命令" /sc onlogon /ru System
5、在系统启动期间或用户会话处于非活动状态(空闲模式)30分钟时执行。
schtasks /create /tn 计划任务名 /tr "执行的命令" /sc onidle /i 30
6、在系统启动的时候以SYSTEM的形式执行计划任务。
schtasks /create /tn 计划任务名 /tr "执行的命令" /sc onstart /ru System
0x04 远程创建计划任务
注意:远程创建计划任务,有前置条件,本地计算机必须与远程计算机位于同一域中,或者必须位于远程计算机域信任的域中。
1、远程创建计划任务(指定动作)
schtasks /create /S 192.168.221.131 /U administrator /P *** /SC onstart /TN testyc /TR calc.exe
2、远程创建计划任务(指定时间)
schtasks /create /S 192.168.221.131 /U administrator /P *** /SC once /ST 22:19 /TN testyc3 /TR calc.exe
3、远程查看计划任务
schtasks /query /S 192.168.221.131 /U administrator /P ***
4、远程运行计划任务
schtasks /run /S 192.168.221.131 /U administrator /P *** /I /TN "testyc3"
5、远程删除计划任务
schtasks /delete /S 192.168.221.131 /U administrator /P hack@123 /TN "testyc3" /F
除命令外,也可以使用其它方式实现添加计划任务的操作,如powershell脚本、windows API等等。
0x06 计划任务日志分析
日志位置:Microsoft-Windows-TaskScheduler/Operational
1、创建计划任务
当成功创建计划任务时,会产生事件ID为106的已注册任务事件。
2、计划程序自动触发
当计划任务触发条件如期执行时,会产生事件ID为107的任务已由计划程序触发事件。
3、计划任务创建进程
当计划程序成功创建进程后,会产生事件ID为129的已创建任务进程事件。
4、主动运行触发
用户主动运行计划任务时,会产生事件ID为110的任务已由用户触发事件。
5、删除计划任务
删除计划任务时,会产生事件ID为141的任务注册已删除事件。
0x07 参考链接
https://learn.microsoft.com/zh-cn/windows-server/administration/windows-commands/schtasks
如果您觉得内容还不错的话,请关注我吧!
建议把公众号“篝火信安”设为星标,否则可能就看不到啦!因为公众号现在只对常读和星标的公众号才能展示大图推送。
操作方法:点击公众号页面右上角的【...】,然后点击【设为星标】即可。
原文始发于微信公众号(篝火信安):Windows操作计划任务常用命令及排查方法
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论