Windows Lnk远程代码执行漏洞(CVE-2017-8464)利用测试

简介: 本文讲的是Windows Lnk远程代码执行漏洞(CVE-2017-8464)利用测试,北京时间6月14日凌晨,微软发布编号为CVE-2017-8464的漏洞公告,官方介绍Windows系统在解析快捷方式时存在远程执行任意代码的高危漏洞,黑客可以通过U盘、网络共享等途径触发漏洞,完全控制用户系统,安全风险高危。
本文讲的是 Windows Lnk远程代码执行漏洞(CVE-2017-8464)利用测试北京时间6月14日凌晨,微软发布编号为CVE-2017-8464的漏洞公告,官方介绍Windows系统在解析快捷方式时存在远程执行任意代码的高危漏洞,黑客可以通过U盘、网络共享等途径触发漏洞,完全控制用户系统,安全风险高危。

该漏洞的原理同2010年据称美国和以色列入侵并破坏伊朗核设施的震网行动中所使用的震网病毒(Stuxnet)非常相似,所以也被一些人称为“震网三代”。

然而,通过百度搜索关键词“cve-2017-8464复现”找到的国内一些文章,对该漏洞的复现存在误解,错把通过快捷方式执行powershell代码当作了该漏洞的利用方法。

所以,本文将要纠正这个错误。并且,目前可供测试的msf利用脚本存在一个bug,漏洞触发后进程explorer.exe崩溃,漏洞利用不够完美。考虑到距补丁公开日期已经超过45天,所以本文将要公开利用脚本中bug的修复方法,实现该漏洞的“完美利用”。

0x01 简介

本文将要介绍以下内容:

· 漏洞简介

· 漏洞测试

· bug修复

· 防御

0x02 漏洞简介

该漏洞是一个微软Windows系统处理LNK文件过程中发生的远程代码执行漏洞。 
当存在漏洞的电脑被插上存在病毒木马的U盘时,不需要任何额外操作,漏洞攻击程序就可以借此完全控制用户的电脑系统。 
该漏洞也可能籍由用户访问网络共享、从互联网下载、拷贝文件等操作被触发和利用攻击。

也就是说,漏洞可以在以下任一条件下触发:

1、系统开启U盘自动播放功能,插入U盘,漏洞触发 
2、通过网络共享访问该文件目录 
3、直接访问该文件目录

0x03 漏洞测试

目前公开渠道可供测试利用的脚本有如下两个:

1、msf利用脚本

作者:ykoster

下载地址:https://github.com/rapid7/metasploit-framework/pull/8767

2、python利用脚本

作者:nixawk

下载地址:https://github.com/nixawk/labs/blob/master/CVE-2017-8464/exploit_CVE-2017-8464.py

本文着重测试msf脚本,将exp拷贝至U盘,测试通过U盘触发漏洞的利用方法

实际测试:

测试系统: kali 2.0

1、下载msf脚本

cd /usr/share/metasploit-framework/modules/exploits/windows/fileformat/
wget https://raw.githubusercontent.com/ykoster/metasploit-framework/169e00bf3442447324df064192db62cdc5b5b860/modules/exploits/windows/fileformat/cve_2017_8464_lnk_rce.rb

2、生成exp

use exploits/windows/fileformat/cve_2017_8464_lnk_rce
set payload windows/x64/exec
set cmd calc.exe
set EXITFUNC thread
exploit

注:

msf脚本默认对应系统Windows x64,所以payload也选择64位的exec

参数设置如下图

Windows Lnk远程代码执行漏洞(CVE-2017-8464)利用测试

执行后,在/root/.msf4/local/生成24个利用文件,如下图

Windows Lnk远程代码执行漏洞(CVE-2017-8464)利用测试

kali2.0下无法直接访问该文件夹,可通过命令行将/root/.msf4/local/下的所有文件复制到/root/1

命令如下:

cp -r /root/.msf4/local/ /root/1

复制文件,如下图

Windows Lnk远程代码执行漏洞(CVE-2017-8464)利用测试

将以上文件复制到U盘,在另一未打补丁的Win7 x64系统测试

3、测试

成功执行calc.exe,但是进程explorer.exe崩溃

如下图

Windows Lnk远程代码执行漏洞(CVE-2017-8464)利用测试

注:

U盘内的利用脚本可通过格式化U盘删除

接着又分别做了如下测试:

· 测试Win10 x64

· 更换payload: set payload windows/x64/meterpreter/reverse_tcp

依旧是同样的结果

查看github,其他人也遇到了同样的问题,如下图

Windows Lnk远程代码执行漏洞(CVE-2017-8464)利用测试

更多回复见:https://github.com/rapid7/metasploit-framework/pull/8767

4、更多测试

尝试测试32位系统

该脚本支持32位系统,切换命令如下:

set target 1
set payload windows/exec

如下图

Windows Lnk远程代码执行漏洞(CVE-2017-8464)利用测试

但是测试结果不尽人意,依旧失败

0x04 bug修复

省略调试过程,直接给出一种最简单的解决方法:更换dll

