Windows安全基础:UAC

news2024/11/16 22:55:56

目录

UAC原理介绍

UAC的四个安全级别定义

UAC的触发条件

UAC用户登录过程

UAC虚拟化

配置UAC


UAC原理介绍

用户账号控制(User Account Control) 为Windows Vista推出的一项安全技术,其原理是通过限制安全应用软件对系统层级的访问,提升Windows操作系统的安全性。

UAC的四个安全级别定义

可以在用户控制设置里面设置级别

使用win+R打开运行框,输入msconfig进入系统配置中

第一级别(最高级别):对所有安全系统设置的行为(如安装程序,更改Windows设置)进行提醒

第二级别(默认级别):仅在程序尝试改变系统设置时才会弹出UAC提醒,用户更改系统设置时不会弹

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

第四级别:从来不提示(相当于关闭了UAC)

UAC的触发条件

windows 7中开始涉及UAC的操作时弹出一个窗口,并且会黑屏询问你是否继续使用电脑处于“安全桌面”状态。

以下动作会触发UAC:

  • 配置windows update

  • 增加或者删除用户

  • 改变用户类型

  • 改变UAC设置

  • 安装ActiveX

  • 安装或移除程序

  • 安装设备驱动程序

  • 设置家长控制

  • 查看其他用户文件夹

  • 更改注册表

  • 更改系统保护或者高级系统设置

UAC触发流程

在触发 UAC 时,系统会创建一个consent.exe进程,该进程通过白名单程序和用户选择来判断是否创建管理员权限进程。请求进程将要请求的进程cmdline和进程路径通过LPC接口传递给appinfo的RAiLuanchAdminProcess函数,该函数首先验证路径是否在白名单中,并将结果传递给consent.exe进程,该进程验证被请求的进程签名以及发起者的权限是否符合要求,然后决定是否弹出UAC框让用户进行确认。这个UAC框会创建新的安全桌面,屏蔽之前的界面。同时这个UAC框进程是SYSTEM权限进程,其他普通进程也无法和其进行通信交互。用户确认之后,会调用CreateProcessAsUser函数以管理员权限启动请求的进程。

UAC用户登录过程

在整个Windows操作系统资源中会有一个ACL,这个ACl决定了各个不同的权限的用户/进程能够访问不同的资源。

当一个线程尝试访问某个对象时,当前的系统会先检查该线程所持有的访问令牌以及被访问对象的安全描述符中的DACL规则。

如果安全描述符中不存在DACL规则,则当前系统会允许线程直接访问。

线程访问对象的流程:

正常来说,在我们使用账号登录操作系统会产生令牌令牌会记载我们所拥有的权限。

如果我们以管理员权限进行登录,会生成两份访问令牌:标准用户访问令牌完全管理员访问令牌

下面这幅图展示了管理员用户和普通用户的登录过程

UAC的用户登录过程如下:

  1. Administrato用户的UAC验证过程:

当我们登录的是Adminitrator用户的时候(已经开启UA,想要在管理控制台中执行“添加/删除用户”操作,UAC会弹出“安全桌面”

可以根据实际情况选择是或者否。

出现这种情况的原因是,在访问之前系统会 先检查进程所持有的访问令牌以及被访问对象的安全描述符中的DACL规则,确保携带的令牌以及规则正确无误。因为我们携带的访问令牌是权限最低状态下的受保护的管理员访问令牌,所以当进程请求触发了UAC操作的时候,UAC就会弹出通知,询问我们是否允许。

单机“是”按钮,其实就是向进程发送了我们的管理员令牌,使得管理员的状态由“受保护状态”变更为提升状态。

  1. 标准用户的UAC验证过程:

标准用户登录后,windows会给用户分配一个标准用户访问令牌

要访问某个携带标准用户访问令牌的进程,在进程触发UAC操作的时候会弹出通知,让我们输入管理员密码

此时我们并不具备管理员的访问令牌,通过输入管理员密码可以获取管理员的访问令牌操作。

输入管理员密码的过程本质上是通过管理员凭据为标准用户提权

UAC虚拟化

又称为UAC重定向,当用户没有达到程序要求的权限时,就会进行重定向操作

虚拟化又被分为:文件虚拟化注册表虚拟化

例如:如果一个程序试图写入C:\Program Files\Contoso\Settings.ini,但是用户没有写入那个目录的权限,这个写操作就会被重定向到

C:\Users\Username\AppData\Local\VitualStore\Program Files\Contoso\Settings.ini

对于注册表来说,如果一个程序视图写入HKEY_LOCAL_MACHINE\Software\Contoso,它会自动被重定向到

HKEY_CURRENT_USER\Software\Classes\VirtualStore\Machine\Sofreware\Contoso或

HKEY_USERS\UserSID_Classes\VirtualStore\Machine\Sofreware\Contoso

配置UAC

若要配置 UAC,可以使用:

  • Microsoft Intune/MDM

  • 组策略

  • 注册表

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1379288.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

从零到一保姆级深度学习Docker镜像配置教程

文章目录 前言一、Docker相关工具安装1.1 Docker安装和配置1.2 Nvidia-Docker安装1.3 Docker-Compose安装 二、深度学习环境Docker镜像配置2.1 基础镜像拉取与启动2.2 深度学习Docker环境配置2.2.1 更换软件源2.2.2 安装常见命令2.2.3 安装SSH2.2.4 安装Miniconda2.2.5 安装Pyt…

计算n的平方根m 进而将m向下取整 math.isqrt()

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 计算n的平方根m 进而将m向下取整 math.isqrt() 选择题 请问执行math.isqrt(10)的运行结果是: import math print("【执行】math.sqrt(10)") print (math.sqrt(10)) pr…

thinkphp6报错Driver [Think] not supported.

thinkphp6报错Driver [Think] not supported. 问题解决方法测试 问题 直接使用 View::fetch();渲染模板报错 解决方法 这个报错是由于有安装视图驱动造成的 运行如下命令安装即可 composer require topthink/think-view官方文档中是这么写的 视图功能由\think\View类配合视…

视频SDK的技术架构优势和价值

为了满足企业对于高质量视频的需求,美摄科技推出了一款强大的视频SDK(软件开发工具包),旨在帮助企业轻松实现高效、稳定的视频功能,提升用户体验,增强企业竞争力。 一、美摄视频SDK的技术实现方式 美摄视…

Flutter之配置环境创建第一个项目

随着时代发展,使用Flutter开发的项目越来越多,于是踏上了Flutter开发之路。 作为一个Android开发人员,也只能被卷到与时俱进,下面一起创建一个Flutter项目吧。 一、Android开发,电脑上已经具备了的条件: …

easyexcel上传校验的方法封装

easyexcel版本3.1.5 使用自定义注解的方式来定义校验的类型,避免冗余代码。 //校验value不能为空,且长度最大为30 RowCheck(value {RowCheckType.EMPTY,RowCheckType.LENGTH},max 30) private String value; 具体代码: 首先定义校验类型…

4.8 SUMMARY 4.9 EXERCISES

总之,在现代处理器中,程序的执行速度可能会受到内存速度的严重限制。为了很好地利用CUDA设备的执行吞吐量,应该在内核代码中获得高计算与全局内存访问率。如果获得的比率很低,则内核受内存约束;即其执行速度受从内存访…

Docker安装Elesticsearch7详细步骤

​ 1、创建安装目录 mkdir -p /usr/local/docker/es-docker 2、配置虚拟内存 如果不配置,后面启动es会报错。 max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144] 配置如下 vi /etc/sysctl.conf vm.max_map_coun…

