• 勒索软件 -- 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 SettingsaLocal SettingsTemp***.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地址不同,其他内容完全一样。

  • 相关阅读:
    CF698C LRU
    关于 Exists 的几种嵌套查询
    React中使用useState()导致的问题记录
    react报错:Legacy context API has been detected within a strict-mode tree.
    vue-cli3.0 + typescript 构建项目
    VUE3.0 + TS 项目实战 (2)基本写法
    vue图片剪辑
    实现直播间消息评论滚动,顶部消失效果
    js 实现数组元素交换位置
    JS树结构操作:查找、遍历、筛选、树结构和列表结构相互转换,删除对应数据
  • 原文地址:https://www.cnblogs.com/bhchenli/p/5519127.html
Copyright © 2020-2023  润新知