前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >TrustedInstaller,停止 Windows Defender

TrustedInstaller,停止 Windows Defender

作者头像
Khan安全团队
发布2022-01-18 11:29:11
1.7K0
发布2022-01-18 11:29:11
举报
文章被收录于专栏:Khan安全团队

在入侵过程中,禁用目标计算机的防御措施的能力会很有用。对于那些已经尝试过微软操作系统默认嵌入的安全解决方案 Windows Defender 的渗透测试者,你会同意我的观点,自首次发布以来它已经有了很大的改进,尤其是 Windows 10 具有云容量的最新版本。因此,我们很可能迟早会在​​入侵过程中遇到这种防病毒软件。

简单来说,Windows Defender 的主要组件是“ WinDefend ”服务,负责启动持续监控进程“ MsMpEng.exe ”并加载其引擎“ mpengine.dll ”,所以如果我们能够停止该服务,我们将在很大程度上停止其执行。

对于那些曾经试图阻止它的人,他们会意识到无论是作为管理员用户还是作为系统用户都无法阻止它。

是的,确实可以通过图形界面禁用,而不是停止(服务仍在运行),但是这个选项我们并不感兴趣,因为很多时候我们的恶意软件不会以这种方式与系统交互。

考虑到这一点,在以下几行中,我们将了解如何以编程方式停止防病毒服务,我们将展示一个 PoC,您可以轻松地将其作为模块包含在您最喜欢的后期利用工具中。

为了理解我们将要执行的动作的“内部结构”,我们必须清楚两个概念:什么是 Token 和什么是 TrustedInstaller (TI)。

令牌

Microsoft Windows 操作系统中的令牌是一种安全元素,当进程和线程想要对安全系统对象(文件、注册表、服务......)执行操作时,它为它们提供标识。也就是说,这就像你想进入迪斯科时出示你的身份证一样。

其中存储了以下内容:完整性级别、进程所属的用户、权限和组。我们不打算详细介绍,因为对我们来说重要的是后者,即提供安全令牌的进程/线程所属的组。

强调一个进程或一个线程,如果它有适当的权限和特权,就可以冒充另一个用户,这就是所谓的冒充。因此,我们的应用程序可以复制和/或使用来自另一个线程/进程的令牌,只要我们有权打开远程进程并使用适当的权限(Impersonate / DuplicateToken)获取其令牌处理程序。

现在我们知道了 Token 是什么以及我们可以用它做什么,我们将介绍第二个概念,TrustedInstaller。

受信任的安装程序

当然,对于那些曾经尝试从系统中删除文件但无法删除的人来说,即使您是 SYSTEM 或管理员,它的所有者 ( TrustedInstaller ) 也会引起您的注意。那么,TrustedInstaller就是SCM(Service control Manager)在计算机启动时创建的一个虚构的组,构成了所谓的“Service Group”。

也就是说,现代 Windows 操作系统中的每个服务都有一个与其名称匹配的虚拟组。此功能对于能够提供对服务进程可以使用的系统的所有安全对象(文件、管道、记录、令牌...)的访问非常有用,从而减少了通过针对所有 DACL 检查令牌引入的开销。物体。

因此,正如我们所评论的,TrustedInstaller 不仅是一个组,而且还是一个服务,我们可以在计算机的服务列表中找到它,通常是停止的,因为它仅在“Windows 更新”需要时启动东西。升级。

聪明的读者此时会想:嗯,这个进程和这个组有很大的权力……的确如此,甚至超过了系统中的SYSTEM。我们感兴趣。出于好奇,如果我们想区分真实组/用户和 SCM 创建的虚构组/用户,我们必须查看“域”,它是出现在用户/组前面的前缀。

通常,真实的服务前面有前缀“NT AUTHORITY”,而合成服务前面有“NT SERVICE”。

但我们不要忘记我们的目标:停止WinDefend服务。让我们看看你有什么保护措施。

在 Microsoft Windows 操作系统中,一切都是安全的对象,服务也同样如此,因此它提供了一组 DACL 和保护权限。让我们看看它们是什么:

