记录黑客技术中优秀的内容, 传播黑客文化,分享黑客技术精华

MS12-042提权漏洞利用

2013-01-07 17:10

 Windows用户模式调度程序内存破坏漏洞-MS12042


   Intel CPU存在安全漏洞,代号为CVE-2012-0217,它由Intel X86 64位扩展中的SYSRET指令引起,也是说影响Intel所有64位处理器。


   黑客可以利用这个漏洞迫使处于特权模式(privileged mode)下的Intel CPU返回一个通用保护错误,因此即便是最低权限的帐户也能执行内核级的代码,或者从虚拟机中脱离出来而获得真正的主机控制权限。


   在x64系统上,最重要的48位虚拟地址将被用于地址转换,而此外48到63的任何虚拟地址必须是47位的副本。否则处理器会抛出异常:保护故障(GP)。

这会将虚拟地址分割位两个区块,如:



  • 规范的高阶半区: 0xFFFFFF`FFFFFFFF       0xFFFF8000`00000000

  • 规范的低阶半区: 0x00007FFF`FFFFFFFF   0×00000000`00000000


   而所有这之间的地址都会被认为是不规范的。

    SYSRET指令被用于传递返回到普通用户模式(user-mode)。它将RCX寄存器中的值复制到RIP寄存器中,并把Code Segment Selector位切换位普通用户模式(user-mode)。然而,RCX寄存器是一个通用寄存器,它可能包含的任何值,包括不规范的地址。并且SYSRET指令一旦抛出异常是不负责退栈切换回用户空间的,也不负责为GS寄存器做扫尾工作。这意味着,程序员在调用SYSRET指令前后都需要为GS,RSP,RBP做额外的处理。

    而我们恰好发现intel的SYSRET指令实现中存在一个缺陷: 如果一个不规范的地址从RCX寄存器传递而抛出GP, 那么在CG,RBP和RSP返回普通用户模式(user-mode)前, 其ring0的权限不会被取缔(因为没有任何扫尾工作)。


***************************************************************************************************************************


以下给出 Windows Server 2008 X64 以及 Windows 7 X64 系统的提权利用程序.


漏洞号: MS12-042 ,补丁号: KB2709715 .



  • C:\sysret> sysret

  •  Copyright : C.O.G (http://forum.chowngroup.com/)

  •  Progusage : sysret <Progoptns> <Progargs>

  •  Progoptns : -p  <pid>                       //  已运行程序的pid,将其提示至system权限运行

  •                        -e  <executable>           //  以system权限运行某个程序



  •  C:\sysret> sysret -e cmd.exe         //   将cmd.exe提升至system权限运行



百度网盘下载: http://pan.baidu.com/share/link?shareid=43466&uk=1813355261


博客本地下载: MS12-042


****************************************************************************************************


 不过执行命令的时候稍微认真一点,因为有可能会引起蓝屏


知识来源: secbeta.com/2012/ms12042-exp/

阅读:304860 | 评论:0 | 标签:安全工具

想收藏或者和大家分享这篇好文章→复制链接地址

“MS12-042提权漏洞利用”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

公告

关注公众号hackdig,学习最新黑客技术

推广

工具

标签云