admin管理员组

文章数量:1530516

2024年6月2日发(作者:)

Windows Vista安全原理深入探索

本文是对盆盆以前发表过的文章《UAC功能浅析》一文的改写和扩充。一方面老

的那篇文章是根据Build 5231而写,内容比较陈旧,所以这次根据Windows Vista

正式版本进行改写;另一方面,本文绝非简单的改写,盆盆还特地加入了自己最

新探索和学习到的一些知识,希望能够让读者朋友满意。

盆盆评注 笔者在探索和学习Windows Vista安全理论的过程,深受《Windows

Internals》一书的启发。该书由Mark Russinovich和David Solomon所著,堪

称IT Pro和Dev的圣经。

参考

用户帐户控制(UAC),是Windows Vista新引入的安全机制。管理员登录Windows

时,系统会同时创建两个访问令牌,其中一个是完全的管理员访问令牌(Full

Token),另一个是经过“过滤”的访问令牌,叫做标准用户访问令牌,如附图

所示。当Windows系统启动Shell进程()时,LSA会把标准用户

访问令牌连接到Shell进程,所以Windows Vista启动的用户进程,默认都只具

有标准用户权限。如果某个进程需要管理员权限,则系统会提示权限提升,得到

用户亲自确认后,系统会把完全的管理员访问令牌连接到该进程上。

单击看大图

准备知识

在《Windows Internals》的第八章“安全”部分,介绍了一个实例:当我们在

Windows XP里启动“日期和时间”控制面板组件时,实际上启动的是“rundll32”

进程,由该进程加载“”控制面板组件。用Process Explorer检

查该“rundll32”进程的访问令牌,可以发现“SeSystemTimePrivilege”特权

处于启用状态,如附图所示。

单击看大图

“SeSystemTimePrivilege”是“更改系统时间”特权的内部名称,所有特权都

保存在LSA的策略数据库中,该数据库会加载到HKLMSECURITY注册表分支,用

户登录系统时,LSA会读取这些特权值。

对于Windows XP专业版,我们可以通过“本地安全策略”管理单元查看用户所

具有的特权。可以看到,“更改系统时间”特权仅授予管理员组和Power Users

组用户,如附图所示,这就是为什么在Windows XP下,标准用户无法修改系统

时间和时区的原因。

单击看大图

盆盆评注 笔者曾经写过一个连载,介绍帐户的登录权利所对应的

HKLMSECURITY注册表键值。可以用同样方法得出特权所对应的注册表键值。

实验准备

现在我们已经知道,要修改系统时间,当前帐户必须具备“更改系统时间”特权。

但是在Windows Vista下,默认不是只有标准用户权限吗,这时候应该没有“更

改系统时间”特权!那么系统是如何获得“更改系统时间”特权的呢?我们用实

验来进行验证。

1. 实验工具

本实验在Windows Vista中文旗舰版上进行,测试帐户为Admin,是管理员组成

员。为了查看进程的访问令牌,需要采用先前提到的Process Explorer工具,

下载地址如下:

/technet/sysinternals/utilities/ProcessExplor

本文标签: 系统特权用户时间访问