【技术分享】分析一款代码经过混淆处理的勒索软件下载器

https://p1.ssl.qhimg.com/t019122fd108782b032.png


译者:WisFree

预估稿费:140RMB

投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿


写在前面的话

今天我们将给大家分析一个恶意HTML文档,这份HTML文档声称“如果用户想要查看UPS收据的话,则必须要下载一款兼容插件”。这个HTML文档中使用了HTMLJavaScript和混淆技术,接下来我们会带大家一步一步地分析这些恶意内容。


恶意文件细节

文件名:UPS-Receipt-008533234.doc.html

保护机制:经过混淆处理的HTML+JavaScript,以及UPX Exe

MD5:762B0F20C80995D3AC8A66716011C156

样本下载:【点我下载

类型:钓鱼+木马下载器

演示视频:



细节分析

首先我们打开这个HTMl文档,此时我们将看到页面中的钓鱼信息。钓鱼信息表示,用户如果想要使用Office 365来查看UPS收据的话,则必须要下载一个兼容插件。

t013abec5da76a22503.png

在对HTML文档的代码进行分析之后我们发现,里面所有的组件都包含在一个经过了Base64编码的文件中,而且该文件不需要引用任何外部图片或资源。

t01b58f7aae20072e83.png

如果我们点击了页面中间的蓝色按钮并下载所谓的“兼容插件”,那么该页面将会下载一个ZIP文件。实际上它并不是通过外部网站下载的,因为这个ZIP文件本来就存在于这个HTML文档中。

http://p5.qhimg.com/t019149aff91c85cf37.png

在对这个ZIP文件进行分析之后,我们发现了一个JavaScript文件,而这个JS文件的文件名会诱使用户更加相信这是一个Office 365的兼容插件。

http://p8.qhimg.com/t0114d3b553e72624b8.png

对这个JavaScript文件进行了分析之后,我们发现其中的JS代码经过了混淆处理,而代码的主要功能就是从五个单独域名的其中一个下载一份文件。这些域名保存在一个数组中,并且通过一个while循环来在数组中选择需要通信的域名,最后将域名信息追加到变量"cvetk"的末尾,而这个文件就是接下来需要下载的文件了。

t01e9c34bf77dd96de4.png

其中的GET请求所收到的响应为 “HTTP错误301,页面永久移除”的错误信息:

http://p2.qhimg.com/t018091b7614634501d.png

但是这个HTTP 301错误信息所下载的文件又是另一个经过混淆处理的JavaScript文件,而这个文件所采用的混淆处理模式比之前的要好得多。

http://p2.qhimg.com/t0150a37c5ef7c0906f.png

我们发现,这个文件似乎包含的只有一个逐渐追加的变量。下面给出的是我们在文本编辑器中处理了代码格式后的结果:

http://p6.qhimg.com/t0142d26b748b3009d5.png

这个脚本又会生成另一个脚本,而第二个脚本则会通过结尾的EVAL来运行。为了提取出这个动态生成的脚本,我们将所有的"goxe"变量连接了起来,然后留下了如下所示的字符串(与结尾的EVAL有关):

http://p7.qhimg.com/t01f11137b4767622e9.png

我们可以对这个字符串的格式进行进一步的调整,并得到可读性更强的脚本代码,接下来我们就能够使用WSCRIPT来对脚本进行调试了:

http://p1.qhimg.com/t014cca12e41d95a867.png

经过了格式化处理之后,我们就可以使用命令

wscript.exe //X file.js

来对这个JavaScript文件进行调试了。我们可以从代码调试的过程中看到,这个脚本会随机生成一段文本文字,并将其显示在Office文档中。

http://p9.qhimg.com/t019fd9e4f217157e2b.png

接下来,这个Office文档会写入目标系统的磁盘中并运行,其实这个Office文档的作用只是为了分散用户的注意力的。这个文档中包含的是一堆不可读的文本信息(乱码),具体如下图所示:

t017ab287b9b20fb981.png

接下来,我们就要分析这种恶意活动中的钓鱼行为了,实际上其最终目的就是为了在目标用户的计算机中下载一个恶意木马。我们在脚本代码中发现,该脚本会选择五个域名中的其中还一个,并在末尾追加一个非常长的字符串变量。

t0113bb75ad55301510.png

在对代码中嵌套的for循环进行仔细分析之后你会发现,每一次请求之后都会在拼接好的URL结尾添加一个字符变量。如果这里没有添加字符变量的话,你将会再次下载第二步骤中的脚本。如下图所示,红色部分标记的就是追加的字符:

http://p4.qhimg.com/t010bf71b98a7418cdd.png

GET请求的响应结果是一个PNG文件,但是却被保存为了一个EXE可执行文件:

http://p4.qhimg.com/t011c20f2f059ab2a25.png

最终被下载下来的文件是一个使用UPX封装(UPX (the Ultimate Packer for eXecutables)是一款先进的可执行程序文件压缩工具,压缩过的可执行文件体积可缩小50%-70% ,这样减少了磁盘占用空间、网络上传下载的时间以及存储空间)的可执行文件,这个文件在VirusTotal上已经有很多次检测实例了。你可以使用免费的UPX工具来对这个可执行文件进行拆封。即使这个文件采用了UPX封装,但反病毒引擎仍然能够识别出该文件就是著名的勒索软件Locky:

http://p1.qhimg.com/t014e498b45fe464c3d.png


注入的恶意文件

Install-MSOffice365-WebView-Plugin-Update-0.165.11a.exe.js

[由九位随机的字符/数字命名].exe


网络流量

http://gritfitnesstraining.com/counter/?aD75cxs-h1cis8VurT7CP6OVC5sTkggkP0tfQOUHTZJ9jheseaWP4EpglrB8_TqDYQwKRq7j-PFz10hrfTJb5Xn8o0CJzI-OYIZKKs5__bDnNcQ9WWenNAo-RXFy0

http://amirmanzurescobar.com//counter/?aTZJ9jheseaWP4EpglrB8_TqDYQwKRq7j-PFz10hrfTJb5Xn8o0CJzI-OYIZKKs5__bDnNcQ9WWenNAo-RXFy2

检测结果

初始感染向量:【检测结果-CSV

(完)