从上图中可以看出,唯一能够停止 Antivirus 服务(完全控制)的安全身份是它自己和TrustedInstaller服务。这是有道理的,因为为了更新自身,TrustedInstaller.exe必须能够停止防病毒软件并复制新文件。请注意,即使是管理员或系统组也无法做到这一点。

作为我们目标的第一个近似值,我们可以考虑从“ MsMpEng.exe ”本身借用令牌并模拟它,因为它代表“ NT SERVICE/WinDefend ”组,但这是不可能的,因为这个过程是一个 PPL-类型 process. ( Protected Process Light ) 因此我们将无法获得允许我们最终读取其令牌的进程处理程序,即使具有调试权限( SeDebugPrivilege ) 也是如此。

因此,我们已经知道,只有获得包含 IT 组的令牌,我们才能停止防病毒服务。因此,我们的下一个目标是 IT 服务。

首先,我们将作为管理员启动服务,我们将检查进程的打开权限。

完美的。它似乎对我们有用,因为为了访问令牌,我们需要在包含PROCESS_QUERY_INFORMATIONPROCESS_QUERY_LIMITED_INFORMATIONPROCESS_ALL_ACCESS完全控制)的进程的开放级别访问。

另外,请注意,此过程不受 PPL 保护,因此它允许我们先验地打开它。微软怎么可能不保护系统中如此重要的进程?这是一个特性,而不是一个错误¯\_(ツ)_/¯。

但它不是那么漂亮。我们需要使用SeDebugPrivilege权限,因为 TI 进程的完整性级别是SYSTEM而我们的应用程序的完整性级别是High,所以它在下面。请记住,要检查一个对象是否可以访问另一个对象,首先检查强制完整性控制,然后检查自由控制自由访问控制),在这种情况下,我们满足第二个而不是第一个。SeDebugPrivilege允许我们绕过两者,但仅用于打开进程(OpenProcess)。

现在让我们检查 TI 进程的主 Token 的权限,因为为了使用它并模拟它,它必须允许我们通过用户的IMPERSONATE权限这样做。

作为管理员,我们发现这还不够,因此我们将无法读取和模拟TrustedInstaller令牌。只有当我们是 SYSTEM 才能做到这一点,因此我们必须采取中间步骤并将权限从管理员提升到 SYSTEM。

将权限从Admin升级到SYSTEM的最简单方法是从已经运行的进程中模拟SYSTEM令牌。最好的候选者之一是Winlogon.exe,因为它在同一个用户会话中运行并且在其上也有宽松的 ACL(管理员可以在IMPERSONATE模式下打开您的令牌)。

这是最后一扇打开的门,它把我们引向阻止防守者的道路。作为总结,我们将看到实现目标所需的一系列WinApi调用。

在以下链接中,您将获得基于“ slyd0g ”分叉的概念证明以及在获取系统令牌时修改的“ tiraniddo 的主要思想。可能,即使这些作者也不是原始知识分子,但是,请拉出他们的参考资料以获取更多信息。

https://github.com/lab52io/StopDefender

这种技术的好处是,在执行以下任务之一(大约 24 小时)之前,防御者不会恢复活力。如果我们想在下次重新启动之前完全禁用它,我们只需将它们作为 TI 禁用,这个练习留给读者。

最后,请注意,获取TrustedInstaller令牌还有多种其他方式,其中涉及更改获取系统令牌的方式,甚至伪造一个呈现该组的令牌,而无需从TrustedInstaller.exe 进程中窃取它。但是,这在我看来是最直接最简单的,不需要修改服务。

本文系外文翻译,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系外文翻译前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 令牌
  • 受信任的安装程序
相关产品与服务
网站渗透测试
网站渗透测试(Website Penetration Test,WPT)是完全模拟黑客可能使用的攻击技术和漏洞发现技术,对目标系统的安全做深入的探测,发现系统最脆弱的环节。渗透测试和黑客入侵最大区别在于渗透测试是经过客户授权,采用可控制、非破坏性质的方法和手段发现目标和网络设备中存在弱点,帮助管理者知道自己网络所面临的问题,同时提供安全加固意见帮助客户提升系统的安全性。腾讯云网站渗透测试由腾讯安全实验室安全专家进行,我们提供黑盒、白盒、灰盒多种测试方案,更全面更深入的发现客户的潜在风险。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档