构建检测CVE-2017-8464漏洞的应用
内容:
第一部分:CVE-2017-8464 概述
第二部分:使用Metasploit工具利用CVE-2017-8464
2.1. CVE-2017-8464利用模型
2.2. 实施CVE-2017-8464利用
第三部分:基于Python语言构建CVE-2017-8464检测工具
3.1. 基于捕获网络数据包的CVE-2017-8464签名分析
3.2. 基于网络数据包签名分析的CVE-2017-8464利用检测处理函数
结论
**
第一部分:CVE-2017-8464 概述
LNK是系统文件 - Windows快捷方式,采用由微软开发的二进制格式。

图1:Windows上的快捷方式图标
LNK文件是一个快捷方式或“链接”,Windows将其用作对原始文件、文件夹或应用程序的引用,类似于Macintosh平台上的别名。它包含快捷方式的目标类型、位置和文件名,以及打开目标文件的程序和可选快捷键。在Windows中,可以通过右键单击文件、文件夹或可执行程序,然后选择“创建快捷方式”来创建这些文件。
利用此漏洞(存在于Microsoft Windows中),攻击者可以在特制快捷方式的图标被显示时远程执行代码。

图2:手动创建快捷方式,通过.LNK文件加载并执行恶意代码
易受攻击的组件与网络栈相关联。此类漏洞通常被称为“可远程利用”,并且可以被视为在协议层面或跨多个网络跃点(例如,通过一个或多个路由器)的可利用攻击。
受CVE-2017-8464漏洞影响的系统包括Microsoft Windows Server 2008 SP2和R2 SP1、Windows 7 SP1、Windows 8、Windows 8.1、Windows Server 2012 Gold和R2、Windows RT 8.1、Windows 10 Gold、1511、1607、1703以及Windows Server 2016中的Windows Shell。该漏洞允许本地用户或远程攻击者通过手动创建的.LNK文件执行任意代码,该文件在Windows资源管理器或任何其他解析快捷方式图标的应用程序中显示图标时未正确处理。也称为“LNK远程代码执行漏洞”。
安全更新通过修正对快捷方式图标引用的正确验证来修补漏洞。微软已于2017年6月发布了针对此漏洞的更新。该漏洞不影响Windows XP及更早版本的Windows。
Metasploit
Metasploit Framework是一个用于测试、攻击和利用服务漏洞的环境,基于命令行界面。此工具在Kali Linux(VMware版本)中可用。

图3:Metasploit工具
Armitage
一个基于Metasploit项目的图形界面工具。

图4:Armitage工具
第二部分:使用Metasploit工具利用CVE-2017-8464
2.1. CVE-2017-8464利用模型
攻击目标机 – Windows 7 Pro

图5:目标机操作系统版本

图6:目标机IP地址
攻击机 – Kali Linux – 使用Metasploit工具。

图7:攻击机IP地址
网络层为VMnet8子网192.168.169.0
2.2. 实施CVE-2017-8464利用

图8:创建载荷并监听来自攻击机的TCP连接

图9:创建自动运行恶意代码的.lnk文件

图10:载荷设置信息

图11:初始化.lnk文件并附带恶意代码

图12:将所有恶意代码复制到USB

图13:目标插入包含恶意.lnk文件的USB

图14:攻击者已成功利用漏洞并入侵目标机
**
第三部分:基于Python语言构建CVE-2017-8464检测工具
3.1. 基于捕获网络数据包的CVE-2017-8464签名分析

图15:捕获到的针对CVE-2017-8464漏洞的攻击数据包

图16:TCP成功连接到攻击机后带有PSH标志的数据包

图17:攻击者发送给受害者的捕获数据包中的可疑迹象
PE文件格式(Portable Executable File Format):是Win32特有的文件格式。所有可在Win32上执行的文件如*.EXE、*.DLL(32位)、*.COM、*.NET、*.CPL等均为PE格式;但VxD文件和*.DLL(16位)除外。

图18:PE文件结构
DOS MZ头
所有PE文件都以一个简单的DOS MZ头开始。它占用前64字节。该区域用于程序在DOS环境下运行的情况。
e_magic: PE文件的签名,值为:4Dh, 5Ah(字符“MZ”,MS-DOS创始人Mark Zbikowsky的名字)。该值标记一个有效的DOS头,并允许继续执行。

图19:捕获数据包中的PE文件签名
e_lfanew: 是DOS头末尾的一个DWORD,包含PE头相对于文件起始位置的偏移量。
DOS Stub
DOS Stub只是一个小的DOS EXE程序,显示一条错误消息,用于与16位Windows兼容。

图20:攻击者发送给受害者的DOS Stub数据包信息
PE头
PE头实际上是IMAGE_NT_HEADERS结构,包含加载程序将文件加载到内存所需的信息。
Signature: 是一个DWORD,位于PE头起始处,包含PE签名:50h, 45h, 00h, 00

图21:e_lfanew指出的PE头签名信息
节表
节表是PE头之后的部分,包含一个IMAGE_SECTION_HEADER结构数组。

图22:捕获数据包中的节表内容

图23:将签名和恶意文件相关信息保存到CSV文件中
3.2. 基于网络数据包签名分析的CVE-2017-8464利用检测处理函数

图24:获取数据包协议信息的函数

图25:获取数据包info字段信息的函数

图26:将数据包从Pcap转换为CSV文件的函数

图27:检测网络流量中恶意代码的函数

图28:捕获流量并检测恶意代码的循环
*通过实际利用测试程序运行情况。

图29:在真实机上启动监控程序

图30:监听网络流量时的检测与警告

图31:CVE-2017-8464监控程序文件夹

图32:packet文件夹,包含每次捕获并转换后的数据包文件

图33:所有警告被保存到日志中
结论
通过对CVE-2017-8464漏洞的利用和检测程序的构建,学生能够理解如何利用一个漏洞,并据此分析出签名以及恶意代码在漏洞上的行为模式。通过分析行为和签名,学生将有能力自行编写程序,自动收集、分析和处理网络安全监控信息,从而发出恶意代码检测警报。