[原创]CVE-2017-8620:Windows Search远程代码执行漏洞简单分析及流量侧检测防御思路
CVE-2017-8620:Windows Search远程代码执行漏洞简单分析及流量侧检测防御思路
漏洞描述
Windows搜索服务(WSS)是windows的一项默认启用的基本服务。允许用户在多个Windows服务和客户端之间进行搜索。 Windows搜索处理内存中的对象时,存在远程执行代码漏洞,成功利用此漏洞的攻击者可以控制受影响的系统。虽然漏洞与SMB协议本身无关,但攻击者可SMB目标作为攻击媒介,因此该漏洞面临着与Wannacry类似的大规模利用风险。CNVD对该漏洞的技术评级为“高危”。
信息搜集
- 漏洞文件:tquery.dll
- 漏洞函数:CRegXpr::CRegXpr()
- 数据对象:一个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。
⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途。
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。
复制成功
