打开

Windows 系统第三方服务开发者可以借助 WSH (Windows Service Hardening) 机制提高安全性

subtitle
嘶吼RoarTalk2020-11-23 16:54

打开网易新闻 查看更多图片


Windows服务帐户是特权升级的首选攻击面之一,如果你能够盗用此类帐户,则获得最高特权非常容易,这主要是由于操作系统默认将强大的模拟特权授予服务。

即使Microsoft引入了WSH(Windows Service Hardening),你也无法“降低”标准Windows服务的能力,但如果你需要构建或部署第三方服务,则可以通过使用WSH。在这篇文章中,我将向你展示一些有用的技巧。

利用虚拟账户

显然,服务必须使用特定帐户运行,有一些内置的Windows帐户,例如Local Service和Network Service。但是也可以使用自我管理(无需处理密码)的虚拟账户,并且你可以通过设置正确的权限来授予特定权限ACL位于资源上。这使你能够隔离服务,并且在出现攻击的情况下,它们只能访问你允许的资源。虚拟帐户也可以访问网络资源,但是在这种情况下,它们将模拟计算机帐户(COMPUTERNAME $)。

使用虚拟账户配置服务

首先,你无需创建VSA,在安装服务后,系统会自动以以下格式为你创建一个匹配帐户:

NT SERVICE\

你所需要做的就是将帐户分配给你的服务:

不要忘记将密码字段留空。

限制对虚拟帐户的访问

现在,你的服务是在特定帐户下运行的,而不是像Local Service或Network Service这样的通用帐户,你可以在文件和目录等资源上实现细粒度的访问控制:

删除不必要的特权

模拟特权无疑会增加攻击面,因此,如果你的服务不需要模拟,为什么我们应该将其授予此服务用户呢?

是否可以删除此默认特权?当然可以!我们可以直接在注册表中或使用“ sc.exe”命令配置特权:

这些值将被写入注册表:

让我们看看特权是否被删除:

可以看到,危险的特权已被删除,再也无法将它重新找回,例如,使用此帖子中介绍的@itm4n的技巧。

写入受限令牌

如果将此额外的组添加到服务令牌中,则可以进一步限制服务帐户的权限。

这意味着默认情况下,你只能读取或执行资源,除非你明确授予写入访问权限:

参考及来源:https://decoder.cloud/2020/11/05/hands-off-my-service-account/

特别声明:本文为网易自媒体平台“网易号”作者上传并发布,仅代表该作者观点。网易仅提供信息发布平台。
帮他点赞
大家都在看打开应用 查看全部
网易热搜每30分钟更新
打开应用 查看全部
打开