勒索软件 -- js邮件恶意脚本分析

  前一阵,勒索软件呈爆发趋势,并出现了针对中国的中文版本,有领导收到了带有恶意js附件的邮件,让我给分析下。js只是个下载器,实际会下载真正有恶意功能的pe文件实体。

  经过一天的折腾,脱壳调试。单步跟踪运行,搞定给领导。特记录一下。

  本次分析基于JS病毒样本(MD5:D00BE69072CF8A4549C692C7 88F58360)进行,JS调试环境为Visual Studio2012,相应的二进制PE文件(MD5:C4046F76C9518C5A45A8C555A87372F5)调试环境为   WinXP+IDA+Ollydbg。

  分析方法为动态分析和静态分析。分别为:1,通过VS2012单步调试JS代码执行流程;2,静态分析+动态分析PE病毒文件。

1. JS代码分析

在CMD命令行窗口执行WScript.exe /x 34328_34328.js,可调出VS2012实时调试器进行动态调试跟踪。

图2-1 VS2012调试模式打开js样本

2 JS代码动态跟踪过程

2.1 通过CreateObject获取shell

如下图2-2所示,js代码通过CreateObject.WScript.shell获取shell,从而可以执行系统命令,进行相关的操作。

 

图2-2 CreateObject获取shell

    如图2-3所示,所获取的shell对象具备执行命令的功能,如Exec()、run()等

图2-3 shell对象所具备的功能方法

2.2 判断当前系统环境,拼接参数

如下图2-4所示,代码判断当前系统环境是否为Windows,利用JS代码注释对相关变量参数进行拼接。得到局部变量如图2-5所示。

 

图2-4 判断当前环境,拼接参数

 

图2-5 局部变量显示已拼接好的参数

2.3 构造XMLHTTP请求下载PE恶意文件

通过构造XMLHTTP请求到固定地址(http://caston.com.sg/b7rtye)下载PE恶意文件,下载文件内容在请求对象的responseBody中。如图2-6和2-7所示

 

图2-6 指定地址下载PE文件

图2-7 所下载内容在responseBody中

2.4 保存所下载PE恶意文件

  XMLHTTP请求结束后,通过readystate判断该请求结果状态是否完成,如果完成,则调用ADODB.Stream对象写入所下载的文件。如图2-8所示。

 

图2-8 判断请求状态,并写入文件

如下图2-9所示,程序将所下载文件存入用户文档目录下的C:\Documents and Settings\a\Local Settings\Temp\***.exe文件。

 

图2-9 存储文件当前路径

2.5 执行所下载的PE恶意文件

如下图2-10、2-11、2-12所示,JS代码调用shell对象中的run方法,来将所下载的PE恶意文件运行起来。

 

图2-10 调用run方法执行所下载文件

图2-11 调用run方法执行所下载文件

图2-12 调用run方法执行所下载文件

  

图2-13 所执行的PE文件 

3 PE恶意代码分析

该PE文件为恶意程序,并采用了加密壳,执行后,会搜索受害终端所有文档文件,并采用RSA结合AES算法进行加密,另存为*.locky文件,以html页面和桌面图片的方式提示受害者访问指定网站进行敲诈活动。

3.1 修改注册表开机自启动运行

     该样本首先修改注册表,以便下次开机启动运行。

图2-14 所执行的PE文件

3.2 判断当前操作系统环境

随后判断操作系统环境,根据操作系统环境和语言版本,设置不同的参数。

 

图2-15 检查操作系统环境

3.3 读取磁盘,并进行文件遍历

   程序读取当前磁盘,并对磁盘文件进行遍历。

 

图2-16 获取磁盘

 

图2-17 获取磁盘空余空间大小

 

图2-18 遍历磁盘文件

图2-19 遍历磁盘文件

3.4 联网获取密钥

伪造Mozilla浏览器访问指定服务器,获取密钥文件。

 

图2-20 构造HTTP请求获取密钥

 

图2-21 构造HTTP请求获取密钥

 

图2-22 导入密钥

3.5 调用加密程序对文件加密

调用ADVAPI32接口进行文件加密操作,并将原文件加密后重命名为.locky结尾的密文文件。

图2-23 生产哈希值

 

图2-24 准备加密上下文

图2-25 执行加密操作

 

图2-26 写入加密后的文件内容

 

图2-27 将加密后的文件重命名,以.locky结尾

3.6生成HTML和bmp文件,修改桌面背景提示受害者

 

图2-28 修改桌面背景注册表

 

图2-29 声称html文件和bmp文件

 

图2-30 html文件和bmp文件内容 

4.分析总结

经分析,JS样本功能是下载具有恶意功能的PE文件(文件名:qZkHEEIoa7m.exe)并执行;

   所下载的PE文件(qZkHEEIoa7m.exe) 会搜索受害终端所有文档文件,并采用RSA-2048结合AES-128算法进行加密,另存为*.locky文件,以html页面和桌面图片的方式提示受害者访问指定网站进行敲诈活动;

   不同的JS样本只是其下载PE恶意文件的URL地址不同,其他内容完全一样。

posted on 2016-05-23 10:54  童年的夏天  阅读(2079)  评论(8编辑  收藏  举报