译者: 林妙倩、戴亦仑 原创翻译作品,如果需要转载请取得翻译作者同意。
数据来源:ATT&CK Matrices
原文: https://attack.mitre.org/techniques/T1088
术语表: /attack/glossary
Windows 用户帐户控制 (UAC) 使程序可以通过提示用户进行确认来提升权限,从而在管理员权限下执行任务。对用户的影响包括强制拒绝操作,允许用户执行操作(如果用户在本地管理员组中并单击提示符),或允许用户输入管理员密码以完成操作。
如果计算机的 UAC 保护级别设置为最高级别以外的任何级别,则特定 Windows 程序可以提升特权或执行某些提升的 COM 对象,而不会通过 UAC 通知框提示用户。 这方面的一个例子是使用 rundll32.exe 加载特制的 DLL,它加载自动提权的 COM 对象并在受保护的目录中执行文件操作,这通常需要提升访问权限。恶意软件也可以被注入到受信任的进程中,从而在不提示用户的情况下获得更高的权限。如果目标进程不受保护, 攻击者可以使用这些技术将权限提升为管理员。
已发现许多绕过 UAC 的方法。UACMe 的 Github readme 页面包含已在 UACMe 中发现和实施的广泛的方法列表 ,但可能不是全面的绕过列表。经常发现其他的旁路方法,其中一些在民间使用,如:
eventvwr.exe
可以自动提权并执行指定的二进制文件或脚本。如果已知具有管理员权限的帐户的凭据,则可以通过横向移动技术进行绕过,因为 UAC 是单系统安全机制,并且在系统上运行的进程的权限或完整性对于横向系统是未知的,默认为高完整性。
从系统上的本地管理员组中删除用户。 尽管存在 UAC 绕过技术,但尽可能对 UAC 使用最高的强制级别并缓解 DLL 搜索命令劫持等技术存在的绕过机会仍然是谨慎的。 检查 Windows 系统上常见的 UAC 绕过弱点,以了解风险状况并在适当时解决问题。
当用户在系统上的本地管理员组中时,有许多方法可以绕过 UAC,因此很难针对对所有变化进行检测。 应该努力减轻影响并收集有关进程启动和在 UAC 绕过前后的操作的足够信息。 监视进程 API 调用的行为,这些行为可能表明进程注入和通过 DLL 搜索顺序劫持加载的异常 DLL,这表明试图获得对高级特权进程的访问权。 一些 UAC 绕过方法依赖于修改特定的,用户可访问的注册表设置。 例如:
eventvwr.exe
绕过使用 [HKEY_CURRENT_USER]\Software\Classes\mscfile\shell\open\command
注册表项。
sdclt.exe
绕过使用 [HKEY_CURRENT_USER]\Software\Microsoft\Windows\CurrentVersion\App Paths\control.exe
和 [HKEY_CURRENT_USER]\Software\Classes\exefile\shell\runas\command\isolatedCommand
注册表项。
分析人员应该监控这些注册表设置,以发现未经授权的更改。