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/如若转载,请注明原文地址: