前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ATT&CK视角下的红蓝对抗之UAC用户账户控制

ATT&CK视角下的红蓝对抗之UAC用户账户控制

原创
作者头像
一只特立独行的兔先生
修改2024-01-22 08:38:45
2110
修改2024-01-22 08:38:45
举报

1. UAC原理概述

用户帐户控制(User Account Control,UAC)为Windows Vista中所推出的安全技术之一,其主要特点在于通过限制应用软件对系统层级的访问,从而改进Windows操作系统的安全性。虽然此类机能一直遭到部分用户的批评,但后续的Windows操作系统仍保留此类机能。如Windows 7中,微软公司保留并改进了此项功能(自定义UAC的安全等级)。

2. UAC级别定义

用户账户控制UAC最早出现在Windows Vista上面,当时只有关闭和开启UAC的选项,在后续的Windows 7操作系统中UAC进行了更新,增加了UAC白名单,并且更新了4个等级取代了Windows Vista只有开和关的功能,Windows 7操作系统允许用户根据自身应用场景需求动态调整UAC的安全级别,Windows 7系统为用户定义了如下4个安全级别。

1)第一级别(最高级别)

相当于Windows Vista中的UAC,即对所有改变系统设置的行为进行提醒(例如:安装应用程序、更改windows设置),如图1-1 所示。

图1-1 UAC第一级别(最高级别)
图1-1 UAC第一级别(最高级别)

2)第二级别(默认级别)

仅在程序尝试试图改变系统设置时才会弹出UAC提示,用户改变系统设置时不会弹出提示(如果我们使用常见程序和常见网站,推荐使用这种模式),如图1-2所示。

图1-2  UAC第二级别(默认)
图1-2 UAC第二级别(默认)

3)第三级别

仅当程序尝试更改计算机时弹出通知提示,用户自行设置更改计算机时不会弹出通知提示(与第二级别基本相同,但不使用安全桌面),如图1-3所示。

图1-3 UAC第三级别
图1-3 UAC第三级别

4)第四级别

UAC从不提示(相当于关闭UAC),如图1-4所示。

图1-4 UAC第四级别
图1-4 UAC第四级别

3. UAC触发条件

从Windows7开始,Windows7会在涉及UAC的操作的时候弹出一个窗口,并且会黑屏询问你是否继续使电脑处于“安全桌面”状态,如图1-5 所示。此时这个桌面具有System的权限,其他程序无任何权限进行操作。

IMG_271
IMG_271

以下列举会触发UAC的操作。

  • 以管理员身份运行程序。
  • 配置Windows Update。
  • 增加或删除用户账户。
  • 改变用户的账户类型。
  • 配置来宾(Guest)账户(Windows 7和8.1)。
  • 改变UAC设置。
  • 安装ActiveX。
  • 安装或移除程序。
  • 安装设备驱动程序。
  • 设置家长控制。
  • 修改系统盘根目录、Program Files(x86和x64)目录或Windows目录。
  • 查看其他用户文件夹。
  • 配置文件共享或流媒体。
  • 配置家长控制面板。
  • 运行Microsoft Management Console控制台和以.msc为后缀名程序(部分.mmc程序除外)。
  • 运行系统还原程序。
  • 运行磁盘碎片整理程序。
  • 运行注册表编辑器或修改注册表。
  • 安装或卸载显示语言(Windows 7)。
  • 运行Windows评估程序。
  • 配置Windows电源程序。
  • 配置Windows功能。
  • 运行日期和时间控制台。
  • 配置轻松访问。
  • 激活、修改产品密钥。

4. UAC用户登录过程

在整个Windows操作系统资源中会有一个ACL(Access Control List)的访问策略列表,这个访问控制列表负责决定了各个不同权限的用户/进程能够访问不同的资源,当一个线程去尝试访问某一个对象时,当前的系统会先检查线程所持有的Access Token 以及被访问对象的安全描述符中的DACL规则,如果安全描述符中不存在DACL规则,则当前系统会允许线程直接进行访问,如下图1-6所示,为整个线程访问对象的流程。

IMG_273
IMG_273

正常来说,当我们使用账号登录到操作系统之后会产生令牌,令牌会记载我们所拥有的权限 ,如果我们以管理员角色权限进行登录会生成两份访问令牌,如图1-7所示。

标准用户访问令牌(Standard user access token)。

完整的管理员访问令牌(Full administrator access Token)。

IMG_274
IMG_274

当我们登录的是Administrator用户的时候(同时已经开启了UAC)想在管理控制台中执行添加或删除用户”操作,其会弹出“安全桌面”。我们可根据实际情况选择是还是否,如图1-8所示,出现这种情况的原因是在访问之前,系统会先检查进程所持有的Access Token 以及被访问对象的安全描述符中的DACL规则,确保携带的令牌以及规则正确无误,因为我们携带的访问令牌是权限最低状态下的受保护的管理员访问令牌,所以当进程请求触发了UAC操作的时候,UAC就会弹出通知询问我们是否允许,当我们点击“是”的时候 其实就给进程发送了我们的管理员访问令牌,届时管理员的状态由“受保护状态”变更为“提升状态下”的提升管理员,我们通过提升状态下的管理员访问令牌即可对计算机执行更改操作。

IMG_275
IMG_275

假设当我们登录的用户是普通用户的时候, Windows会给用户分配一个标准Access Token,如图1-9所示。

IMG_276
IMG_276

当我们要访问某个进程时,其携带的是标准用户的访问令牌,那么在进程触发UAC操作的时候就会弹出通知,询问我们并让我们输入管理员账号密码,如图1-18所示。因为此时我们是不具备管理员访问令牌的,我们通过输入管理员账号密码获取管理员的访问令牌操作,其实我们输入管理员密码的过程本质上就是通过管理员的凭证去对标准用户进行权限的提升。

IMG_277
IMG_277

5. UAC虚拟化

UAC虚拟化也被称为重定向操作 当用户权限没有达到程序要求的权限,就会进行重定向操作,虚拟化由俩个部分构成文件虚拟化和注册表虚拟化。例如,如果一个程序试图写入到 C:\Program Files\Contoso\Settings.ini,但用户没有写入那个目录的权限,这个写操作就会被重定向至 C:\Users\Username\AppData\Local\VirtualStore\Program Files\contoso\settings.ini 对于注册表,如果一个程序试图写入到 HKEY_LOCAL_MACHINE\Software\Contoso,它会被自动重定向到HKEY_CURRENT_USER\Software\Classes\VirtualStore\MACHINE\Software\Contoso或者 HKEY_USERS\UserSID_Classes\VirtualStore\Machine\Software\Contoso中。

我正在参与2024腾讯技术创作特训营第五期有奖征文,快来和我瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. UAC原理概述
  • 2. UAC级别定义
    • 1)第一级别(最高级别)
      • 2)第二级别(默认级别)
        • 3)第三级别
          • 4)第四级别
          • 3. UAC触发条件
          • 4. UAC用户登录过程
          • 5. UAC虚拟化
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
          http://www.vxiaotou.com