Author: Ke Liu of Tencent’s Xuanwu Lab
1. 漏洞简介
1.1 漏洞简介
2017年3月27日,来自华南理工大学的 Zhiniang Peng 和 Chen Wu 在 GitHub [1] 上公开了一份 IIS 6.0 的漏洞利用代码,并指明其可能于 2016 年 7 月份或 8 月份被用于黑客攻击活动。
该漏洞的编号为 CVE-2017-7269 [2],由恶意的 PROPFIND
请求所引起:当 If
字段包含形如 <http://localhost/xxxx>
的超长URL时,可导致缓冲区溢出(包括栈溢出和堆溢出)。
微软从 2015 年 7 月 14 日开始停止对 Windows Server 2003 的支持,所以这个漏洞也没有官方补丁,0patch [3] 提供了一个临时的解决方案。
无独有偶,Shadow Brokers 在2017年4月14日公布了一批新的 NSA 黑客工具,笔者分析后确认其中的 Explodingcan 便是 CVE-2017-7269 的漏洞利用程序,而且两个 Exploit 的写法如出一辙,有理由认为两者出自同一团队之手:
- 两个 Exploit 的结构基本一致;
- 都将 Payload 数据填充到地址
0x680312c0
; - 都基于
KiFastSystemCall / NtProtectVirtualMemory
绕过 DEP;
本文以 3 月份公布的 Exploit 为基础,详细分析该漏洞的基本原理和利用技巧。