怎么运用JavaScript混杂来逃避AV

介绍 前不久,Cybaze-Yoroi ZLAB的安全研究人员发现了一个值得深化研究的可疑JavaScript文件:这个歹意JavaScript文件利用了多种技能来逃避一切AV产品的检测,在闻名的VirusTotal平台上,一共5...


介绍
前不久,Cybaze-Yoroi ZLAB的安全研究人员发现了一个值得深化研究的可疑JavaScript文件:这个歹意JavaScript文件利用了多种技能来逃避一切AV产品的检测,在闻名的VirusTotal平台上,一共58中反病毒解决方案没有一个能够检测到这个JavaScript文件。因而,咱们计划对其进行愈加深化的剖析,并弄清楚这个歹意软件究竟运用了怎样的技能。

技能剖析
这个歹意文件选用JavaScript开发,Windows脚本主机体系组件默许是支撑该文件运转的。并且该文件所占空间要比常见脚本文件的要大许多,这个脚本大约有1MB左右,脚本内容乍看之下跟乱码差不多。

脚本内容一眼看去却是有个挺风趣的当地:整个脚本主体运用的对错ASCII码字符集:

这些字符/字符串看起来好像没有任何逻辑可言,可是仔细剖析之后,咱们发现这是歹意软件的开发人员所运用的榜首种技能。首要,运用了ASCII和Unicode字符来混合组生长字符串,并用这种长字符来声明变量。有些当地乃至还触及到了西里尔字符:
ыNиpsфбm3nxsцвиеKEсыBLQBеnьVWC
并且一切的变量名都有一个特征,即可见的变量名都在“_“字符之后,该字符前面的内容咱们是看不到的,因而咱们估测进犯者在声明一切变量时运用了常见的前缀。咱们能够看到如下所示的变量:
var =[…]_0x5e24
那么榜首步便是对这些代码进行反混杂处理,并运用其他的字符来替换掉这些变量前缀,增强代码的可读性。成果如下:
var A_0x5e24=[‘fromCharCode’,’functionx20H2B([string]$s){$H=@();forx20($i=0;$ix20-ltx20$s.Length;$i+=2){$H+=[Byte]::Parse($s.Substring($i,2),[System.Globalization.NumberStyles]::HexNumber);};returnx20$H;};$_b=(get-itempropertyx20-pathx20x27HKCU:x5cSOFTWAREx5cMicrosoftx5cRunx27x20-namex20x27Microsoftx27).Microsoft;
在剖析过程中,咱们还发现了另一种混杂技能,这儿进犯者结合了ASCII码字符和十六进制字符来处理脚本代码。由于代码中能够看到相似如下图所示的十六进制字符:
0x27
0x20
0x5c
把这些十六进制值转义并进行ASCII编码之后,咱们得到了它们所代表的实际意义:
0x27→ ‘
0x20→ empty space
0x5c→
经过反混杂处理之后,得到的脚本内容如下:

这儿,每一个十六进制字符前面的反斜杠有必要合作一个以ASCII编码的十六进制值。现在,咱们能够清楚地看到代码以及JavaScript Dropper中躲藏的可履行代码(部分)了:

上述代码的榜首行,用‘$’字符和_b变量替换了字符‘5’。手动履行整个操作后,咱们就能够获取到格式化的可履行文件了,也便是方针设备受感染后终究的进犯Payload:

咱们能够看到,前四个字符为“4D5A”,这在Windows环境下的可履行文件中有着重要意义。经过解码后,Payload为了完成耐久化感染,会写入下列注册表键:
HKCUSOFTWAREMicrosoftRunMicrosoft
此刻,咱们提取出来的经过解码的可履行文件就能够被VirusTotal平台上大多数AV解决方案检测到了:
其间的代码来自于闻名的Remote Access木马,这也是许多网络犯罪分子常常会运用的一款木马病毒,这个变种运用的指令操控服务器如下:
networklan[.]asuscomm[.]com
总结
经过对这个歹意JavaScript脚本进行剖析后,咱们也了解了现在歹意进犯者确实能够轻松绕过反病毒技能的检测,即便他们运用的是闻名的RevengeRAT,在引入了高档混杂技能或其他方法之后他们仍能够“逍遥法外”。
另一个需求引起我们留意的便是,即便该变种被发现了多日并已将后续样本提交到了VirusTotal,几天之后也仅有两个AV解决方案检测到了这个歹意脚本文件,这是不是有点不太适宜啊?
 

  • 发表于 2021-04-09 12:31
  • 阅读 ( 231 )
  • 分类:互联网

0 条评论

请先 登录 后评论
赵军
赵军

695 篇文章

你可能感兴趣的文章

相关问题