freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

如何使用JavaScript混淆来躲避AV
2019-04-09 13:00:11

如何使用JavaScript混淆来躲避AV

介绍

前不久,Cybaze-Yoroi ZLAB的安全研究人员发现了一个值得深入研究的可疑JavaScript文件:这个恶意JavaScript文件利用了多种技术来躲避所有AV产品的检测,在著名的VirusTotal平台上,总共58中反病毒解决方案没有一个能够检测到这个JavaScript文件。因此,我们打算对其进行更加深入的分析,并弄清楚这个恶意软件到底使用了怎样的技术。

如何使用JavaScript混淆来躲避AV

技术分析

这个恶意文件采用JavaScript开发,Windows脚本主机系统组件默认是支持该文件运行的。而且该文件所占空间要比常见脚本文件的要大很多,这个脚本大约有1MB左右,脚本内容乍看之下跟乱码差不多。

如何使用JavaScript混淆来躲避AV

脚本内容一眼看去倒是有个挺有趣的地方:整个脚本主体使用的是非ASCII码字符集:

如何使用JavaScript混淆来躲避AV

这些字符/字符串看起来似乎没有任何逻辑可言,但是仔细分析之后,我们发现这是恶意软件的开发人员所使用的第一种技术。首先,使用了ASCII和Unicode字符来混合组成长字符串,并用这种长字符来声明变量。有些地方甚至还涉及到了西里尔字符:

ыNиpsфбm3nxsцвиеKEсыBLQBеnьVWC

而且所有的变量名都有一个特征,即可见的变量名都在“_“字符之后,该字符前面的内容我们是看不到的,因此我们推测攻击者在声明所有变量时使用了常见的前缀。我们可以看到如下所示的变量:

var =[…]_0x5e24

那么第一步就是对这些代码进行反混淆处理,并使用其他的字符来替换掉这些变量前缀,增强代码的可读性。结果如下:

var A_0x5e24=[‘fromCharCode’,’function\x20H2B([string]$s){$H=@();for\x20($i=0;$i\x20-lt\x20$s.Length;$i+=2){$H+=[Byte]::Parse($s.Substring($i,2),[System.Globalization.NumberStyles]::HexNumber);};return\x20$H;};$_b=(get-itemproperty\x20-path\x20\x27HKCU:\x5cSOFTWARE\x5cMicrosoft\x5cRun\x27\x20-name\x20\x27Microsoft\x27).Microsoft;

在分析过程中,我们还发现了另一种混淆技术,这里攻击者结合了ASCII码字符和十六进制字符来处理脚本代码。因为代码中可以看到类似如下图所示的十六进制字符:

0x27
0x20
0x5c

把这些十六进制值转义并进行ASCII编码之后,我们得到了它们所代表的实际意义:

0x27→ ‘
0x20→ empty space
0x5c→ \

经过反混淆处理之后,得到的脚本内容如下:

如何使用JavaScript混淆来躲避AV

这里,每一个十六进制字符前面的反斜杠必须配合一个以ASCII编码的十六进制值。现在,我们可以清楚地看到代码以及JavaScript Dropper中隐藏的可执行代码(部分)了:

如何使用JavaScript混淆来躲避AV

上述代码的第一行,用‘$’字符和_b变量替换了字符‘5’。手动执行整个操作后,我们就可以获取到格式化的可执行文件了,也就是目标设备受感染后最终的攻击Payload:

如何使用JavaScript混淆来躲避AV

我们可以看到,前四个字符为“4D5A”,这在Windows环境下的可执行文件中有着重要意义。经过解码后,Payload为了实现持久化感染,会写入下列注册表键:

HKCU\SOFTWARE\Microsoft\Run\Microsoft

此时,我们提取出来的经过解码的可执行文件就可以被VirusTotal平台上大多数AV解决方案检测到了:

其中的代码来自于著名的Remote Access木马,这也是很多网络犯罪分子经常会使用的一款木马病毒,这个变种使用的命令控制服务器如下:

networklan[.]asuscomm[.]com

总结

通过对这个恶意JavaScript脚本进行分析后,我们也了解了目前恶意攻击者的确可以轻松绕过反病毒技术的检测,即使他们使用的是著名的RevengeRAT,在引入了高级混淆技术或其他方式之后他们仍可以“逍遥法外”。

另一个需要引起大家注意的就是,即使该变种被发现了多日并已将后续样本提交到了VirusTotal,几天之后也仅有两个AV解决方案检测到了这个恶意脚本文件,这是不是有点不太合适啊?

* 参考来源:yoroi,FB小编Alpha_h4ck编译,转载请注明来自FreeBuf.COM

# javascript # AV
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者