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

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

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

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

工具目录

分类

查看所有分类
Loading categories
工具/GitHubGitHub/netero1010/ghosttask
权限提升持久化机制横向移动红队
GitHubnetero1010/ghosttask

GhostTask

该工具利用直接注册表操作来创建计划任务,而不触发通常的事件日志。

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Ghost 计划任务

受 WithSecure 关于 计划任务篡改 的研究启发,他们解释了仅通过注册表键操作创建计划任务的可行性。这种方法可以绕过计划任务创建事件日志(如 4698 和 106)的生成,从而提供更隐蔽的持久化方式。基于这些见解,我开发了这个 POC,演示如何通过直接操作注册表来创建计划任务。

创建一个新的计划任务需要添加多个注册表键及其关联的值。由于与计划任务相关的注册表值的结构未公开记录,我构建这些结构的方法主要依赖于反复试验,并通过与合法计划任务的注册表值进行对比来指导。此外,我还参考了 Taskschd.h 头文件中的接口,并大量借鉴了 Cyber.WTF 的 Windows 注册表分析——今日主题:任务。这项研究在指导我制定每个注册表值的结构方面非常宝贵,例如 Triggers、Actions 和 DynamicInfo,这些对于构建一个可运行的计划任务至关重要。

该工具提供以下功能:

  • 创建具有限制性安全描述符的计划任务,使其对所有用户不可见。
  • 直接通过注册表建立计划任务,绕过标准 Windows 事件日志的生成。
  • 支持修改现有计划任务,不生成 Windows 事件日志。
  • 支持远程创建计划任务(通过使用特制的 Silver Ticket)。
  • 支持在 C2 中使用内存 PE 执行模块(例如 BruteRatel's memexec)运行。

*备注:

  • 截至 2023 年 10 月 21 日,该工具已在 Windows 10、Windows Server 2016、2019 和 2022 上测试通过。
  • 截至 2023 年 10 月 21 日,在 MDE(Microsoft Defender for Endpoint)中不会生成任何警报或计划任务创建事件(ScheduledTaskCreated 操作类型)。
  • 要使用此工具创建计划任务,需要 "NT AUTHORITY/SYSTEM" 权限。
  • 配置计划任务后,您需要 重新启动系统 或 等待下次重新启动,任务才能被加载到 "Schedule" 服务进程中并随后执行。

用法

root@kitploit:~
Usage: GhostTask.exe <hostname/localhost> <operation> <taskname> <program> <argument> <username> <scheduletype> <time/second> <day>
- hostname/localhost: 远程计算机名称或 "localhost"。
- operation: add/delete
  - add: 仅使用注册表键创建或修改计划任务。需要重新启动 "Schedule" 服务以加载任务定义。
  - delete: 删除计划任务。需要重新启动 "Schedule" 服务以卸载任务。
- taskname: 计划任务的名称。
- program: 要执行的程序。
- argument: 程序的参数。
- username: 计划任务运行时使用的用户账户。
- scheduletype: 支持的触发器:second、daily、weekly 和 logon。
- time/second(适用于 'second'、'daily' 和 'weekly' 触发器):
  - 对于 'second' 触发器:指定任务执行的频率(以秒为单位)。
  - 对于 'daily' 和 'weekly' 触发器:指定任务执行的具体时间(例如 22:30)。
- day(适用于 'weekly' 触发器):执行计划任务的天数(例如 monday、thursday)。

编译

root@kitploit:~
x86_64-w64-mingw32-gcc GhostTask.c -o GhostTask.exe -lrpcrt4

示例

1. 创建一个计划任务,在每个星期一和星期四下午 2:12 启动 notepad.exe:

root@kitploit:~
GhostTask.exe localhost add demo "cmd.exe" "/c notepad.exe" LAB\Administrator weekly 14:12 monday,thursday

HowTo

2. 使用新的计划类型、用户和程序修改现有计划任务:

root@kitploit:~
GhostTask.exe localhost add "Microsoft\Office\Office Automatic Updates 2.0" "cmd.exe" "/c notepad.exe" LAB\employee001 daily 20:37

HowTo

3. 在远程计算机上创建新的计划任务:

如 WithSecure 博客(额外:横向移动 部分)所述,此技术可用于通过特制的 Silver Ticket 远程创建新的计划任务。

root@kitploit:~
kerberos::golden /domain:LAB.CORP /sid:S-1-5-21-1111111111-1111111111-1111111111 /aes256:[aes256hash] /user:Administrator /service:cifs /target:dc01.lab.corp /sids:S-1-5-18 /endin:600 /renewmax:10080

在 DC01 服务器上远程创建一个新的计划任务,每天下午 3:19 启动 notepad.exe:

root@kitploit:~
GhostTask.exe DC01.lab.corp add demo "cmd.exe" "/c notepad.exe" LAB\Administrator daily 15:19

HowTo

致谢

  • WithSecure 的研究:WithSecure 计划任务篡改
  • Cyber.WTF 的研究:Windows 注册表分析——今日主题:任务
  • ausecwa 的 bof-registry
下载工具