win7 UAC bypass(微软已经给予了三组组件绕过UAC启动的特权)
fireworm同学的翻译:
原文在http://www.pretentiousname.com/misc/win7_uac_whitelist2.html我只翻译了其中关于原理的一小部分,有兴趣的可以自己去看看。
Win7的UAC与Vista不同,鉴于前作糟糕的设计,为了减少UAC提示的次数,微软已经给予了三组组件绕过UAC启动的特权:
1、某些其他进程可以自动运行并获得高权限,UAC不会提示
这些进程的列表可以在这里找到,如果这些进程被运行,他会直接被赋予高权限而不会出现UAC提示。
Notable missing entries (good thing) are rundll32.exe and mmc.exe.
· 由于这一点,有人发明了rundll32注入提升权限从而绕过UAC的方法,你可以让rundll32通过加载dll来执行你的代码,这样做不会出现UAC提示,也正因为如此,微软把rundll32从进程列表中抹去了,不过,列表中还有大量的进程可以利用,如果你能向windows目录下复制文件,其中几个进程也可以利用。
2、可以创建特定COM对象的进程,运行时不会要求UAC确认。
这里列举的程序可以创建特定的COM对象,并不需要UAC确认,尽管他们自身没有提升特权。只要这些对象被创建了,进程就可以让他们去做某些需要admin权限的事情。比如向System32 或者 Program Files目录下面丢东西。
这些进程看起来是上面列表的一个超集,实际上它包括了windows7所有的可执行文件,并且有微软认证证书。
很让人无语的是,就build7000(甚至包括build7100,也就是RC1)来说,不仅仅是explorer.exe程序可以利用这一特性(愿意的话,你也可以称之为安全漏洞),连Calc.exe,notepad.exe这类程序都可以利用这个特性。微软似乎并没有做什么去最小化攻击,他只是武断地给予了这个特权,不管这个特权会不会被用到,举个例子,你可以打开一个画图软件,把他的“文件”-“打开”对话框当做一个微型的文件管理器来使用,你可以在Program Files里面胡闹(建立一个文件夹,或者重命名)通过这一招,本来会被提示的非微软官方的程序也会被放行,不会出现UAC提示。
3、一些需要权限才能创建的COM对象。
这部分列表的枚举还尚未完成,我们只知道其中包括IFileOperation接口,当然,也有可能所有微软官方的COM对象都难逃此劫。
不过,第三方的COM对象没有办法绕过UAC,就算他被微软的进程启动。
为此,可以利用这个程序来证明,这个程序运行后会以普通未提升权限的进程启动,他直接把自己的部分代码注入到其他程序的内存空间当中,并且让指定的程序去运行它,这个过程利用了普通的API,比如WriteProcessMemory和CreateRemoteThread。
如果目标进程在列表2上,我们的程序可以创建并且控制提升的列表3上的COM对象,没有UAC提示,并且不会让用户得知任何消息。
一般情况下,我们选择explorer作为目标,因为这个程序运行提供windows的任务栏和桌面,但是,其他无关的程序,比如画图和计算器也可以被利用,如果需要,先运行他们,就像这个示例程序一样,目标进程并未提升权限(必须通过代码注入来起作用)。
目标进程可以控制ASLR的关闭,可以是32位或者64位的(不过,ASLR意味着直接代码注入攻击很难,只能考虑远程代码执行漏洞,利用这个漏洞必须写出一个单独的EXE并执行)
现在的潜在问题是静默提升特性,在win7beta版本就默认启用的一个特性,这个特性并不检测需要提权的代码的出处他只检测这段代码运行在哪个进程内而不是特定代码的出处,就像这样,你可以把代码注入explorer或者让explorer去加载你的dll,之后你就可以创建提升后的COM对象并且不为用户所知。
在同一安全级别上,有很多办法让你的代码注入到其他正在运行的进程中,这通常情况下不是个问题,在其它进程中你几乎不能做什么事情,不过静默提升特性改变了这一切。
把你的代码注入到其他进程当中有很多方式,你可以用缓存区溢出漏洞(尽管ASLR做了很多去阻止这一切)或者你可以把自身安装成一个DLL插件,让其他程序加载,就像explorer外壳扩展,示例程序使用了一个众所周知的技术,那就是代码注入,代码注入有一个好处,你不用欺骗其他程序,让他加载你的代码,你只需要把代码压到其他进程当中,并告诉他执行这段代码就够了,这也不是hack行为,所有的一切都是利用文档化的,被支持的API完成的(合法的API包括调试和跨进程通信,这些API无需提权即可使用)
http://blog.csdn.net/jimoyangguang/article/details/7181769
win7 UAC bypass(微软已经给予了三组组件绕过UAC启动的特权)的更多相关文章
- vista下开机启动 简单绕过UAC的方法(自己使用runas参数重新启动自己,有点意思)
背景 vista下,如果不开启UAC,那就没有我下面要说的问题了,呵呵.下面说的都是在vista开启UAC的前提下说的,win7也适用. 在vista下,系统开启了UAC,如果你的 ...
- 微软BI SSIS 2012 ETL 控件与案例精讲面试 200 问(SSIS 面试题,ETL 面试题)
开篇介绍 本自测与面试题出自 微软BI SSIS 2012 ETL 控件与案例精讲 (http://www.hellobi.com/course/21) 课程,对于学完本课程的每一课时和阅读完相关辅助 ...
- 微软BI SSIS 2012 ETL 控件与案例精讲课程学习方式与面试准备详解
开篇介绍 微软BI SSIS 2012 ETL 控件与案例精讲 (http://www.hellobi.com/course/21) 课程从2014年9月开始准备,到2014年12月在 天善BI学院 ...
- 使用Metasploit绕过UAC的多种方法
一.用户帐户控制(UAC)简介 在本文中,我们将简要介绍一下用户帐户控制,即UAC.我们还将研究它如何潜在地保护免受恶意软件的攻击并忽略UAC提示可能给系统带来的一些问题. 1.什么是用户帐户控制 ...
- 绕过UAC以管理员身份启动程序
写这篇文章主要是看到了:http://www.7tutorials.com/use-task-scheduler-launch-programs-without-uac-prompts文章中所用到的方 ...
- 问题-[DelphiXE2]提示第三控件不存在
问题情况:在DelphiXE2启动时界面显示加载了控件,并且控件的路径也放在了环境变量中,但打开程序报第三控件不存在. 问题原因:是没有选择要加载的控件. 问题处理:点击Component->I ...
- 作业三:LINUX内核的启动过程
作业三:LINUX内核的启动过程 一.使用GDB跟踪内核从start_kernel到init进程启动(附实验截图) (一)使用自己的Linux系统环境搭建MenuOS的过程 下载内核源代码编译内核 c ...
- Win7下nginx默认80端口被System占用,造成nginx启动报错的解决方案
Win7下nginx默认80端口被System占用,造成nginx启动报错的解决方案 在win7 32位旗舰版下,启动1.0.8版本nginx,显示如下错误: [plain] 2012/04/0 ...
- Windows Azure 微软公有云体验(三) IIS中文编码解决方案
Windows Azure 微软公有云已经登陆中国有一段时间了,现在是处于试用阶段,Windows Azure的使用将会给管理信息系统的开发.运行.维护带来什么样的新体验呢? Windows Azur ...
随机推荐
- Android Studio设置图片背景及主题设置
因为Android Studio是基于IDEA的,所以IDEA里面能用的插件Android Studio也能用,这次图片背景是依赖IDEA下的一个插件,名为BackgroundImage的插件,用户可 ...
- stm32的ADC左右对齐
- c++读取lua配置基础类
一.内容介绍 把lua作为配置文件,里面的参数值的获取,在他人基础上做了修改,并且补充了一维数组的处理方式. 若有不足之处请多多指教. 对于二维数组,没有成功.希望大家继续补充和修改,非常感谢! 二. ...
- 【AtCoder ABC 075 D】Axis-Parallel Rectangle
[链接] 我是链接,点我呀:) [题意] 让你找到一个各边和坐标轴平行的矩形.使得这个矩形包含至少K个点. 且这个矩形的面积最小. [题解] 把所有的"关键点""都找出来 ...
- 【z02】选择客栈
(hotel.cpp/c/pas) [问题描述] 丽江河边有n 家很有特色的客栈,客栈按照其位置顺序从 1 到n 编号.每家客栈都按照 某一种色调进行装饰(总共 k 种,用整数 0 ~ k-1 表示) ...
- Html表单使用实例
原文 https://www.jianshu.com/p/b01f32844ac1 大纲 1.单选框多选框实现的商品选择 2.添加下拉框和删除下拉框 3.观察textarea中事件处理器的运行顺序 推 ...
- win-server下定时备份oracle数据库实现方法
1.在e盘建立一个“oracle_backup”的文件夹,文件夹下再建两个文件夹分别为:“new”,“old”,然后在oracle_backup文件夹中新建一个bat文件,取名“expdb.bat”, ...
- Perl自动释放Licence启动Verdi
Perl自动释放Licence启动Verdi 在工作中,遇到verdi的License不够的情况,某些人占用了多个License,为及时获得一个可用的License,写了一个perl来kill运行时间 ...
- Docker CE for Windows安装使用
原文:Docker CE for Windows安装使用 官网下载并安装Docker CE for Windows IDEA连接Docker Docker一些常用命令 Docker for windo ...
- 【死磕Java并发】—–J.U.C之AQS(一篇就够了)
[隐藏目录] 1 独占式 1.1 独占式同步状态获取 1.2 独占式获取响应中断 1.3 独占式超时获取 1.4 独占式同步状态释放 2 共享式 2.1 共享式同步状态获取 2.2 共享式同步状态释放 ...