Windows 8.1 内核利用
- 格式:doc
- 大小:1.03 MB
- 文档页数:9
与计算机制造商、软件安装商或 Microsoft 达成的 Microsoft 软件许可协议WINDOWS 8.1 专业版 N感谢您选择预安装有 Microsoft Windows 8.1 专业版 N 的计算机或更新到 Microsoft Windows 8.1 专业版 N。
此为您与随您的计算机分发 Windows 8.1 专业版 N 的计算机制造商或软件安装商之间达成的许可协议;如果您是首次通过Windows 应用商店获得该软件(作为Windows 8 的更新),则此为您与 Microsoft(或您所在地的 Microsoft 关联公司)之间达成的协议。
本协议介绍您使用 Windows 8.1 专业版 N 软件的权利。
为方便起见,我们将本协议分为两部分。
第一部分包括以问答形式表述的介绍性术语;随后是“附加条款”和“有限保证”,其中包含更加详细的信息。
您应查看完整协议,包括任何链接的条款,因为所有条款都很重要且一起构成适用于您的本合同。
您可通过在软件运行后将正向链接粘贴到您的浏览器窗口中来查看链接的条款。
附加条款包含有约束力的仲裁条款和共同起诉弃权。
如果您居住在美国,这些条款会影响您解决与计算机制造商或软件安装商之间,或者与Microsoft 之间的争议的权利,因此您应仔细阅读这些条款。
接受本协议或使用该软件即表示您同意所有这些条款,并同意在激活期间以及对于软件的基于Internet 的功能传输某些信息。
如果您不接受和遵守这些条款,请不要使用该软件或其功能。
您可以与制造商或安装商联系,了解相关退货规定并退还软件或计算机以依据该规定获得退款。
请务必遵守退货规定,其中的条款可能会要求您退还该软件以及安装有该软件的整个计算机,以便获得退款或抵扣款(如有)。
我怎样才能使用该软件?该软件只授予使用许可,而非出售。
根据本协议,我们授予您在其上购买了该软件的计算机(以下简称“许可计算机”)上安装并运行一个副本的权利,一次供一人使用,但前提是您遵守本协议的所有条款。
Win8.1版本到底有哪些?Win8.1版本到底有哪些?Windows 8.1的各版本有什么不同、差别和区别?Win8.1旗舰版有木有?Win8.1最好的版本是哪个?我应该用哪个版本的Windows 8.1?Windows 8.1 核心版(一般就称之为Windows 8.1)+ Windows 8.1 专业版(称之为Windows 8.1 Pro),根据用户输入的序列号(就是Win8密钥)来区分安装。
Windows 8.1 企业版(称之为Windows 8.1 Enterprise)则是单独的光盘镜像。
当然,还有一个特殊的版本,就是Windows RT 8.1版本,这个是针对ARM处理器架构的。
对于传统的台式机和笔记本电脑,基本上就涉及Win8企业版、Win8专业版和Win8标准版。
Windows 8.1 核心版(一般就称之为Windows 8.1):对普通用户来讲,Windows 8.1核心版就是最佳选择。
包括全新的Windows商店、Windows资源管理器、任务管理器等等,还将包含以前仅在企业版/旗舰版中才提供的功能服务。
针对中国等新型市场,微软将提供本地语言版Win8,即Win8中文版。
Windows 8.1 专业版(称之为Windows 8.1 Professional):面向技术爱好者和企业/技术人员,内置一系列Win8增强的技术,包括加密、虚拟化、PC管理和域名连接等。
Windows 8.1 企业版(称之为Windows 8.1 Enterprise):将包括Win8专业版的所有功能,另外为了满足企业的需求,企业版还将增加PC管理和部署,先进的安全性,虚拟化等功能。
Win8.1企业版的特别功能介绍如下:Windows To Go :让企业用户获得“Bring Your Own PC”的体验,用户通过USB存储设备中实现携带/运行Win8,让系统、应用、数据等随身而动。
DirectAccess :让企业用户可远程登录企业内网而无需VPN,并帮助管理员维护计算机,实现软件更新等操作。
Win8.1怎么优化设置win8.1系统使用的时间长了,会明显感觉要卡很多,运行起来并不流畅,那么Win8.1怎么优化设置呢? 小编分享了Win8.1优化设置的方法,希望对大家有所帮助。
Win8.1优化设置方法1.修复SkyDrive虽然支持SkyDrive文件的自动云同步,但是在Win8.1下并不是十分稳定,基本上是由于同步文件兼容性造成的。
要想修复这种问题,首先需要创建一个配置文件,防止电脑自动关机,然后选择全部同步文件,等待同步完成时,从同步列表中查看相应的文件问题。
2.改变IE浏览器的兼容性Win8.1内置了最新的IE 11浏览器,对老版本网站的兼容性不是很好。
如果一个页面显示不正常,你可以使用兼容性模式来运行,点击设置选项卡并选择兼容性视图即可。
另外,还可以创建配置文件,这样下次就能够自动以兼容性模式运行。
3.信任此台电脑如果你使用微软账户登录Win8.1电脑,首先需要将这台电脑添加在“信任”的列表中,否则不仅电脑设置项目不会被同步到云端,这台设备还将被微软锁定。
通常,在激活新电脑时微软会要求你信任这台设备,将通过电子邮件发送一个代码让你确认;如果你错过了这个步骤,在电脑设置的账户栏目中,你可以选择“更多的网上账户设置”来进行验证。
4.自定义一键安装App如果你要在一台新电脑上安装之前的所有App,可以通过一键全部安装来实现。
不过,你可能并不需要所有的应用,我们可以通过删除users/user/appdata/local/microsoft/windows/applicationshortcuts目录下的快捷方式,来实现自主定制的一键安装功能。
5.摆脱弹出提示如果你第一次开始使用Windows商店的应用程序,会看到恼人的提示内容,此时不要关闭它们,只要根据步骤完成一次,就不会再看到了。
6.在资源管理器中显示“库”Win8.1默认隐藏了资源管理器中的“库”分类,这可能会影响使用体验。
此时你只需要打开“视图”选项,选择“文件夹和搜索”选项,选择显示“库”项目即可。
win8操作系统的使用技巧(2)21、SmartScreenWindows 8全系统都使用IE的SmartScreen安全功能,检查下载文件去确保它们的安全。
但是,如果用户不想要SmartScreen功能的话,那么也可以对其进行调整,按住Windows+R键,键入control.exe,回车启动旧式控制面板。
打开行动中心面板,点击更改SmartScreen设置,这样一来,用户就可以开启警告,但是避免打扰到自己,或者是直接关闭SmartScreen功能。
22、64位IE如果您使用的是64位Windows 8,那么它的IE副本运行的也是64位模式,不过需要用户手动开启。
点击工具——互联网选项——安全,选择您想要调整的安全区域,选中启动64位模式,点击确定,重启即可。
23、早期推出反恶意软件功能当Windows 8系统启动之后,它能够选择性地决定初始化哪个驱动程序、拒绝加载可疑或未知的驱动程序去保证您的计算机免受感染。
不过,用户需要手动去启动这个反恶意软件功能,启动GPEDIT.MSC,浏览至计算机配置——管理模板——系统——早期启动恶意软件,双击右侧启动初始化驱动程序安装策略,选择您想要的选项即可。
当然了,笔者需要提醒大家的是,如果这个反恶意软件不小心阻止了一个合法驱动程序的话,那么您的系统可能会崩溃。
24、Windows 8文件历史记录Windows 8包含一个很好的文件历史功能,它能够备份任何用户选定的文件。
25、USB驱动器将USB驱动器连接到Windows 8系统中,自菜单中选择“配置这个驱动器去备份使用的文件历史”,默认情况下,用户的库、联系人、收藏夹和桌面内容将会被立即备份。
26、控制面板当点击新的Metro控制面板瓦片的时候,Windows 8自定义的过程就开始了。
例如,点击个性化,您就可以更改您的锁屏图片;点击屏幕顶部的“用户”瓦片,您就可以更改代表您账户的图片。
27、简化搜索在默认情况下,Windows 8在其搜索结果中包含每一个绑定的应用程序,如果您不想看到某些应用程序,那么点击Metro屏幕上的控制面板,选择搜索,选择不想看到的应用程序。
Win8.1专业版、核心板和企业版之间有什么区别Win8已经推出那么久了,大家搞懂Win8.1专业版、核心板和企业版之间到底有哪些区别了吗?下面跟随店铺一起来看看吧。
Win8.1专业版、核心板和企业版区别Win8.1核心版(一般就称之为Windows 8.1) + Win8.1 专业版(称之为Windows 8.1 Pro),根据用户输入的序列号(就是Win8密钥)来区分安装。
Win8.1企业版(称之为Windows 8.1 Enterprise)则是单独的光盘镜像。
当然,还有一个特殊的版本,就是Windows RT 8.1版本,这个是针对ARM处理器架构的。
对于传统的台式机和笔记本电脑,基本上就涉及Win8企业版、Win8专业版和Win8标准版。
Win8.1核心版(一般就称之为Windows 8.1):对普通用户来讲,Windows 8就是最佳选择。
包括全新的Windows商店、Windows资源管理器、任务管理器等等,还将包含以前仅在企业版/旗舰版中才提供的功能服务。
针对中国等新型市场,微软将提供本地语言版Win8,即Win8中文版。
Win8.1专业版(称之为Windows 8.1 Professional):面向技术爱好者和企业/技术人员,内置一系列Win8增强的技术,包括加密、虚拟化、PC管理和域名连接等。
Win8.1企业版(称之为Windows 8.1 Enterprise):将包括Win8专业版的所有功能,另外为了满足企业的需求,企业版还将增加PC管理和部署,先进的安全性,虚拟化等功能。
Win8.1企业版的特别功能介绍如下:Windows To Go :让企业用户获得“Bring Your Own PC”的体验,用户通过USB存储设备中实现携带/运行Win8,让系统、应用、数据等随身而动。
DirectAccess :让企业用户可远程登录企业内网而无需,并帮助管理员维护计算机,实现软件更新等操作。
Windows 8.1升级方法及系统需求一、Win8用户通过Windows Store更新至Win8.1预览版:1、当微软发布Windows 8.1预览版之时,Win8用户会先收到Windows Update的更新通知,点击通知后再转到Windows Store中关于Win8.1的描述、下载页面,用户此时可决定是否升级。
提醒:如果你通过 Windows 应用商店安装 Windows 8.1 Preview,则不需要产品密钥。
如果你下载 ISO,则需要输入此产品密钥:NTTX3-RV7VB-T7X7F-WQYYY-9Y92F。
2、在Windows Store中启动Windows 8.1 Preview的下载来获取更新。
该过程和Windows Store应用更新相似,安装过程中会有“取消”的选项。
3、升级的第一部分完成时,用户将会看到要求重启电脑的系统通知。
自然也会有重启倒计时的提醒。
4、重启之后,迎来的便是Windows安装界面。
5、下一步是用户许可条款,“接受”吧。
6、下一步是OOBE(Out of Box Experience)系统初始设置流程,和Win8安装过程中的个性化/设置流程一样。
7、最后一步,登陆Windows。
二、通过Windows 8.1 Preview ISO镜像安装1、当前Win8系统语言不在Windows 8.1 Preview 所支持的13种语言之内的用户,需通过ISO镜像安装。
2、如果你是Win8企业版用户,也需要通过Windows 8.1 Preview ISO镜像来安装。
Windows 8.1 Preview 系统需求:•处理器:1 GHz 或更快•RAM:1 GB RAM(32 位)或 2 GB RAM(64 位)•硬盘空间:16 GB(32 位)或 20 GB(64 位)•图形卡/显卡:带有 WDDM 驱动程序的 Microsoft DirectX 9 图形设备注意:Windows RT 8.1预览版需要一台Windows RT设备,同时需要10GB可用存储空间。
Windows RT 8.1和Win8.1核心版/专业版/企业版区别Win8.1版本到底有哪些?Windows 8.1的各版本有什么不同、差别和区别?Win8.1旗舰版有木有?Win8.1最好的版本是哪个?我应该用哪个版本的Windows 8.1?Windows 8.1 核心版(一般就称之为Windows 8.1) + Windows 8.1 专业版(称之为Windows 8.1 Pro),根据用户输入的序列号(就是Win8密钥)来区分安装。
Windows 8.1 企业版(称之为Windows 8.1 Enterprise)则是单独的光盘镜像。
当然,还有一个特殊的版本,就是Windows RT 8.1版本,这个是针对ARM处理器架构的。
对于传统的台式机和笔记本电脑,基本上就涉及Win8企业版、Win8专业版和Win8标准版。
Windows 8.1 核心版(一般就称之为Windows 8.1):对普通用户来讲,Windows 8就是最佳选择。
包括全新的Windows商店、Windows资源管理器、任务管理器等等,还将包含以前仅在企业版/旗舰版中才提供的功能服务。
针对中国等新型市场,微软将提供本地语言版Win8,即Win8中文版。
Windows 8.1 专业版(称之为Windows 8.1 Professional):面向技术爱好者和企业/技术人员,内置一系列Win8增强的技术,包括加密、虚拟化、PC管理和域名连接等。
Windows 8.1 企业版(称之为Windows 8.1 Enterprise):将包括Win8专业版的所有功能,另外为了满足企业的需求,企业版还将增加PC 管理和部署,先进的安全性,虚拟化等功能。
Win.18企业版的特别功能介绍如下:• Windows To Go :让企业用户获得“Bring Your Own PC”的体验,用户通过USB存储设备中实现携带/运行Win8,让系统、应用、数据等随身而动。
Windows 8.1 系统全面优化(大网猫专用版)一、系统启动加速[WIN]+[R]启动“运行”功能;输入“msconfig”后按“确定“按钮进入”系统设置”窗口;引导选项卡中点“高级选项”,勾选处理器个数,选择最大;勾选最大内存,选择最大。
确定后重启。
PS:CPU有多少个,内存有多大,我们启动都可以利用起来,我i7CPU、8G内存改过此项后开局没感觉。
二、1秒关机[WIN]+[R]启动“运行”功能;输入“regedit”后按“确定”按钮进入“注册表编辑器”窗口;进入:HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control修改:WaitToKillServiceTimeOut键值为1000。
PS:如果平时打开程序非常多的情况下,建议改为3000或5000;配置不高的机器还是时间设长一点为好。
1000=1秒。
三、关闭不必要的启动项和服务1、看到就删的服务项目:(1)Diagnostic Policy Service;(2)Diagnostic Service Host;(3)Diagnostic System Host;(4)Distributed Link Tracking Client;(5)Microsoft Software Shadow Copy Provider;(6)PnP-X IP Bus Enumerator;(7)Problem Reports and Solutions Control Panel Support;(8)Quality Windows Audio Video Experience;(9)Windows CardSpace。
2、看情况禁用的服务项目:Adaptive Brightness(没有智能调节屏幕亮度设备的用户禁用);Application Management(一般家庭用户关闭);Bluetooth Support Service(不使用蓝牙设备的用户关闭);Certificate Propagation(不使用智能卡的用户关闭);Computer Browser(不使用局域网的家庭用户关闭);IKE and AuthIP IPsec Keying Modules(不使用VPN的用户关闭);IPsec Policy Agent(家庭用户关闭);Offline Files(不使用脱机文件的用户关闭);Microsoft iSCSI Initiator Service(不使用iSCSI设备的用户关闭);Smart Card(不使用VPN,智能卡的家庭用户关闭);Superfetch(内存小的用户关闭);Tablet PC Input Service(不使用手写输入设备的用户关闭);Windows Biometric Service(不使用指纹识别的用户关闭);Windows Image Acquisition(不使用数码相机,扫描仪的用户关闭);传真(不使用传真的用户关闭)。
Win8.1也能随身带,如何打造Windows To Go版Win8.1个性U盘系统从Windows XP一直到Win7,我们常常认为Windows系统只能安装在本地硬盘,无法打造一个U盘系统。
当然,民间爱好者也为大家贡献了各种Win2003、Win7内核的PE系统,实现U盘系统概念。
但是这些PE系统只能充当一个临时系统环境,不具有Windows所有正常功能。
好在微软在Win8、Win8.1中带来一项全新的Windows To Go功能,原生支持将Win8.1专业版、企业版系统安装至可移动U盘、移动硬盘等移动设备,真正打造一款移动版Win8.1系统。
这也意味着用户可以在任何一台支持USB接口的公共电脑、平板电脑设备上直接启动运行U 盘版Win8.1系统,单独享用个人专属系统,包括桌面、收藏夹、个人数据等资料。
当然,Windows To Go功能不仅可以打造移动U盘系统,同时也可以取代传统PE系统工具,直接参与到系统维护、修复计算机、数据备份还原等领域。
长话也不多说,下面阿象也整理了如何打造Windows To Go版Win8.1个性U盘系统完整图文教程,欢迎Win8.1新老用户体验。
准备工具:Win8.1 with Update MSDN ISO系统镜像(点击这里下载),不限企业版、专业版;imagex 6.3.9600映像管理工具(点击下载);大容量U盘,至少16G及以上,推荐32G U盘。
测试平台:Win8.1 Update环境操作步骤:注:其中Win8.1企业版自带了Windows To Go组件,但存在不少U盘容量、Win8.1映像版本等限制,因此我们可以使用命令提示符,手动创建一个Windows To Go版Win8.1个性U 盘。
1、使用虚拟光驱(Win8.1自带)加载Win8.1 ISO镜像,复制X:\sources\install.wim至本地磁盘,例如E:\Win8(其中X:代表虚拟光驱盘符);2、解压Imagex 6.3.9600中的x86版本的imagex.exe(如下图所示)至本地硬盘,例如E:\Win8;3、然后访问本地系统盘C:\Windows\System32目录,复制bcdboot.exe(如下图所示)至本地硬盘,例如E:\Win8;4、随后右击Win8.1传统桌面的开始按钮(或组合键Win+X),打开“命令提示符(管理员)”,打开命令运行框;5、依次输入如下命令:Diskpart // 计算机磁盘管理List disk // 显示当前所有本地硬盘、可移动硬盘例如阿象电脑是SSD+HDD双硬盘,外接一个U盘,其中U盘标记为磁盘2,具体以实际情况为例。
win8.1rtm是什么意思都说微软更新换代很快,继win8推出win8.1升级版之后,,微软又推出了新的升级方案,那就是win8.1升级Win8.1 Update RTM,那么win8.1 rtm是什么意思呢?下面跟着店铺来一起了解下吧。
win8.1 rtm详解RTM版的英文全称为:Release T o Manufacturing(发布到制造),windows操作系统在零售商店正式上架前,需要一段时间来压片,包装和配销。
所以程序代码必须在正式发行前一段时间就要完成,这个完成的程序代码叫做Final.Code.程序代码开发完成之后,要将母片送到工厂大量压片,这个版本就叫做RTM版。
所以说,RTM版的程序和正式版一样.Windows 8.1 RTM比Win8增加了哪些功能安装Win 8.1 的安装和之前 Win 8 的安装无论是方法还是过程都是一样的,不同的地方仅仅在于安装过程如果选择自定义设置可以提前看到一些 Win 8 所没有的功能。
锁屏Win8.1 新增了在锁屏界面上播放幻灯片功能,并且默认为开启。
经常在自己电脑里存有 18+only 图片的童鞋注意了,下图为一个使用Win8.1 Preview 版的童鞋离开座位时的锁屏界面(处理后照片),那天路过该电脑前的我和我的小伙伴们都惊呆了。
另外 Win8.1 还是支持将桌面壁纸同时设为锁屏壁纸,并在个性化设置中增加了更多的颜色和背景图。
开始按钮被无数人吐槽后在 Windows 8.1 中微软终于又将“开始按钮”加了回来,然后又引起了无数人吐槽。
因为加上的那个“开始按钮”普通左键点击依旧起到的是之前Win8 中左下角触发传统桌面与Metro 界面切换的功能,唯有右键才有一堆很难识别的功能菜单,并不是大多数人想要的,还不如不加。
三个状态下的“开始按钮”开始屏幕可以隐藏在 Win 8.1 RTM 中开始屏幕最大的改进莫过于可以选择跳过了,右键任务栏,在弹出的任务栏和导航属性菜单中的第二个Tab标签中可以看到多了开机后直接转到传统桌面而不是之前Win8 强制性先跳转到开始屏幕。
WIN8.1使用教程有不少朋友看到Win8.1的开始屏幕头就晕了,这么一片花花绿绿的方块要怎么用呢?其实这真的不是问题,就把它看成一个更好看、功能更多的开始菜单就好了。
今天我们就来聊聊Win8.1的开始屏幕。
在开始屏幕上那一个个的方块其实就是我们安装的应用程序和软件,有在应用商店下载的,也有平常我们安装的普通软件。
在这里我们能够左键打开它们,也可以对这些应用软件进行简单的管理。
开始屏幕右击应用图标就会看到一个菜单,可以从开始屏幕取消,可以固定到任务栏,可以卸载,可以调整图标大小,也可以打开所在的文件位置。
就像平台在开始菜单中管理软件一样,一点也不复杂。
右键菜单在开始屏幕的右上角是头像、关机键和搜索键,至于它们的作用就不许赘述了。
只说一下点击头像可以锁屏、注销和更换头像,关机可以重启和关机,搜索支持全局搜索。
开始屏幕左下角有一个向下的箭头,点击就会进入“所有应用”的界面,类似于Win7开始菜单中的“程序”。
这里显示了所有安装在系统中的软件,在左上角还可以按照不同的情况进行排序。
全部应用界面最后我们说说开始屏幕的个性化设置,将鼠标移动至屏幕右上角呼出“超级按钮”,选择“设置”,这时就能看到个性化的选项了。
在这里可以选择背景图片、背景颜色和个性颜色,按照自己的喜好来调整吧。
个性化设置这就是Win8.1的开始屏幕,是不是很简单的内容?大家不要被它华丽的外面吓到了,这就是一个非常平易近人的不高深的软件管理界面,没有想象的那么复杂。
所以大家也没有必要去排斥它,有一些理解就能发现更强大的功能。
Windows 8.1 正式版常见问题解答1. 如何安装Windows 8.1 驱动?Windows 8 安装镜像已集成基本设备驱动(包括存储、网络、输入和显示的驱动程序),其余驱动可以从Windows Update 中或从设备制造商获取。
2. 安装Windows 8.1 是否需要产品密钥?如果你通过Windows 应用商店安装Windows 8.1 ,则不需要产品密钥。
Windows 8.1 内核利用– CVE-2014-41132014 – 10 – 31Moritz Jodeit moritz@目录1.介绍2.漏洞详情3.Windows 8.1 内核利用设计WIN32K!TAGWND结构寻找覆盖目标利用步骤整合4.总结介绍在2014年10月14日,CrowdStrike和FireEye公布了一篇博客文章,这篇文章描述了Windows 上的一个新的0day权限提升漏洞。
据CrowdStrike的文章解释:这个漏洞是在一次追踪一个高级组织的时候被发现并证明的,这个组织名叫HURRICANE PANDA。
这个漏洞在Internet 上至少已经活跃了5个月。
这个漏洞据说是CrowdStrike和FireEye同时发现并提交给微软的,随后,微软就将其命名为:MS14-058,并提供了修复补丁。
不久,binaries在他的博客文章中也提到了这个漏洞,在撰写文章时,这里有几个很好的分析思路,这个思路是基于二进制与Metasploit渗透框架,结果是,这个思路能支持目前的WIN32与WIN64版本的系统,但是除了WIN8与WIN8.1。
根据微软的说明,这个漏洞影响了Windows很多版本,也包括WIN8.1。
更有趣的是,FireEye 的博客文章对比了这个漏洞,WIN8,WIN Server 2012以及以后的版本并没有该漏洞,这个漏洞的利用是HURRICANE PANDA率先公布的,并且这个利用程序只能对WIN7和WIN8有效。
所以,我非常好奇的是:这个漏洞怎么在Windows的大多数版本中得到体现并利用成功。
这篇文章记载了我对这个漏洞的分析与利用,并且在Windows8与Windows8.1上利用成功。
漏洞详情下面的文章是基于Windows7(x64)系统的分析与利用,并且公开了一些有价值的信息。
这些分析过的shellcode具有MD5校验能力。
这个漏洞在其他地方早就被详细的披露过,所以,我们仅仅关注关键的细节。
这个漏洞存在的原因是:在WIN32K.SYS驱动程序中,代码出现缺少返回值校验。
这个驱动程序负责Windows系统的内核模式部分,他负责处理Windows系统的资源管理和提供图形编程驱动接口以及相关的其他事情。
User32!模块的trackpopupmenu这个函数的使用,可以引发一个用户模式的安全漏洞。
负责处理的API函数是:Win32K!xxxhandlemenumessages。
这个函数调用了win32k!xxxMNFindWindowFromPointAPI函数,这个API函数的返回值是一个win32k!tagWND结构的指针。
然而,在调用出现故障的情况之下,这个函数也会返回错误代码-1和-5。
调用程序在检查返回值的时候,只检查了-1,没有检查-5。
由于这种错误,Windows没有捕获到,这个函数继续假设有一个有效的指向win32k!tagWND结构的指针,但是他继续使用的是错误代码-5(0xfffffffb)。
这个代码执行时,传递-5给win32k!xxxSendMessage函数作为参数,这个函数恰恰是win32k!xxxSendMessageTimeout的一个轻量级封装函数(在Windows8.1上名叫:win32k!xxxSendTransformableMessageTimeout)。
这个漏洞通用的利用规则是:在用户模式地址为0xfffffffb的地方使用ZwAllocateVirtualMemoryAPI函数分配内存,并在这个地方存储一个win32k!tagWND结构的指针。
这个漏洞在内核以用户模式访问这个结构时被引发。
这个结构以这种方式早已准备好了,就是执行win32k!tagWND结构里的函数。
这个函数的指针指向了一个简单的内核权限的shellcode,这个shellcode覆盖了原始的函数返回地址,这个函数就是当前的EPROCESS 结构的一个函数,该函数具有在系统权限下运行的能力。
3 Windows8.1内核的利用这个漏洞的公开利用程序不是直接适用于Windows8,这是由于SMEP(管理模式执行预防)将要保护位于用户模式空间的shellcode的执行,这个执行其实是在内核上下文中进行的。
当CPU执行的指令在win32k!xxxSendTransformableMessageTimeout函数中时,这种被错误的使用的shellcode在Windows8系统中依然存在。
Windows8.1完全替代了那段代码,Windows81.更加注重适当的数组边界检查。
IDA PRO分析如下:所以,在Windows8.1中,调用指令已经不会在程序流中再使用。
然而,正如我们看到的那样,在下一个区段,一个精心设计的win32k!tagWND结构能够成功地到达利用这个漏洞的目的。
3.1 设计win32k!tagWND结构为了在Windows8.1上利用这个漏洞,我们的程序在用户模式空间分配了一个假的win32k!tagWND结构。
当这个漏洞被引发的时候,win32k!xxxSendTransformableMessageTimeout函数率先读取一个64位的数据储存在偏移地址为0x10的地方,这个地方恰好是win32k!tagWND结构并且程序开始将其与win32k!gptiCurrent指针进行作比较。
如果我们在这个偏移地址上提供一个无效的数据,那么程序就会走向错误的分支。
接下来,程序就会在偏移地址为0的地方读取一个字的数据并且将他当成一个内存的索引。
这个索引指向的内存空间的数据将拿来与数据0x01进行比对。
IDA PRO分析如下:自Windows8开始,win32k!tagWND结构的符号信息已经不再被微软提供。
由于这个原因,这篇文章通过地址的偏移仅仅是描述了这个结构的关键部分。
IDA PRO分析如下:如果我们将win32k!tagWND这个结构的开始两个字节设置为0,那么这个对于0x1的检查将会失败,并且代码将会在调用win32k!xxxInterSendMessageEx函数时结束,前提是我们将这个指针作为第一个参数传递给win32k!tagWND这个结构。
win32k!xxxInterSendMessageEx这个函数将会重新读取在偏移地址为0x10处的指针,这个指针位于win32k!tagWND这个结构中,并且尝试解引这个指针,然后重新读取其他的指针。
这个新指针被用来读取一个偏移地址在0x170处的值,这个值将会与ntoskrnl!PsGetCurrentProcessWin32Process函数的返回值进行比较。
IDA PRO分析如下:我们准备了win32k!tagWND这个结构以便于双解引会成功并且从我们用户内存中读取数据0x0。
接下来,win32k!xxxInterSendMessageEx这个函数将会从偏移地址0x2b0处读取一个字节数据,当然这个数据的值是一个任意的数值,但不包括0x20。
IDA PRO分析如下:当所有这些条件都满足时,win32k!xxxInterSendMessageEx一个函数就会以调用win32k!IsWindowDesktopComposed这个函数而结束,前提是传递一个指针参数到我们精心设计的win32k!tagWND结构中。
IDA PRO分析如下:这个函数将会从win32k!tagWND结构的偏移地址为0x10处读取一个数值。
如果读取的数值为0,这个函数将会返回0而没有解引任何的win32k!tagWND结构的其他成员。
IDA PRO分析如下:如果这些条件都满足,win32k!xxxInterSendMessageEx这个函数最终将进入以下有趣的代码:这段代码基本上实现了一个链表的追加操作,具体操作是:试图将在RDI寄存器中发现的数据追加到这个链表尾部。
这个被发现的数据是一个我们不能直接控制的内核指针。
这段代码将率先读取存储在win32k!tagWND结构中偏移地址为0x60处的链表头部,并且检查这个地址处的数值是否为空。
在这种情况下,这个数据将被直接存储在win32k!tagWND结构中作为一个新的连表头。
如果在win32k!tagWND这个结构的0x60偏移处已经存储了一个链表头,这段代码将开始遍历这个链表直到发现一个链表的入口,并把下一个指针设置为空指针,然后覆盖RDI这个寄存器中指向内核地址的指针。
图解如下:此段代码为我们提供了一个非常有用的原始的和基本上允许我们在一个内核空间的任意字节覆盖8个连续的空字节空间。
尽管我们不能直接控制这个值的写入并且我们拥有仅仅只能覆盖空字节的附加约束,但是那样已经足以在Windows8.1版本上成功利用该漏洞。
3.2 寻找一个覆盖目标我们能在内核空间中覆盖的空间基本上可以说是没有限制的。
我们正寻找一个被0初始化的64位空间,这个空间,当我们使用一些或多或少的任意的数据进行覆盖时,这个时候允许我们进行内核权限的提升。
此外,我们必须从用户空间泄露一些地址到该位置。
Cesar Cerrudo在他的文章“简单定位Windows内核利用点”中说到:他们可以选择一个简单的技术来成功利用该漏洞。
我们能够从用户空间使用NtQuerySystemInformation(SystemHandleInformation)这个API函数泄露Windows令牌对象的地址。
这个需要我们获得嵌入到SEP_TOKEN_PRIVILEGES结构中的地址。
这个想法是:以某种可控的的方式,使用原始令牌来覆盖这个结构,从而添加一个认证的新权限,这个新权限是允许我们进行提权的。
使用这个技术而不是使用覆盖一个潜在的函数指针的另一个好处是:我们一点都不需要关心SMEP的绕过。
所以,我们站在一个标准用户的原始令牌的角度来看SEP_TOKEN_PRIVILEGES这个结构。
在SEP_TOKEN_PRIVILEGES结构中,这三个字段是用位掩码来表示的。
每个权限都是通过单个位来表示的。
我们更感兴趣的位掩码是那些启用的位掩码字段,那些字段是Windows 内核授予的有效特权。
正如我们看到的那样,这个结构中没有连续的8个空字节供我们覆盖。
然而,从令牌中取消特权可能会恢复几位的空间也许可以实现并满足8位空字节的要求。
我们首先打开我们的进程的一个指向原始令牌的句柄,并且让这个令牌的权限非常小。
这个结果存在于下面这个SEP_TOKEN_PRIVILEGES结构的受限制的令牌中:正如我们看到的那样,这里并没有提供给我们8个连续的空字节空间。
然而,我们可以使用AdjustTokenPrivileges这个API函数的DisableAllPrivileges标志位来禁用所用启用的特权。