Google
品牌Vista笔记本打折热卖 Vista系统下玩转赚钱软件 戴尔笔记本预装Vista 2999元 强势杀毒让Vista系统更安全 Win2008超越Vista之秘 360度保障你的Vista系统安全 Vista系统更快速的秘密 Vista下玩转远程教育系统 Vista下如何搞定网络安全 精美Vista壁纸一网全打尽 网络监控电脑的一举一动 上网防范各种恶意点击
当前位置:首页 >> Vista应用 >> Vista开发

Vista开发高手:绕过UAC把软件进程运行为管理员模式


2008年9月9日 编辑:Smallfrogs[张康宗] 人气: 评论:11
史上最便宜的Windows Vista电脑
惠普戴尔超多品牌2008大礼包放送
160G超大硬盘,2G内存免费升级……

Windows Vista下最强的杀毒软件
屡获多次世界第一大奖的杀毒工具
保护你的Windows Vista系统不受侵犯

Windows Vista 系统全方位防护
Norton 360,诺顿360度全面系统保卫
把您的Vista 系统安全武装到牙齿

Windows Vista 装机必备软件大全
Google  

Vista之家www.vista123.com):Vista开发高手:绕过UAC把软件进程运行为管理员模式

刚才Vista之家发了这篇文章:深入UAC:Vista运行程序跳出红黄绿灰四色提示框及破解,文章的最后提到了如何仿造安全程序进行欺骗UAC。下面我们具体的看看绕过UAC的机制。

Windows Vista里面,进程是分权限级别的。Windows会根据manifest内容、Windows Installer detection、兼容性数据库等方法判断一个进程是否需要一开始就运行在完整管理员模式(下面统称admin模式)下。

但是不是所有的程序一开始就需要运行在完整admin模式下的,例如任务管理器TaskMgr.EXE。

Windows Vista里面,启动任务管理器以后,默认只能显示当前账户相关的进程信息,只有当点击下面这个按钮并回应UAC提示以后才能显示所有用户的进程信息:



请注意上面这张图片,Show processes from all users 按钮前面有一个Windows 安全中心的图标。这个表示这个操作需要触发UAC。这个倒是没有什么特别的。问题的关键在于:TaskMgr是怎么触发UAC的?

我们知道,一个没有完全admin权限的进程是没法直接创建更高权限进程的,也就是说一般权限下的进程是没法直接创建完全Admin权限进程的。因此CreateProcess API函数肯定是不能使用的。如果使用CreateProcessAsUser函数,那么需要提供一个比较高的令牌才能完成,这个需要有额外的来源,而TaskMgr显然不具备这种能力。那TaskMgr是怎么完成这个神秘的动作呢?

上述问题让人思考了数个月,上网搜索也没有搜索到有价值的内容。直到昨天晚上才有空去调试一把,看看到底是怎么玩的。

首先用windbg attach到 taskmgr 进程上,然后把所有的进程创建相关函数全部设置了断点,然后点击Show processes from all users 按钮,结果ShellExecuteExW函数被断下了,难道ShellExecuteExW有什么特殊的地方吗?查阅最新的MSDN关于ShellExecuteExW的说明文档,什么介绍都没有。是断点有问题吗?

继续使用windbg单步调试,当程序执行到下图的时候,有一个看起来很关键的函数调用:



call SHELL32!ShellExecuteNormal (7656e6ce),看到这个名字我的第一个直觉是这个是真正的执行函数,前面还有很多操作仅仅是一些检查步骤。当执行完call SHELL32!ShellExecuteNormal (7656e6ce)指令以后,UAC框弹出了。看到UAC框的弹出,我已经可以确认任务管理器是使用ShellExecuteExW某个在MSDN上面没有公开的操作触发UAC的。根据前面的描述,call SHELL32!ShellExecuteNormal (7656e6ce)指令是一个关键指令,因此需要检查call SHELL32!ShellExecuteNormal (7656e6ce)指令之前的参数操作。

呵呵,这回我盯上了push esi指令了。



windbg里面查看esi对应的内存内容以后发现可能是一个结构体,由于是ShellExecuteExW函数里面执行的,因此我猜测这个结构体是 SHELLEXECUTEINFO,对照SHELLEXECUTEINFO结构体的定义,果然和esi内容相符。最后一步就是检查结构体里面各个参数的情况了。当我发现LPCTSTR lpVerb指向的参数内容(db 0xe5d93c命令)是“runas”这个字符串的时候,Taskmgr 将自身提示为完全admin权限的方法也就揭晓了:

