三天前,Morphisec实验室的研究人员发现一波针对多个国家的大范围网络攻击活动。Morphisec的研究人员称之为“Pied Piper”,主要的攻击方式是通过向多个国家实施网络钓鱼来投送远控木马程序(RAT)。
此次攻击活动中传播的一个木马程序版本为“FlawedAmmyy RAT”。 该木马使攻击者可以完全控制受害者的PC系统,可以窃取系统文件、登录凭证,以及实现远程截屏、控制摄像头及麦克风。此外,它还为攻击者开展横向渗透攻击打下了基础,可以作为主要供应链攻击的潜在入口点。
如下文所述,如果该攻击活动顺利实施的话,将对会Godiva Chocolates,Yogurtland和Pinkberry在内的多家知名食品连锁企业供应商产生潜在影响。 如果不禁用C&C服务器的话,我们可以假设其他人很快也会受到此网络攻击活动的影响。
近几个月来,FlawinAmmyy远控木马程序的使用量激增,上个月它已跻身Checkpoint全球威胁指数前十名。正如Proofpoint研究人员去年3月份所透露的那样,此次攻击活动所使用的FlawinAmmyy远控木马程序是基于已泄露的AmmyyAdmin远控木马程序的源代码程序开发的变种程序。
随着对该活动的深入调查掌握,基于元数据和其他指标,同一个攻击活动参与者正在交付另一个版本的远控木马程序,该版本以远程操控器(RMS)RAT作为有效载荷。RMS RAT是建立在一个随时可用的非商业库之上的,该库有助于分析代码中出现的异常。
此攻击活动的所有版本都以网络钓鱼作为攻击起点,欺骗受害者启用宏功能。攻击活动会分多个阶段进行,最终将会提供一个完全签名的可执行RAT。
基于元数据分析,我们怀疑发起这次攻击活动的幕后黑手为Proofpoint所描述的TA505。截至本文发表时,攻击活动仍在继续。Morphisec已向有关当局报告了这次攻击活动的细节,以便对攻击活动所使用的C&C服务器采取措施。
本文我们将重点介绍Ammyy RAT的攻击链,并指出其与RMS RAT攻击链的区别。
技术介绍
网络钓鱼
此次的“Pied Piper”攻击活动与之前的网络钓鱼攻击活动相似, 之前的网络钓鱼所使用的远控木马程序为Ammyy Admin RAT。这些武器化的文档采用了相同的彩色图像,诱使受害者启用宏功能来浏览Microsoft Office文档。在此次攻击活动中,攻击者使用了weaponized .pub (Microsoft Publisher)文档以及更标准的.doc文件。Morphisec研究人员检查了多个不同文件名的文档。有些文件名为invoice_.pub,更多的则为invoice_laspinasfoods.doc。根据文件的元数据来分析,这些文档似乎是在最近几天创建的,目前还在继续创建其他类似文件。

此次的“Pied Piper”攻击活动与之前的网络钓鱼攻击活动相似, 之前的网络钓鱼所使用的远控木马程序为Ammyy Admin RAT。这些武器化的文档采用了相同的彩色图像,诱使受害者启用宏功能来浏览Microsoft Office文档。在此次攻击活动中,攻击者使用了weaponized .pub (Microsoft Publisher)文档以及更标准的.doc文件。Morphisec研究人员检查了多个不同文件名的文档。有些文件名为invoice_.pub,更多的则为invoice_laspinasfoods.doc。根据文件的元数据来分析,这些文档似乎是在最近几天创建的,目前还在继续创建其他类似文件。

图为西班牙语的钓鱼Word文档

图为德语的钓鱼Word文档
宏代码分析
当宏代码被执行时,将会在Windows计划任务中添加一项计划任务,该任务将在下一个攻击阶段被执行。这是恶意程序作者为规避杀软系统而设计的,同时也是打破攻击链的一种常见做法,而不是直接去执行下一阶段的Word程序进程。 在Ammyy RAT和RMS RAT两种攻击方式中,已添加的计划任务会执行PowerShell命令,该命令会对从一个指定域名下载的MSI程序进行相同的解密(所有域名都会在附录中记载)。



在已分析出的大多数情况下,MSI的名称是“WpnUserService”。在所有情况下,MSI都包含一个可执行文件MYEXE,该文件会根据它传递的RAT类型而进行不同的签名。这个可执行文件只是用于下一个阶段的下载者程序,而不是RAT本身。 在下面的图示中,我们对与Ammyy RAT程序相关的MYEXE进行了逆向分析(这是最近编译的一个变种程序)。

通过截图,我们可以清楚地看到可执行文件会检测一些常见的病毒查杀系统,如果检测到其中一个,它将会使用一个不同的路径(通过Svchost.exe来执行)。 如果没有找到病毒查杀系统,它将从下一台IP服务器(仍然不是C2服务器)下载一个临时文件。此临时文件是Ammyy RAT加密文件,将在后面的阶段进行解密。 从下面的截图可以看出,可执行文件编写了一个自定义的GetProcAddress函数,并根据在程序运行时计算的哈希值(SHIFT 7 + xor)加载内存中的所有函数地址。
|