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 
本文来自云栖社区合作伙伴嘶吼,了解相关信息可以关注嘶吼网站。
目录
相关文章
|
4月前
|
网络协议 测试技术 Linux
软件测试/测试开发|你不知道的Windows神操作
软件测试/测试开发|你不知道的Windows神操作
29 0
|
2月前
|
SQL 安全 关系型数据库
接上篇文章,在测试宝塔 WAF 的未授权访问漏洞时无意间还发现了一个 SQL 注入漏洞
接上篇文章,在测试宝塔 WAF 的未授权访问漏洞时无意间还发现了一个 SQL 注入漏洞,品相还不错,可执行任意 SQL 语句。 总之,吃了一惊,一个防 SQL 注入的工具居然也有 SQL 注入漏洞。 请看这段代码
416 1
|
1月前
|
Linux iOS开发 MacOS
|
7月前
|
存储 JSON 安全
phpStudy 小皮 Windows面板 RCE漏洞
详情看文章内叙述
113 1
|
7月前
|
存储 安全 API
Windows Server 2022 21H2 本地域权限提升漏洞(PetitPotam)
Windows Server 2022 Standard/Datacenter 存在本地域权限提升漏洞,攻击者可通过使用PetitPotam工具进行获取服务器SYSTEM权限。
107 1
|
3月前
|
存储 Kubernetes 安全
虚拟机测试Windows Server 2016原地升级2019,应用和数据完美保留
Windows Server 2016可以无缝升级到2019版本,确保应用程序和数据在原地升级过程中完整保留。
110 0
|
4月前
|
SQL 安全 网络安全
【Web渗透测试】—Web漏洞
【Web渗透测试】—Web漏洞
|
4月前
|
监控 安全 算法
漏洞测试与防护:监控局域网络的软件实用指南(Swift)
在当今数字时代,使用监控局域网络的软件维护网络安全至关重要。为了保护局域网络免受潜在威胁,漏洞测试和防护措施是必不可少的。本文将介绍一种基于Swift编程语言的软件实用指南,帮助您监控局域网络并加强安全性。
209 0
|
4月前
|
网络协议 测试技术 网络安全
2021年中职“网络安全“江西省赛题—B-9:Windows操作系统深入测试
2021年中职“网络安全“江西省赛题—B-9:Windows操作系统深入测试
36 0
|
5月前
|
安全 Shell Windows
#windowsxpsp3系统MS08-067漏洞测试
#windowsxpsp3系统MS08-067漏洞测试
29 0