欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

[原创]CVE-2017-8620:Windows Search远程代码执行漏洞简单分析及流量侧检测防御思路

[原创]CVE-2017-8620:Windows Search远程代码执行漏洞简单分析及流量侧检测防御思路

CVE-2017-8620:Windows Search远程代码执行漏洞简单分析及流量侧检测防御思路

漏洞描述

Windows搜索服务(WSS)是windows的一项默认启用的基本服务。允许用户在多个Windows服务和客户端之间进行搜索。

Windows搜索处理内存中的对象时,存在远程执行代码漏洞,成功利用此漏洞的攻击者可以控制受影响的系统。虽然漏洞与SMB协议本身无关,但攻击者可SMB目标作为攻击媒介,因此该漏洞面临着与Wannacry类似的大规模利用风险。CNVD对该漏洞的技术评级为“高危”。

信息搜集

  1. 漏洞文件:tquery.dll
  2. 漏洞函数:CRegXpr::CRegXpr()
  3. 数据对象:一个CPropertyRestriction结构

漏洞原理分析

背景知识

  • Windows Search
  • MS-CIFS
  • MS-SMB
    因为是Windows Search的一个漏洞,需要对Windows Search具备一定的了解,此漏洞使用的SMB的途径,所以也要对SMB有一定的了解。
Windows Search是一个桌面搜索平台,具备对大多数常见文件类型和数据类型的即时搜索功能。 其主要组件是WSearch Windows服务,它负责索引、组织和提取有关本地文件系统的信息。 此外,它还实现了Generic Search Service(GSS),可以为搜索查询提供结果所需的后端功能。客户端使用Windows Search Protocol(WSP)向托管GSS的服务器发出查询。 WSP依赖于服务器消息块(SMB)命名管道协议进行消息传输和身份验证。

Windows Search Protocol

使用WSP的最小搜索查询可能类似于以下流程:

[ Client ] --------------------> [ Server ] - CPMConnectIn

[ Client ] <-------------------- [ Server ] - CPMConnectOut

[ Client ] --------------------> [ Server ] - CPMCreateQueryIn

[ Client ] <-------------------- [ Server ] - CPMCreateQueryOut

[ Client ] --------------------> [ Server ] - CPMSetBindingsIn request

[ Client ] <-------------------- [ Server ] - CPMSetBindingsIn response

[ Client ] --------------------> [ Server ] - CPMGetRowsIn

[ Client ] <-------------------- [ Server ] - CPMGetRowsOut

[ Client ] --------------------> [ Server ] - CPMGetFreeCursorIn

[ Client ] <-------------------- [ Server ] - CPMGetFreeCursorOut

[ Client ] --------------------> [ Server ] - CPMDisconnect

CPMConnectIn消息开始客户端和服务器之间的会话,CPMCreateQueryIn包含规范并创建新查询,CPMSetBindingsIn指定如何在CPMGetRowsOut中构建搜索结果,CPMGetRowsIn从查询中请求数据行。

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功