当前位置:首页 > 电脑常识 > 正文

网页挂马常见缝隙分析与检测 8090安适门户

11-22 电脑常识

事件描述

一、cve-2018-8373缝隙的初阶分析

2018年8月15日,趋势科技披露了他们发明的一起浏览器缝隙打击事件。在检测到的打击流量中,打击者使用了cve-2018-8373这个缝隙来打击IE浏览器,访谒存在该缝隙的页面可能导致长途代码执行。有经验的研究员应该了解,在大部分的EK工具包中,针对IE浏览器的缝隙经常被用来做网页挂马,国外凡是称为“Drive-By-Download”打击。加上该缝隙使用的混淆方法和之前披露的cve-2018-8174类似,缝隙操作代码预计是同一批人所编写的。而趋势科技在呈报中提到他们通过启发式分析检测到了该流量,目前来说主流的浏览器缝隙检测方法分为静态和动态两类,静态检测是匹配其触发缝隙以及缝隙操作的关键代码特征,动态检测则是检测浏览器的敏感行为,固然也有操作机器学习对恶意网页进行分类、检测的技术,不再详述。接下来先简单分析下cve-2018-8373。

由于没有拿到打击样本,只能依据简单的poc来进行分析、复现。poc的代码如下:

接下来我们有两种调试的方法,第一种是操作windbg加载IE浏览器,并通过开启页堆来跟踪缝隙的触发点。第二种是将此中的vbscript代码提取出来,写入到vbs脚本文件中,操作wscript.exe措施加载vbs脚本,再进行分析。由于该demo并没有使用到document相关的api,加上使用wscript.exe调试起来相对简单点,所以这里使用第二种要领进行调试,接下来通过调试来看下poc中对应的二进制措施的代码实现。在win环境下,由vbscript.dll对vbs脚本进行解释执行,通过ida打开vbscript.dll并且加载标记,可以看到一些意义性较强的函数,大抵能按照这些函数名称来定位具体的vbs脚本中的代码。

在poc中,将MyClass通过new进行创建并赋值给指定变量cls,该操纵首先会触发类的创建以及初始化,创建类的函数由vbscript!VBScriptClass::Create函数完成,在初始化类的各项属性后,将该class封装为一个variant变量,class的创建如下:

最后会将该class封装成一个variant类型的变量

在微软的官网以及windows kits的头文件中均可以查到variant types的界说,部分如下:

针对差别类型的variant变量解释如下:

创建类告成后则会挪用vbscript!VBScriptClass::InitializeClass函数对class的内容进行初始化 :

在vbscript!VAR::IsFunction函数中获取class指针

随后挪用class的虚函数vbscript!CScriptEntryPoint::Call 进行初始化,最终的挪用栈如下:

调试过该vbs缝隙的研究人员应该了解,vbscript!CScriptRunTime::RunNoEH卖力对编译后的vbs代码进行解释执行。这里执行类的初始化操纵,主要包罗了array数组的界说以及Class_Initialize函数的执行。vbscript中创建数组的函数为vbscript!MakeArray,如下:

此中参数a1代表传入的数组的维度个数,由于poc中界说的数组维度为空,因此a1为0,因此直接返回0,array数组并没有结构告成。

温馨提示: 本文由杰米博客推荐,转载请保留链接: https://www.jmwww.net/file/pc/13352.html

博客主人杰米WWW
杰米博客,为大家提供seo以及it方面技巧喜欢的朋友收藏哦!
  • 11365文章总数
  • 1378074访问次数
  • 建站天数
  •