这段脚本产生的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按钮看个究竟。
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)的类型有关。可以基本肯定的是,用户能够用普通令牌写入这个目录。
User Account Control是Vista为了促使“普通帐户”成为默认权限而作的努力,但是频繁的UAC授权窗口影响了用户体验。在组策略中可以设置无交互自动授权,相当于没有UAC,这种配置只适合于自动化测试环境。Norton User Account Control Tool在改善用户体验方面作了有益的尝试,它会自动学习用户的操作、逐步建立黑白名单,然后根据黑白名单自动应答一部分UAC授权窗口,减少了用户需要手动应答的UAC授权窗口数量。