当前位置: 首页 > news >正文

整合营销网站营销qq官网

整合营销网站,营销qq官网,网站建设河南公司,cms网站是什么blast 2016/06/21 13:180x00 简介漏洞作者EduardoBraun Prado在今年早期发现了WMP的.MCL文件又存在一个可以导致远程代码执行的漏洞。为什么要说又呢#xff0c;因为这个东西实在是“不争气”#xff0c;同一个地方出现了多次绕过导致远程代码执行的问题。0x01 历史A――MS1…blast · 2016/06/21 13:180x00 简介漏洞作者EduardoBraun Prado在今年早期发现了WMP的.MCL文件又存在一个可以导致远程代码执行的漏洞。为什么要说又呢因为这个东西实在是“不争气”同一个地方出现了多次绕过导致远程代码执行的问题。0x01 历史A――MS15-1002015年的MS15-100CVE-2015-2509Aaron Luo, Kenney Lu, and Ziv Chang of TrendMicro漏洞便是MCL“噩梦”的开始研究者发现只要在MCL文件中指定application runc:\windows\system32\cmd.exe/application 复制代码便可以让WMP运行cmd.exe代码层面看由于MCL是一个XML文件WMP加载时只是简单的解析了该XML便直接运行了“run”中指定的内容。看起来相当令人无语。0x02 历史B――MS15-134紧随着MS15-100中微软将run的内容做了过滤之后MS15-134CVE-2015-6127Francisco Falcon of CoreSecurity又诞生了。这回作者利用的倒不是run这个属性而是另一个url属性。通过application的url属性指定一个文件后WMP会在自己的WebBrowser中加载这个URL。但是研究者发现WMP的exe并不在Local Machine Lockdown的列表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InternetExplorer\MAIN\FeatureControl\FEATURE_LOCALMACHINE_LOCKDOWN中因此在WMP的WebBrowser中打开的本地页面中的脚本将会自动运行。但是总归不能分发两个文件到用户电脑中吧于是作者想到了更“优雅”的方式在application标签中加入脚本。因为WMP的XMLParser把不认识的APPLICATION的子元素全部忽略如果攻击者构造攻击文件a.mlc#!html application urla.mlcscriptalert(1)/script /application 复制代码注意url指向自身这样这个文件又会被当作HTML文件加载由于WebBrowserIE处理HTML的宽松的特性――不认识的标签会被忽略只去渲染认识标签的含义。就导致WebBrowser中直接渲染并在file域下执行了文件包含的脚本。接下来能干什么事情想必也不用细说了。0x03 主角――MS16-059在微软拦截的七七八八的时候又有人发现了新玩法application runfile:///\\127.0.0.1\c$\programdata\cpl.lnk/ 复制代码因为微软对UNC作出了拦截攻击者使用了file:///来绕过过滤。同时微软也对传递的文件后缀进行了拦截因此作者又传入了lnk快捷方式文件进行了绕过。作者在lnk中指定了调用一个CPL文件CPL其实也是一个实现了特定接口的DLL文件因此作者成功地绕过了MCL的拦截执行了任意代码。借助于UNC作者仍然只需要传入一个MCL文件给用户即可其他的所有恶意代码完全依靠远程拉取。0x04 MCL是如何被处理的原版・14年版本因为虚拟机打补丁实在是太慢了所以这里就直接用14年的DLL来演示了看一个原始风貌。MCL文件如何处理打开注册表查看MCL文件相关关联可知是由ehshell.exe打开的HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.mcl\OpenWithList\ehshell.exe。观察ehshell.exe的代码可以发现ehshell.exe简单地加载了ehshell.dll之后所有逻辑都是再ehshell.dll去做的。从调用栈也可以得出这个结论双击mcl文件之后的栈#!bash 0:025 bp kernel32!CreateFileW 0:025 g Breakpoint 0 hit kernel32!CreateFileW: 00000000779b1b88 ff2522b90700 jmp qword ptr [kernel32!_imp_CreateFileW (0000000077a2d4b0)] ds:0000000077a2d4b0{KERNELBASE!CreateFileW (000007fefd944600)} 0:000 dqs esp 000000000021e108 00000000779a0dad kernel32!CreateFileWImplementation0x7d 000000000021e110 0000000080000000 000000000021e118 0000000000000000 000000000021e120 000000000000006c 000000000021e128 000000000039d2e0 000000000021e130 0000000000000003 000000000021e138 0000000000100000 000000000021e140 0000000000000000 000000000021e148 0000000000000000 000000000021e150 0000000000440042 000000000021e158 0000000003a7ed88 000000000021e160 0000000000100000 000000000021e168 000007fef116bec7 mscorwks!DoNDirectCall__PatchGetThreadCall0x7b 000000000021e170 0000000000000000 000000000021e178 000000000021e1d0 000000000021e180 0000000000000003 0:000 du 0000000003a7ed88 0000000003a7ed88 C:\Users\BlastTS\Desktop\test.mc 0000000003a7edc8 l 复制代码可以看到LaunchMediaCenter之后ehshell基本就啥都不干了。#!bash # Child-SP RetAddr : Args to Child : Call Site 00 000000000021e108 00000000779a0dad : 0000000080000000 0000000000000000 000000000000006c 000000000039d2e0 : kernel32!CreateFileW 01 000000000021e110 000007fef116bec7 : 0000000000000000 000000000021e1d0 0000000000000003 000007fef0331830 : kernel32!CreateFileWImplementation0x7d *** WARNING: Unable to verify checksum for C:\Windows\assembly\NativeImages_v2.0.50727_64\mscorlib\c3beeeb6432f004b419859ea007087f1\mscorlib.ni.dll 02 000000000021e170 000007fef0207f71 : 000007fef0331830 000007feeff69210 0000000003a7ee70 000007fef0287aea : mscorwks!DoNDirectCall__PatchGetThreadCall0x7b 03 000000000021e230 000007fef0207e2e : 0000000003a7edd8 0000000003a7edd8 0000000003a7ee00 000007fef0288e86 : mscorlib_ni0x317f71 …………………………………………………… 17 000000000021f3b0 000007ff00250222 : 0000000002681eb0 0000000002681f30 000000000021f4a0 000000000021f060 : 0x7ff00252817 18 000000000021f5b0 000007fef116a21a : 40ca06f5582e02ef bdb2bd082c45789a 0000000000000000 0000000000000000 : 0x7ff00250222 19 000000000021f5e0 000000013f7e161b : 0000000001e10020 00000000003bcfa8 000000000021f6a0 0000000000000000 : mscorwks!UMThunkStubAMD640x7a 1a 000000000021f670 000000013f7e153a : 0000000000312462 0000000000000000 00000000003283c0 0000000001e10020 : ehshell!LaunchMediaCenter0x14e 1b 000000000021f6c0 000000013f7e148d : 0000000000000000 0000000000000000 0000000000000000 0000000000000000 : ehshell!wWinMain0xc3 1c 000000000021f920 00000000779a59ed : 0000000000000000 0000000000000000 0000000000000000 0000000000000000 : ehshell!InitializeCOMSecurity0x382 1d 000000000021f9e0 0000000077adb371 : 0000000000000000 0000000000000000 0000000000000000 0000000000000000 : kernel32!BaseThreadInitThunk0xd 1e 000000000021fa10 0000000000000000 : 0000000000000000 0000000000000000 0000000000000000 0000000000000000 : ntdll!RtlUserThreadStart0x1d 复制代码由于MediaCenter以及ehshell.dll都是C# DLL因此WinDbg看就显得比较捉急了我们将其反编译生成源代码直接看工程十分庞大在漫长的生成过程后搜索关键字可以看到这样的逻辑在加载MCL之后首先程序解析.MCL文件通过System.XML并在InternalExtensibilityAppInfo中为包含有Run属性的MCL创建一个特殊的“AppEntryPoint”。#!csharp namespace MediaCenter.Extensibility { …… public ExtensibilityEntryPointInfo AddExternalAppEntryPoint(string strRun,string strTitle, string strDescription, string strCategory, object objContext,string strNowPlayingDirective) { IDictionarydictEntryPoint CreateBaseEntryPointDict(Guid.NewGuid(), strTitle,strDescription, strCategory, objContext, strNowPlayingDirective); dictEntryPoint[Run] strRun; return this.AddEntryPoint(dictEntryPoint); } 复制代码在处理AppEntryPoint时程序啥校验都不做直接Process.Start启动程序。当然这是最初的版本因此没有任何弹框或判断。#!csharp namespace MediaCenter.Extensibility { ………………internal classExtensibilityExternalAppEntryPointInfo : ExtensibilityEntryPointInfo{ ………………internal override LaunchResult Launch(ref object objState) { ……………… Process process null; try { process Process.Start(base._strRun); } catch (Exception exception) ……………… 复制代码0x05 新版如何过滤16年6月补丁后版本简单粗暴所有包含Run/Url的全部弹窗二次确认。这也是微软对前几个严重问题所做的非常暴力的“折中”处理。0x06 十年以上的漏洞而有趣的是这个漏洞看起来感觉有十年以上。MCL文件最初就是为了在WMP中执行一个程序用的这有点像HTA文件在查找相关信息的时候我发现了06年肯定还有更早的论坛帖子就有关于MCL如何启动程序的讨论了。非常有意思的是当时的人们并不觉得这个功能是一个安全漏洞而只是一个功能而已但是到了2015年第一次被人报告开始微软就给了这个问题最高的安全评级――但是这个原本是正常的“功能设计”。可见安全的概念在十年间转换了很多。例如下面的代码是曾经一个帖子“如何在Xbox 360上运行Zsnes”的解决代码和MS15-100的利用代码一模一样发帖时间是2012年。#!html application name Zsnes SharedViewport NowPlayingDirective run C:/Zsnes/Zsnes.exe capabilitiesrequired directxTrue audioFalse videoFalse intensiverenderingTrue consoleFalse cdburningFalse / /application 复制代码
http://www.pierceye.com/news/616075/