在Windows Vista里面,ShellExecuteExW lpVerb的参数可以传入runas命令,使得系统调用 ShellExecuteExW 的时候,会强制将目标文件以完全admin模式启动,即使目标文件的manifest没有申明需要完全admin权限。

效果等同于在目标程序上右键点击,然后选择 run as administrator 菜单内容。

大家感兴趣,可以测试一下。

Vista之家www.vista123.com),爱上网,爱上Vista123.com

      
Vista之家网友 (207.46.92.*) 于 2008-9-25 15:04:03 发表下列评论:   [删除]
好文不顶还怀疑是抄来的,大家需要就学习,不需要就飘过,何必呢。顺便说很多外企都不用中文系统的
Vista之家网友 (122.138.186.*) 于 2008-9-18 8:16:16 发表下列评论:   [删除]
看了半天也没明白,好多都必须提示没用管理员登陆无权限.....郁闷!
Vista之家网友 (222.66.67.*) 于 2008-9-10 16:20:37 发表下列评论:   [删除]
我也有同样的问题。双网络。定义了批处理来修改route table。原来准备在windows的startup中来执行该批处理任务。但Vista的UAC拒绝了其中命令。
必须要用管理员账号来启动Dos命令行。其实我的当前登陆账号也是admin组的成员。但就是不行。流氓的vista。
Vista之家网友 (222.66.67.*) 于 2008-9-10 16:18:57 发表下列评论:   [删除]
我也有同样的问题。双网络。定义了批处理来修改route table。原来准备在windows的startup中来执行该批处理任务。但Vista的UAC拒绝了其中命令。
必须要用管理员账号来启动Dos命令行。其实我的当前登陆账号也是admin组的成员。但就是不行。流氓的vista。
Vista之家网友 (222.66.67.*) 于 2008-9-10 16:18:43 发表下列评论:   [删除]
我也有同样的问题。双网络。定义了批处理来修改route table。原来准备在windows的startup中来执行该批处理任务。但Vista的UAC拒绝了其中命令。
必须要用管理员账号来启动Dos命令行。其实我的当前登陆账号也是admin组的成员。但就是不行。流氓的vista。
Vista之家网友 (222.66.67.*) 于 2008-9-10 16:18:17 发表下列评论:   [删除]
我也有同样的问题。双网络。定义了批处理来修改route table。原来准备在windows的startup中来执行该批处理任务。但Vista的UAC拒绝了其中命令。
必须要用管理员账号来启动Dos命令行。其实我的当前登陆账号也是admin组的成员。但就是不行。流氓的vista。
Vista之家网友 (116.218.139.*) 于 2008-9-9 14:44:44 发表下列评论:   [删除]
Smallfrogs
在网上查一查你就知道他的来头了
Vista之家网友 (61.130.107.*) 于 2008-9-9 14:35:22 发表下列评论:   [删除]
......这文章太难了
Vista之家网友 (125.65.77.*) 于 2008-9-9 14:18:28 发表下列评论:   [删除]
明显是抄 袭国外的,证据:“Show processes from all users ”。

还有,你这叫“绕过”吗?
Vista之家网友 (202.70.163.*) 于 2008-9-9 13:47:39 发表下列评论:   [删除]
应该是抄的吧!
发表评论(最新评论将在5分钟内出现
昵称:
内容:
(按Control+Enter直接提交)   点击一下,Vista问题有问必答
Vista优化大师
闪游 - 最快最强最安全的网络浏览器
搜狗拼音输入法

Windows Vista 最好的木马间谍查杀软件
彻底保护你的电脑,防止Trojan(特洛伊木马)和病毒
防止黑客入侵您的Windows Vista系统

史上最便宜的Windows Vista笔记本大比拼
七天免费试用?免费升级内存硬盘?
更有超多礼物发送中,不抢白不抢

全方位、360度的保护你的 Windows Vista 系统
无忧上网,保护您的系统没有病毒
把您的 Windows Vista 系统安全武装到牙齿

戴尔(DELL)笔记本预装Windows Vista送现金200元
预装正版Windows Vista家庭高级版 享受玻璃特效
2008大礼包 硬盘内存显卡升级还折扣

Windows Vista 装机必备软件大全
压缩、备份、杀毒、优化、办公、美化、虚拟光驱等常用软件
Windows Vista操作系统软件安装一条龙

Google  

热门文章