MySQL夯实之路-存储引擎深入浅出

innoDB Mysql4.1以后的版本将表的数据和索引放在单独的文件中 采用mvcc来支持高并发,实现了四个标准的隔离级别,默认为可重复读,并且通过间隙锁(next-key locking)策略防止幻读(查询的行中的间隙也会锁定…

使用Navicat导入csv数据至mysql

问题 使用Navicat导入csv数据至mysql 详细问题 笔者有已进行数据处理的csv,需要将数据信息导入mysql中 解决方案 步骤1、建立数据表,字段信息(最好)与csv字段信息保持一致,方便后续导入。 具体的,双击…

WPS - 表格虚线变成实线解决方案(Office 同上)

1、选中表格区域,在表格中选中需要调整为实线的表格区域 2、点击设置单元格格式,鼠标进行右击并点击设置单元格格式选项 3、选择实线,在单元格格式下的边框,调整到实线 4、设置为实线,即可将表格的虚线设置为实线

Django(七)

Django(六) 4.编辑用户 点击编辑,跳转到编辑页面(将编辑行的ID携带过去)。编辑页面(默认数据,根据ID获取并设置到页面中)提交: 错误提示数据校验在数据库更新 user_edit.html {% exte…

JavaScript Web Worker用法指南

🧑‍🎓 个人主页:《爱蹦跶的大A阿》 🔥当前正在更新专栏:《VUE》 、《JavaScript保姆级教程》、《krpano》 ​ ​ ✨ 前言 Web Worker可以将耗时任务放到后台执行,避免阻塞UI。本文将详细介绍Web Worker的用法,让你…

Spark原理——运行过程

运行过程 逻辑图 是什么 怎么生成 具体怎么生成 val textRDD sc.parallelize(Seq("Hadoop Spark", "Hadoop Flume", "Spark Sqoop")) val splitRDD textRDD.flatMap(_.split(" ")) val tupleRDD splitRDD.map((_, 1)) val reduceRD…

代币合约 ERC20 Token接口

代币合约 在以太坊上发布代币就要遵守以太坊的规则,那么以太坊有什么规则呢?以太坊的精髓就是利用代码规定如何运作,由于在以太坊上发布智能合约是不能修改和删除的,所以智能合约一旦发布,就意味着永久有效,不可篡改…

ESU毅速丨复杂结构模具可尝试3D打印随形水路

冷却水路对模具的生产效率影响巨大,一些结构复杂、骨位深的模具常规水路加工困难且冷却效果不理想,这时可尝试3D打印来制造水路。3D打印技术可以制造出具有复杂内部结构和任意几何形状的部件,特别适合结构复杂、骨位深、薄壁等特征的模具水路…

解决uni-app小程序获取路由及路由参数

代码: this.id = this.$route.query.id;错误信息: 解决方案: // 获取query对象// #ifdef H5this.id = this.$route

电子学会C/C++编程等级考试2023年09月(三级)真题解析

C/C++编程(1~8级)全部真题・点这里 第1题:谁是你的潜在朋友 “臭味相投”——这是我们描述朋友时喜欢用的词汇。两个人是朋友通常意味着他们存在着许多共同的兴趣。然而作为一个宅男,你发现自己与他人相互了解的机会并不太多。幸运的是,你意外得到了一份北大图书馆的图书借…

最新AI绘画Midjourney绘画提示词Prompt大全

一、Midjourney绘画工具 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭…

提供一些防扫描被封禁、防溯源工具

1► 介绍 SecScanC2可以创建P2P网络进行安全扫描和C2。该工具可以帮助安全研究人员更有效地进行渗透测试,防止扫描被封禁,保护自己免受溯源。 2► 工具特性 P2P:将大量互联网节点构建成P2P网络 防止扫描被封禁:随机或指定节点…