相关文章:

  • 黑龙江建设网一体化平台seo网站关键词优化价格
  • 西宁做网站公司电话找公司网站建设
  • 有哪些企业可以做招聘的网站机械网站开发方案
  • 九江专业网站建设定制千库网免费素材图库
  • wordpress云建站太仓网站建设网站推广
  • 辽宁网站推广的目的西安企业做网站多少钱
  • 重庆微信网站建设网站平台网站怎么做
  • 90设计网站几次是什么意思厦门建设工程信息网官网
  • 小说章节收费网站建设东莞网络营销网站建设
  • 找工作网站如何设计一款软件
  • 贵金属企业网站源码手机端网站加盟
  • 大连企业网站排名优化平面设计和网页设计
  • 广州网站建设工作室招聘文创产品设计分析
  • 产品是做网站seo网站设计费用
  • 公司网站的搭建方案做海报图片的网站
  • 纯文本网站建设小米发布会最新
  • 定制版网站建设费用网站服务器干啥
  • 漂亮的网站是什么建设出来的弄一个小程序要多少钱
  • 房地产网站模板 下载免费空间和域名
  • 通付盾 建设网站公司最新永久地域自动跳转
  • 宁波建网站选哪家好一点wordpress手机全部显示
  • 如何注册属于自己的网站做列表的网站
  • 网站公司seo杭州网站建设模板
  • 网站内链如何布局优化大师下载
  • 如何做网站需求表格清单电影购买网站怎么设计
  • 有口碑的常州网站建设家政公司网站建设方案
  • 用户体验设计师吉林网站seo
  • 便宜营销型网站建设优化建站多网站绑定域名
  • 什么网站教人做3d效果图网站建设电话销售不被挂断
  • 村级网站建设 不断增强免费logo设计图案创意