RPC漏洞的分析方法.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
RPC漏洞的通用分析方法 Friddy 文 一.工具准备 1.IDA Pro Advanced 5.2强大的静态逆向工具 2.HexRays(强大的可以将汇编代码转换为高质量的C代码的IDA插件) 3.mIDA(极好的抽象RPC接口的IDA插件) 二.找到溢出点 1.补丁比较。 1保留没有更新的文件到文件夹Old 2打补丁,将更新后的文件放到文件夹New 3使用“Darun Grim”等类似的补丁比较工具进行比较,找到微软偷偷修改的地方 2.圈day类型 1FUZZ,估计忙活一年能FUZZ到两、三个已经是祖辈上烧了高香了。 2静态分析,通过IDA找常见容易溢出的函数,比如strcpy、lstrcpy、strcat、wcscpy、wcscat、sprintf等等。汇编上,可以注意rep movsd,,比如ms08-066导致提权的AFD.sys就是使用了rep movsd 3留意平时使用软件时的报错,可能就是溢出了。 三.朔源 1.下面Friddy就拿ms08067来举例子,不对之处请指正,见笑了。比如通过补丁比较工具分析netapi32.dll找到了sub_5FDDA180子程序被微软修改了。 在Functions标签里面找到sub_5FDDA180双击进去 点击sub_5FDDA180,右击选择Chart of xrefs to,找到是被哪个函数调用了 可以看到 是NetpwPathCanonicalize调用了sub_5FDDA180这个子函数。下面看看NetpwPathCanonicalize这个函数: 在IDA的导出函数表中可以找到NetpwPathCanonicalize: 下面的问题就是找到通过谁可以去调用NetpwPathCanonicalize了。查询《Windows network services internals》一文,搜索PathCanonicalize关键字,可以查到以下信息: ###################################################################### The srvsvc interface is used to manage the lanmanserver service. Interface Operation number Operation name 4b324fc8-1670-01d3-1278-5a47bf6ee188 v3.0: srvsvc //Coment by Friddy 0x00 NetrCharDevEnum 0x01 NetrCharDevGetInfo 0x02 NetrCharDevControl 0x03 NetrCharDevQEnum ………… 0x1e NetprPathType 0x1f NetprPathCanonicalize//这个就是我们想要找的调用的地方了 0x20 NetprPathCompare ………………. 0x24 NetrShareEnumSticky ###################################################################### 原来我们要找的接口在srvsvc.dll中的opcode为0x1f的地方。 下面还是用IDA去逆向srvsvc.dll 下面我们就来使用mIDA了,呼出mIDA的快捷键是Ctrl+7,找到opcode为0x1f的地方 Opcode为0x1f处的函数名为:sub_74FFDAE2。双击这个函数, 可以看到: OK!调用NetpwPathCanonicalize的地方已经找到了。双击call NetpwPathCanonicalize,可以看到: 再双击jmp ds:__imp_NetpwPathCanonicalize可以看到: 果真在这里加载了NETAPI32.DLL中的NetpwPathCannonicalize,说明我们找对了。 在mIDA的窗口中,选择Opcode为0x1f处的函数,右键选择Decompile 可以得到接口的定义为: ###################################################################### [ uuid4b324fc8-1670-01d3-1278-5a47bf6ee188, version3.0 ] interface mIDA_interface /* opcode: 0x1F, address: 0x74FFDAE2 */ long sub_74FFDAE2 [in][unique][string] wchar_t * arg_1, [in][string] wchar_t

您可能关注的文档

文档评论(0)

docindoc + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档