msf利用脚本共生成24个文件,分别为1个dll文件和23个lnk文件

如下图

Windows Lnk远程代码执行漏洞(CVE-2017-8464)利用测试

注:对于23个lnk文件,文件名最后一位代表U盘盘符,如果测试系统U盘为E盘,那么只留下文件名最后一位为"E"的lnk文件就好,其他lnk文件可以删除

bug产生的原因在于dll,将其换成自己的dll就好

32位可供测试的dll下载地址:

https://github.com/3gstudent/test/blob/master/calc.dll

64位可供测试的dll下载地址:

https://github.com/3gstudent/test/blob/master/calc_x64.dll

不会导致进程explorer.exe崩溃,测试如下图

Windows Lnk远程代码执行漏洞(CVE-2017-8464)利用测试

插入U盘自动播放触发漏洞的测试如下图

Windows Lnk远程代码执行漏洞(CVE-2017-8464)利用测试

至此,bug成功修复

0x05 防御

1、安装补丁

微软官方补丁下载地址:

https://portal.msrc.microsoft.com/en-us/security-guidance/advisory/CVE-2017-8464

360漏洞补丁修复工具下载地址:

http://b.360.cn/other/stuxnet3fixtool

2、关闭U盘自动播放功能

0x06 小结

本文对CVE-2017-8464的msf利用脚本进行测试,修复其中的bug,在技术层面上,实现对该漏洞的“完美利用”,请勿用于非法用途,在此再次提醒普通用户勤打补丁的必要。




原文发布时间为:2017年8月2日
本文作者:3gstudent 
本文来自云栖社区合作伙伴嘶吼,了解相关信息可以关注嘶吼网站。
目录
相关文章
|
2月前
|
网络协议 测试技术 Linux
软件测试/测试开发|你不知道的Windows神操作
软件测试/测试开发|你不知道的Windows神操作
31 0
|
2月前
|
Linux 编译器 数据安全/隐私保护
Windows10 使用MSYS2和VS2019编译FFmpeg源代码-测试通过
FFmpeg作为一个流媒体的整体解决方案,在很多项目中都使用了它,如果我们也需要使用FFmpeg进行开发,很多时候我们需要将源码编译成动态库或者静态库,然后将库放入到我们的项目中,这样我们就能在我们的项目中使用FFmpeg提供的接口进行开发。关于FFmpeg的介绍这里就不过多说明。
142 0
|
2月前
|
SQL 安全 关系型数据库
接上篇文章,在测试宝塔 WAF 的未授权访问漏洞时无意间还发现了一个 SQL 注入漏洞
接上篇文章,在测试宝塔 WAF 的未授权访问漏洞时无意间还发现了一个 SQL 注入漏洞,品相还不错,可执行任意 SQL 语句。 总之,吃了一惊,一个防 SQL 注入的工具居然也有 SQL 注入漏洞。 请看这段代码
492 1
|
2月前
|
iOS开发 MacOS Windows
|
12天前
|
消息中间件 Java RocketMQ
RocketMQ搭建并测试(windows)
RocketMQ搭建并测试(windows)
16 0
|
2月前
|
安全 数据管理 测试技术
网络安全与信息安全:防范漏洞、加强加密与提升安全意识深入探索自动化测试框架的设计原则与实践应用化测试解决方案。文章不仅涵盖了框架选择的标准,还详细阐述了如何根据项目需求定制测试流程,以及如何利用持续集成工具实现测试的自动触发和结果反馈。最后,文中还将讨论测试数据管理、测试用例优化及团队协作等关键问题,为读者提供全面的自动化测试框架设计与实施指南。
【5月更文挑战第27天】 在数字化时代,网络安全与信息安全已成为维护国家安全、企业利益和个人隐私的重要环节。本文旨在分享关于网络安全漏洞的识别与防范、加密技术的应用以及提升安全意识的重要性。通过对这些方面的深入探讨,我们希望能为读者提供一些实用的建议和策略,以应对日益严峻的网络安全挑战。 【5月更文挑战第27天】 在软件开发周期中,自动化测试作为保障软件质量的关键步骤,其重要性日益凸显。本文旨在剖析自动化测试框架设计的核心原则,并结合具体案例探讨其在实际应用中的执行策略。通过对比分析不同测试框架的优缺点,我们提出一套高效、可扩展且易于维护的自动
|
2月前
|
Linux iOS开发 MacOS
|
2月前
|
安全 Windows
Microsoft Windows远程桌面服务远程执行代码漏洞(CVE-2019-0708)
Microsoft Windows远程桌面服务远程执行代码漏洞(CVE-2019-0708)
33 0
|
2月前
|
存储 Kubernetes 安全
虚拟机测试Windows Server 2016原地升级2019,应用和数据完美保留
Windows Server 2016可以无缝升级到2019版本,确保应用程序和数据在原地升级过程中完整保留。
183 0
|
2月前
|
存储 网络协议 数据库
Windows服务器——部署WSUS服务与综合测试
Windows服务器——部署WSUS服务与综合测试
191 0