微软最有价值专家/资深微软讲师/Microsoft Press签约作者/ITECN站长
点击这里,了解盆盆的经历 微软虚拟化技术、VMware虚拟化、Windows内部原理、活动目录高级技术和排错、Windows Server 2008、Windows Vista
新书《Windows Vista使用详解》微软Windows首席开发主管Robert Gu推荐
在笔者的帖子《Windows Vista的UAC功能浅析(一)》中,曾经提到:在Windows Vista Build 5231下,如果尝试使用"Date and Time"组件修改系统时间或者日期。当确认提升权限后,会新创建一个dllhost进程(实际上就是"Date and Time"组件的宿主进程),其访问令牌里的SeSystemTimePrivilege特权默认为启用状态。但是到了Windows Vista 5308下,情况有了变化:确认提升权限后,新建一个dllhost进程,但是访问令牌里的SeSystemTimePrivilege特权还是保持为Disabled状态,如下图所示。而只有用键盘鼠标“显式”地选中别的时间或者日期时,才会临时激活SeSystemTimePrivilege特权,如下图所示。同理,在对时区进行操作(普通用户即可操作,不需要提升权限),其宿主进程rundll32.exe的访问令牌里,SeTimeZonePrivilege特权也是默认保持禁用状态,只有“显式”地尝试修改时区,才会临时激活该特权。很容易理解,这样的修改可以提高安全性,以免被同一特权级别的进程利用攻击。进一步验证可以再进行以下的进一步验证:首先我们需要借助一款同样是来自于Sysinternals的GUI工具Token Monitor,顾名思义,该工具可以监控Windows系统中和访问令牌有关的安全事件,例如特权的改变、令牌的创建、令牌仿制(Impersonate)等。可以到以下网址下载该免费工具。http://www.sysinternals.com/Utilities/Tokenmon.html首先打开该工具,单击工具栏上的“Filter”按钮,设置一个过滤器,可以是“dllhost*”,然后依次进行以下操作:(1) 首先打开"Date and Time"组件,尝试修改系统时间或者日期,当弹出consent对话框要求确认提升权限时,请单击“Allow”按钮。这时候我们可以从Token Monitor的监控界面上看到新建了一个dllhost进程,并且其Parent进程是svchost(PID是800)。(2) 尝试在"Date and Time"组件对话框上选中某个日期、或者尝试指定一个新的时间。这时候我们可以从Token Monitor的监控界面上看到进程dllhost的访问令牌里启用(Enable)了一个特权STYSTEMTIME(内部名称是SeSystemTimePrivilege)。这说明,dllhost进程默认没有启用SeSystemTimePrivilege特权,只有当选中别的时间或者日期时,才会临时激活该特权。以上的过程,可以参考下图所示。提示 可以访问以下链接,以查阅《Windows Vista的UAC功能浅析(一)》:http://blogs.itecn.net/blogs/ahpeng/archive/2005/11/20/Uap_TimeDate.aspx
如果您想在帖子更新时接到邮件通知,请先登录。这里
订阅帖子评论使用 RSS