<% dim ModuleName,InfoID,ChannelShortName,CorrelativeArticle,InstallDir,ChannelDir,Keyword,PageTitle,ArticleIntro,Articlecontent Keyword=stripHTML("payload,实例分析,加密,恶意文档") PageTitle=stripHTML("payload实例分析:加密的恶意文档") ArticleIntro=stripHTML("oledump结果显示该恶意文档中存在VBA宏,但是插件不能够提取URL") Articlecontent=stripHTML("我们今天分析的这份恶意office文档其本身是一个下载器:2ELJ2E1OPJ0OT.doc  oledump结果显示该恶意文档中存在VBA宏,但是插件不能够提…") ModuleName = stripHTML("hack") InfoID = stripHTML("217244") ChannelShortName=stripHTML("Hack") InstallDir=stripHTML("http://www.77169.com/") ChannelDir=stripHTML("hack") %> payload实例分析:加密的恶意文档 - 华盟网 - http://www.77169.com
您现在的位置: 华盟网 >> Hack >> 加密解密 >> 正文

[图文]payload实例分析:加密的恶意文档

2015/11/17 作者:鸢尾 来源: 网络收集
导读 <% if len(ArticleIntro)<3 then Response.Write Articlecontent 'Response.Write "Articlecontent" else Response.Write ArticleIntro 'Response.Write "ArticleIntro" end if %>

  我们今天分析的这份恶意office文档其本身是一个下载器:2ELJ2E1OPJ0OT.doc

  oledump结果显示该恶意文档中存在VBA宏,但是插件不能够提取URL

  

  现在我们使用我新写的的一份插件:plugin_vba_dco。该插件会搜索声明语句以及调用的创建对象:

  

  在输出的上半部分(1)我们可以看到每一行都包含Declare或者CreateObject关键词,在下半部分(2)包含了调用声明函数或者创建对象。

  虽然代码经过了混淆处理(字符串以及变量名),根据插件的输出我们不难猜出Ci8J27hf2可能就是XMLHTTP对象

  XMLHTTP对象的open方法需要3个参数:HTTP方法,URL,布尔值(异步或同步调用):

  

  我们可以看到最后一个参数为假,前面两个参数返回IpkfHKQ2Sd函数的值,该函数需要两个参数:两个字符串。第一个字符串连接Chr函数,第二个字符串是一个文字串。由于open方法需要将HTTP方法和URL作为字符串,极有可能IpkfHKQ2Sd函数为解码函数,且需要两个字符串作为输入(对我们来说毫无意义)然后返回一个有意义的字符串。

  下面为原始IpkfHKQ2Sd函数:

  

  以下为我对同一函数进行反混淆后的结果,函数名没有更改,但是对于那些无用的代码进行了删减,对变量重命名,最后加上缩进:

  

  从中我们能够看到函数使用一个key (sKey)和XOR操作来来解码一个秘密字符串,同时我们也得知这仅仅是一个字符串处理函数。它不包含恶意或者危险语句或函数调用,所以在VBA注释器中它的使用时安全的,我们也就不需要将其转换成其他语言了。

  接下来我们将在新窗口中使用这份反混淆函数,来解码这个URL参数:

  

  在VBA编辑器的新窗口中,我们有经过反混淆的IpkfHKQ2Sd函数以及一个会调用到IpkfHKQ2Sd函数的测试子程序。通过MsgBox显示IpkfHKQ2Sd函数返回的解码字符串,执行这个子程序获得URL:

  

  下载该文件,我们看到这并非一个JPEG文件,但是也不是一份exe文件:

  

  在VBA代码中搜索.responseBody,我们看到下载文件作为一个参数传递到IpkfHKQ2Sd函数:

  

  这也变相说明这个下载文件也是经过了编码混淆的,它也需要经过IpkfHKQ2Sd函数的解码(但是是另外一个key)

  为了在我们的电子表格中将这个文件进行转换,我们需要将这个文件加载到电子表格中,解码,并保存解码后文件。完成这一步可以通过使用FileContainer.xls工具进行,首先将文件加载到电子表格中

  

  

  FileContainer支持文件转换:我们需要用到命令C以及按下Process Files按钮

  

  以下为默认的转换函数,这个默认函数不会改变函数:输入与输出相等。

  

  解码文件,我们需要更新转换函数来调用解码函数IpkfHKQ2Sd

  

  接着,转换文件后我们得到一个exe文件

  

  该文件最终确认为Dridex木马:lameACM

  后记

  重用恶意软件中的代码是非常危险的,除非你知道它是拿来干嘛的。快速解码下载文件,我们重复使用了解码的VBA函数IpkfHKQ2Sd,但可以肯定的是它并没有恶意。反混淆过程让我有机会看到每一条声明语句,从而更加的了解这些代码并得出这个函数没有危险性这一结论。同时我们也能够利用这个混淆函数,这样做其实我们也是担有一定风险的,因为我们不知道混淆函数到底都做了些什么。