»
游客:
注册
|
登录
|
帮助
微点交流论坛
»
主动防御
» 守株待兔过UAC 骗过微软却骗不过微点
11
1/2
1
2
>
作者:
标题: 守株待兔过UAC 骗过微软却骗不过微点
点饭的百度空间
银牌会员
积分 2315
发帖 2236
注册 2007-11-30
#1
守株待兔过UAC 骗过微软却骗不过微点
许多用户习惯于在管理员帐户下进行日常操作。这种不够安全的使用习惯,又助长了软件厂商基于“用户在管理员帐户下操作”的假定来开发和测试软件。如果在非管理员帐户下打开这些软件,软件就不能正常工作——这就是所谓的LUA bug。反过来,这些软件厂商的客服人员不断告诉用户“请使用Administrator”,也就使更多用户养成了在管理员帐户下进行日常操作的“不良”习惯。天天使用Administrator的用户,更容易遭到恶意软件的攻击;受到影响的用户只会认为“Windows不安全”,而不会想到软件厂商的那种不正确的假定造成了什么。
Microsoft决定采取一些措施,推动软件厂商开发能在Non-Admin下运行的软件,而使得用户不再依赖于Administrator。于是,UAC诞生了!
User Account Control (UAC)是Windows Vista
操作系统引入的一项安全基础架构技术。应用程序只拥有标准帐户权限,除非管理员明确授予其更高的权限。这样,只有用户信任的程序才能获得高权限,而恶意软件则没有对系统造成破坏所需的权限。
UAC的工作方式
当用户登录Windows Vista时,操作系统会为用户创建一个会话,同时为用户创建令牌。如果是普通用户帐户,只有一个“普通令牌”;如果是管理员用户(属于Administrators组的用户),内核就将“买一送一”创建两个令牌——一个拥有完整权限的“特权令牌”,另一个“普通令牌”只有相当于普通用户的权限。然后,系统使用普通令牌创建桌面进程(explorer.exe)。用户总是在桌面进程中启动程序(包括桌面、开始菜单、资源管理器等都属于桌面进程),因此用户启动的程序也就只拥有普通用户的权限。
当用户需要执行系统管理任务的时候,例如安装一个新的软件、调整Windows防火墙配置,普通令牌的权限就不够用了,怎么办呢?默认情况下,管理员用户会看到一个变暗的桌面、只有一个对话框询问是否允许该程序用另一个特权令牌来启动,而普通用户则需要输入管理员的用户名、密码才能继续。
假设,某人发给你一封邮件“我的照片”,附件是photo.jpg;于是你下载了这个附件,然后双击……而你并没有看到photo.jpg.exe后面的可执行扩展名。这是一个恶意软件,它试图创建一个系统服务木马。在Windows XP中,你的机器瞬间就沦为肉鸡——黑市价0.5元,而你的损失则远远不止这个数了。在Windows Vista中,photo.jpg.exe获得的普通令牌并没有创建系统服务的权限,于是你就看到了那个变暗的桌面和询问窗口,你应当知道图片浏览不应该有这样的现象,因此也就不会为它授予特权令牌。
UAC的目标,就是
让普通用户、普通令牌成为Windows软件的标准,而特权令牌则只用于管理操作、决不是家常便饭。
脚本与UAC
几天前,我在写一个通过修改C:\windows\system32\drivers\etc\hosts文件来自定义域名解析的VBScript脚本。hosts文件位于C:\windows目录以内,因此必然需要经过UAC提升权限后使用特权令牌来执行这个操作。exe程序可以通过manifest要求使用特权令牌,而文本格式的VBScript脚本是无法嵌入manifest的。Ramesh Srinivasan给出了一段脚本:
通过带有
runas
的ShellExecute函数,显式要求特权令牌。
这段脚本产生的UAC授权窗口如下:
UAC授权窗口有四种不同的颜色,蓝、灰、黄、红分别表示不同的信任级别;这个授权窗口的标题栏颜色是蓝色,这表示该进程(wscript.exe)是Windows Vista的一个组件。请注意,窗口上仅仅给出了wscript.exe的程序描述Microsoft® Windows Based Script Host,而没有显示将要执行vbs脚本文件名。
守株待兔骗过UAC
User Account Control是Windows Vista最重要的安全特性之一,而
人
就是信息系统中最脆弱的环节。社会工程学是很有用的攻击手段:photo.jpg.exe、电影Firewall讲述的故事……都是
社会工程学
的攻击实例。现在,我们就用
社会工程学突破UAC
。
UAC的骗术
从上面的UAC授权窗口可以看出,授权窗口的颜色和文字提示是根据进程的可执行文件确定的,而与调用可执行文件的参数无关。虽然点击Details按钮可以看到可执行文件的完整路径及全部参数,但是大部分用户看到蓝色的“Windows Vista组件”要求授权时,只是简单的点击确定了事;尤其是用户在开始菜单中右击某个快捷方式然后选择“Run as Administrator”时,更不会去点击Details按钮看个究竟。
iPhone不允许软件未经许可执行第三方代码,而Windows作为一个开放平台显然不会这么做。Windows Vista有许多内置组件可以通过命令行参数执行其他代码,例如:
wscript.exe
cscript.exe
cmd.exe
rundll32.exe
powershell.exe
iexplore.exe
mmc.exe
试想:替换掉一个快捷方式,当用户选择Run as Administrator并通过了UAC授权后……你就获得了最高权限!
UAC的设计目的是让UAC授权窗口不要天天出现、而只用于管理任务。大部分管理任务是在控制面板中完成的,而另一些管理任务则必须通过命令提示符完成。命令提示符(cmd.exe)可以直接点击快捷方式在普通令牌下打开,也可以用Run as Administrator命令在特权令牌下打开。cmd.exe可能是最常获得特权令牌的Windows Vista组件。
下面,我将使用Windows PowerShell语言对上述方法进行演示。
偷梁换柱
Windows Vista开始菜单中的命令提示符Command Prompt快捷方式,就是当前帐户的开始菜单目录内Programs\Accessories\Command Prompt.lnk文件。Programs目录究竟在磁盘上的哪个位置,不但与用户名有关、而且与用户配置文件(profile)的类型有关。可以基本肯定的是,用户能够用普通令牌写入这个目录。
借助.Net的强大威力,用$accessories=Join-Path ([System.Environment]::GetFolderPath("Programs")) "Accessories"就可以取得Accessories目录的路径。注意:在Windows Vista的本地化版本中,“Accessories”这个名称可能会有变化;因此目前这个演示脚本只能适用于英文版本的Windows Vista。
找到Accessories目录后,只要其中存在Command Prompt.lnk文件,就重新建立一个含有特殊参数的新快捷方式。
cmd.exe后面加上了参数/k powershell path\to\cmd.ps1,而cmd.ps1已经被复制到当前用户profile的AppData目录。这样,每次用这个快捷方式打开命令提示符,都会先调用powershell执行cmd.ps1脚本(此脚本内容后面介绍),执行完毕后保留命令提示符窗口、而不退出。
install.ps1的完整代码如下:
为了更方便执行install.ps1,再写一个install.cmd调用它,一双击就能运行:
@ECHO OFF
powershell .\install.ps1
接下来还可以进一步发挥,比如:与游戏一起打包成WinRAR自解压档案、然后换成Flash图标……总之是
让受害者运行install.ps1,完成对Command Prompt快捷方式的“偷梁换柱”
。受害者需要安装有Windows PowerShell 1.0;聪明的你当然也可以用VBScript写出相同功能的代码。
守株待兔
经过“偷梁换柱”,打开命令提示符时可以运行一个自定义的PowerShell脚本,也就是cmd.ps1。不过,这时候还没有获得特权令牌,只能等待用户在一次次运行命令提示符中,“发发善心”点击Run as Administrator——这就是“守株待兔”的含义。
几天以来,可怜的受害者都是以普通令牌打开命令提示符。什么也没有发生,不过我要严肃的指出四点:
1. 启动PowerShell,在1.8GHz CPU的计算机上有0.3秒的时延,并不明显。用VBScript写,可能会快一点儿。
2. 在那0.3秒载入PowerShell的时间内,窗口的标题栏不正常:
很容易打草惊蛇啊,没有办法解决(即使换成VBScript也不能解决),祈祷吧。
3. 如果过于聪明的受害者对原来的Command Prompt.lnk定义了键盘快捷键(我就习惯于按下CTRL+ALT+SHIFT+C打开命令提示符),快捷键将会失效(不过在成功获得特权令牌后能恢复)。聪明人不上当~
4. install.ps1脚本会在AppData目录写入cmd.ps1文件、及备份Command Prompt.lnk,容易被有心的用户发现、然后随手删除(即使他不知道这些文件有什么用处),此时将导致今后打开命令提示符时出现错误信息。
聪明的你,可以把这些文件藏在深深的目录里,只要是普通令牌有写入权限的地方都可以。
然后,命令提示符正常打开,就像什么也没有发生过似的:
cmd.exe的/k参数会造成Microsoft Windows……那两行字不显示,这两行字实际上是PowerShell输出的;Windows Vista的每个Service Pack都会改变版本号,而这里不会改变,但是没人会注意到的。
终于有一天——
受害者仍然毫无感觉:
而且,cmd.ps1文件被删除,原来的Command Prompt.lnk被恢复。
而攻击已经成功了:
cmd.ps1的完整代码如下,其中的Get-AdminStatus函数来自Aaron Margosis' "Non-Admin" WebLog:
原形毕露
如果不是天天检查快捷方式指向的目标,受害者只有唯一的机会让这种攻击原形毕露——
在每一个UAC授权窗口中点击Details并检查命令行参数
:
很容易发现,要运行的程序,后面跟着一大串参数,显然有问题!马上点击Cancel,然后顺藤摸瓜/清理痕迹/全盘杀毒/求助高手……
顺便提一句,两张UAC授权窗口的图片特别模糊,是因为显示授权窗口的时候根本无法截图!我是用照相机对着屏幕拍摄的。默认情况下,UAC授权窗口将显示在
安全桌面上
,应用程序无法访问它,PrintScreen键也不起作用;此时,应用程序无法通过控制鼠标或者发送键盘/鼠标消息来点击Continue按钮。不过,这个安全桌面的选项可以在组策略中关闭,但是那样很不安全。
UAC的下一代
User Account Control是Vista为了促使“普通帐户”成为默认权限而作的努力,但是频繁的UAC授权窗口影响了用户体验。在组策略中可以设置无交互自动授权,相当于没有UAC,这种配置只适合于自动化测试环境。Norton User Account Control Tool在改善用户体验方面作了有益的尝试,它会自动学习用户的操作、逐步建立黑白名单,然后根据黑白名单自动应答一部分UAC授权窗口,减少了用户需要手动应答的UAC授权窗口数量。
UAC是桌面计算机安全性提升的一种解决方案,然而信息系统正逐步走向B/S、云计算。B/S、云计算应用是运行在浏览器中、存储于服务器上的,无法直接应用现有的UAC技术。同时,它们却又变得越来越重要,以至于攻击者对它们的兴趣与日俱增。UAC需要改进,以便用于B/S、云计算应用:例如,结合RSA SecureID完成授权。
桌面安全、信息系统安全还有很长的路要走,UAC只是其中的一小步,仅此而已。
※ ※ ※ 本文纯属【点饭的百度空间】个人意见,与【 微点交流论坛 】立场无关※ ※ ※
你的微笑 is 微点的骄傲!
http://hi.baidu.com/new/micropoint
2009-3-25 21:43
zhuqilh
注册用户
积分 185
发帖 219
注册 2009-3-3
#2
也许是太专业了 有点迷糊
※ ※ ※ 本文纯属【zhuqilh】个人意见,与【 微点交流论坛 】立场无关※ ※ ※
2009-3-26 08:55
mamsds
银牌会员
积分 1373
发帖 1360
注册 2008-3-15
来自 乌克兰
#3
貌似很复杂...........
※ ※ ※ 本文纯属【mamsds】个人意见,与【 微点交流论坛 】立场无关※ ※ ※
Vi Veri Veniversum Vivus Vici.
2009-3-26 16:56
HomeSGerMine
银牌会员
■■微点护卫队队长■■
积分 4888
发帖 4785
注册 2009-3-8
来自 哪里有微点,哪里就有我
#4
以前用过一下vista,感觉不怎么样,UAC的窗口太多了,在前些时候就听说用迅雷来过UAC验证的,用迅雷下的东西直接在迅雷里面运行就可以过UAC验证了。貌似现在还没解决呢!
※ ※ ※ 本文纯属【HomeSGerMine】个人意见,与【 微点交流论坛 】立场无关※ ※ ※
东方之荣耀,
中华之微点!---Microp
●
int
2009-3-26 21:34
sgsrun
注册用户
积分 82
发帖 84
注册 2008-4-25
#5
坚持学习中
※ ※ ※ 本文纯属【sgsrun】个人意见,与【 微点交流论坛 】立场无关※ ※ ※
2009-3-26 21:57
lixuelin1015
注册用户
积分 117
发帖 119
注册 2009-3-12
#6
英文的 晕
※ ※ ※ 本文纯属【lixuelin1015】个人意见,与【 微点交流论坛 】立场无关※ ※ ※
2009-3-27 07:48
坐照
银牌会员
正式版用户
积分 1426
发帖 1422
注册 2009-3-24
来自 湖北宜都
#7
不太懂。
※ ※ ※ 本文纯属【坐照】个人意见,与【 微点交流论坛 】立场无关※ ※ ※
2009-3-27 08:29
lsj301
银牌会员
积分 1388
发帖 1382
注册 2009-3-16
来自 甘肃兰州
#8
不懂
※ ※ ※ 本文纯属【lsj301】个人意见,与【 微点交流论坛 】立场无关※ ※ ※
我们一直在默默支持微点!
2009-3-27 17:50
神盾2009
新手上路
积分 28
发帖 28
注册 2009-3-14
#9
有点复杂。
※ ※ ※ 本文纯属【神盾2009】个人意见,与【 微点交流论坛 】立场无关※ ※ ※
2009-3-27 18:33
786314476
注册用户
积分 61
发帖 61
注册 2009-3-16
#10
啥东西啊?!
※ ※ ※ 本文纯属【786314476】个人意见,与【 微点交流论坛 】立场无关※ ※ ※
2009-3-27 19:47
11
1/2
1
2
>
论坛跳转:
微点软件公测区
安全快报
> 病毒快报
> 漏洞快报
微点产品在线技术支持
> 微点主动防御软件
> 预升级反馈专区
> 微点杀毒软件
微点用户交流区
> 微点新闻
> 微点软件使用交流
> 微点茶室
安全技术交流区
> 主动防御
> 反病毒
> 防火墙
综合区
> 电脑&数码
> 体育&娱乐&休闲
> 灌水区
版务管理
内部使用专区
可打印版本
|
推荐
|
订阅
|
收藏
[
联系我们
-
东方微点
]
北京东方微点信息技术有限责任公司 福建东方微点信息安全有限责任公司
闽ICP备05030815号