前一阵,勒索软件呈爆发趋势,并出现了针对中国的中文版本,有领导收到了带有恶意js附件的邮件,让我给分析下。js只是个下载器,实际会下载真正有恶意功能的pe文件实体。html
通过一天的折腾,脱壳调试。单步跟踪运行,搞定给领导。特记录一下。算法
本次分析基于JS病毒样本(MD5:D00BE69072CF8A4549C692C7 88F58360)进行,JS调试环境为Visual Studio2012,相应的二进制PE文件(MD5:C4046F76C9518C5A45A8C555A87372F5)调试环境为 WinXP+IDA+Ollydbg。shell
分析方法为动态分析和静态分析。分别为:1,经过VS2012单步调试JS代码执行流程;2,静态分析+动态分析PE病毒文件。浏览器
在CMD命令行窗口执行WScript.exe /x 34328_34328.js,可调出VS2012实时调试器进行动态调试跟踪。服务器
图2-1 VS2012调试模式打开js样本网站
以下图2-2所示,js代码经过CreateObject.WScript.shell获取shell,从而能够执行系统命令,进行相关的操做。加密
图2-2 CreateObject获取shell操作系统
如图2-3所示,所获取的shell对象具有执行命令的功能,如Exec()、run()等命令行
图2-3 shell对象所具有的功能方法3d
以下图2-4所示,代码判断当前系统环境是否为Windows,利用JS代码注释对相关变量参数进行拼接。获得局部变量如图2-5所示。
图2-4 判断当前环境,拼接参数
图2-5 局部变量显示已拼接好的参数
经过构造XMLHTTP请求到固定地址(http://caston.com.sg/b7rtye)下载PE恶意文件,下载文件内容在请求对象的responseBody中。如图2-6和2-7所示
图2-6 指定地址下载PE文件
图2-7 所下载内容在responseBody中
XMLHTTP请求结束后,经过readystate判断该请求结果状态是否完成,若是完成,则调用ADODB.Stream对象写入所下载的文件。如图2-8所示。
图2-8 判断请求状态,并写入文件
以下图2-9所示,程序将所下载文件存入用户文档目录下的C:\Documents and Settings\a\Local Settings\Temp\***.exe文件。
图2-9 存储文件当前路径
以下图2-十、2-十一、2-12所示,JS代码调用shell对象中的run方法,来将所下载的PE恶意文件运行起来。
图2-10 调用run方法执行所下载文件
图2-11 调用run方法执行所下载文件
图2-12 调用run方法执行所下载文件
图2-13 所执行的PE文件
该PE文件为恶意程序,并采用了加密壳,执行后,会搜索受害终端全部文档文件,并采用RSA结合AES算法进行加密,另存为*.locky文件,以html页面和桌面图片的方式提示受害者访问指定网站进行敲诈活动。
该样本首先修改注册表,以便下次开机启动运行。
图2-14 所执行的PE文件
随后判断操做系统环境,根据操做系统环境和语言版本,设置不一样的参数。
图2-15 检查操做系统环境
程序读取当前磁盘,并对磁盘文件进行遍历。
图2-16 获取磁盘
图2-17 获取磁盘空余空间大小
图2-18 遍历磁盘文件
图2-19 遍历磁盘文件
伪造Mozilla浏览器访问指定服务器,获取密钥文件。
图2-20 构造HTTP请求获取密钥
图2-21 构造HTTP请求获取密钥
图2-22 导入密钥
调用ADVAPI32接口进行文件加密操做,并将原文件加密后重命名为.locky结尾的密文文件。
图2-23 生产哈希值
图2-24 准备加密上下文
图2-25 执行加密操做
图2-26 写入加密后的文件内容
图2-27 将加密后的文件重命名,以.locky结尾
图2-28 修改桌面背景注册表
图2-29 声称html文件和bmp文件
图2-30 html文件和bmp文件内容
经分析,JS样本功能是下载具备恶意功能的PE文件(文件名:qZkHEEIoa7m.exe)并执行;
所下载的PE文件(qZkHEEIoa7m.exe) 会搜索受害终端全部文档文件,并采用RSA-2048结合AES-128算法进行加密,另存为*.locky文件,以html页面和桌面图片的方式提示受害者访问指定网站进行敲诈活动;
不一样的JS样本只是其下载PE恶意文件的URL地址不一样,其余内容彻底同样。