这篇博客帖子由Hossein Jazi和JérômeSegura创作

7月2日,我们发现了一个档案文件,嵌入式文件假装来自印度政府。该文件使用模板注射来丢弃一个加载钴击中变体的恶意模板。

一天后,相同的威胁演员通过在Windows上使用应用程序管理(AppMGMT)服务来更改其模板并删除称为MGBOT的加载器,并在Windows上使用应用程序管理(AppMGMT)服务来注入其最终有效载荷。

7月5日,我们观察了另一个档案文件,其中嵌入文件借入来自英国总理鲍里斯约翰逊的香港的陈述。本文档使用相同的TTP来删除并执行相同的有效载荷。

考虑到印度与中国之间的持续紧张,以及香港的新安全法,我们认为这项新的竞选人员由中国国家赞助的演员经营。根据我们的分析,我们认为这可能是自2014年以来一直活跃的中国APT组。

用不同的诱饵瞄准

我们能够在几天内跟踪与这些威胁演员有关的活动,这是根据旨在损害其目标的独特网络钓鱼尝试。

使用Cobalt Strike进行“邮件安全检查”(变体1)

这一运动很可能是通过鱼叉式网络钓鱼邮件进行的。rar文件(邮件安全检查.rar.)包括具有相同名称的文档(图1)。

图1:邮件安全检查.docx

该文档使用模板注入从以下URL下载远程模板(图2)。

图2:模板注入

下载的模板使用动态数据交换(DDE)协议来执行恶意命令,该命令在文档的内容中编码(图3)。

图3:编码命令

解码后,我们可以看到将被DDE执行的命令列表:

图4:解码的命令

作为图4所示,使用的威胁演员Certutil.-urlcache -split -f.下载a的参数com小脚本从其服务器然后使用quignedoo.技术执行下载的scriptlet通过Regsvr32.exe.在受害者机器上。

此scriptlet存储在文档目录为“ff.sct”。Scriptlet是具有嵌入式VBScript的XML文件(图5)。

图5:FF.SCT Snipplet

Scriptlet创建VB宏并调用Excel来执行它。宏已被禁止绕过静态安全机制,并负责将嵌入的有效载荷注入其中rundll32.exe.使用反射DLL注入方法。注入有效载荷是Cobalt Strike的一个变种。

下图显示了此攻击的整体过程:

图6:整体过程

使用MGBOT(Variant 2)的“邮件安全检查”

正如我们之前提到的,第一次攻击后的一天,APT组更改了其远程模板。在这个新的变体中,演员使用QuignalDoo技术和钴击打作为有效载荷停止。

图7显示了嵌入在模板文件中的新编码命令。

图7:编码命令

图8显示了将由DDE执行的命令列表。

图8:解码命令

在这个新的模板文件中,Storm.SCT.Scriptlet被替换为Storm.txt.。类似于以前的版本,Certutil.用于下载Storm.txt文件,该文件是存储在文档目录中的可执行文件作为ff.exe。

下图显示了整体执行过程:

图9:整体执行过程

“Boris Johnson承诺从香港承认300万”用MGBOT(Variant 3)

中国APT小组在这次活动中使用的最后一份文件聚焦于香港发生的问题。这份文件被夹在一个名为“鲍里斯·约翰逊承诺从香港接收300万英镑到英国”的档案文件中。

在中国对香港发布新的安全法后,本文件报价总理(图10)。

图10:Boris Johnson承诺从香港到U.K.

类似于其他文档,它还使用模板注入来下载远程模板(图11)。

图11:远程模板

下载的模板(bnohk.docx)类似于Adin.docx(变体2),其中它使用DDE下载并丢弃其装载机。

有效载荷分析:mgbot(责备,mgmbot)

丢弃的可执行文件(ff.exe)是一个名为mgbot的加载器的新变体,下降并加载最终有效载荷。这个装载机假装是一个Realtek Audio Manager工具(图12)。

图12:文件版信息

它有四个嵌入式资源,其中两个是中文简体语言。这一迹象表明,该活动很可能是由中国的APT组织发起的。

图13:资源语言

加载器通过使用UAC旁路升级权限来启动其进程cmstplua com interface.

MGBOT使用多种反分析和反虚拟化技术。代码是自我修改,这意味着它在运行时在运行时改变其代码部分。这使得对样品更加难以进行静态分析。

MGBOT试图避免在已知的虚拟化环境中运行,如VmWare沙盒virtualbox.。要标识它是否在其中一个环境中运行,它会查找以下DLL文件:vmhgfs.dll.sbiedll.dll.vboxogl.dll.如果它找到任何这些dll,它将进入一个无限循环,而不会进行任何恶意活动(图14)。

图14:抗VM

它还检查受害者机器上是否存在安全产品,如果检测到安全产品,则采取不同的执行流程。例如,它检查zhudongfangyu.exe,360sd.exe,360tray.exe,mfeavsvc.exe和mcuicnt.exe在代码的不同部分(图15)。恶意软件不同时执行所有检查,而是在执行其执行的不同步骤中检查几个。

图15:安全产品检查

要调用所需的API,恶意软件不会直接调用它们,而是构建所需A​​PI的函数指针表。通过访问此表的相关索引来进行每个对API调用的请求。

图16:构建功能指针表

例如,当恶意软件需要调用Winexec.,它通过从函数指针表中的索引调用它来实现。

图17:通过使用功能指针表调用API

构建所需的API调用表后,恶意软件执行以下过程:

  • 它调用CreateFilew去创造iot7d6e.tmp.(随机名称以物联网开始)进入% APPDATA %临时目录中。此TMP文件是嵌入最终有效载荷的CAB文件。
  • 它调用writefile.填充其内容
  • 它调用CreateProcessInternalw.调用expant.exe.解压缩内容iot7d6e.tmp.进入ProgramData \ Microsoft \ PlayReady \ Msibacf.tmp \ tmp.dat(这msibacf.tmp.目录名称是随机生成的,并以MSI开始,然后是随机数和字符的组合
图18:调用expand.exe
  • 它调用COPYFILEW.将tmp.dat复制到pmsrvd.dll.
  • 它调用deletefilew删除tmp.dat.
  • 它滴水dbengin.exe.wuauctl.exe.在里面微软ProgramData \ \ PlayReady目录中。这两个文件都是rundll32.exe.稍后使用它以执行丢弃的DLL。
  • 它修改了蜂巢的注册管理机构HKLM \ SYSTEM \ \ AppMgmt CurrentControlSet \服务注册表位置使自己持久。要执行此修改,它会丢弃名为IIX * .tmp的两个注册表文件(已将随机数添加到IIX)中的%appdata%temp目录,该目录是所提到的注册表位置的旧注册表蜂巢。

加载丢弃的DLL(pmsrvd.dll.)加载器将其注册为服务。为此,它利用已安装的服务AppMGMT来加载有效载荷,如下图像所示:

图18:Servicedll
图19:ImagePath

最后,它通过运行执行丢弃的DLL净启动AppMgmt。加载DLL后,加载程序会创建CMD文件(lgt * .tmp.cmd)在% APPDATA %临时具有图20所示内容的目录。然后它执行它以从受害者的计算机中删除CMD文件和加载程序。

图20:CMD文件

我们能够识别该装载机的几种不同的变体。通常,所有变体都会使用最终有效载荷expant.exe.要么extrac32.exe然后使用“净启动AppMgmt“或”净启动stisvc“以下列配置之一执行丢弃的DLL:

  • svchost.exe -k netsvcs -p -s appmgmt
  • svchost.exe -k netsvcs.
  • svchost.exe -k imgsvc.

删除的DLL是此威胁参与者用于执行恶意活动的主要有效负载。下面显示的文件版本信息假装为视频团队桌面应用程序。

图21:文件信息

此DLL的创建时间似乎是“2008-04-26 16:41:12”。但是,根据丰富的标题数据,我们可以断言这可能是由威胁演员被篡改的。

图22:丰富的标题

此DLL导出了多个功能,如下图所示。功能ServiceMain是由这个DLL用来将自己安装为服务的。

图23:导出功能

它可以检查正在运行的服务,并基于此运行自己作为一个服务使用WmiPrvSE.exe

图24:使用wmiprvse.exe运行作为服务
图25:使用WmiPrvse.exe将RAT的DLL安装为服务

它使用多种反调试和反虚拟化技术来检测它是否在虚拟化环境中运行,或者如果它被调试器调试。它用gettickcount.queryperformancecounter.API调用来检测调试器环境。

要检测它是否在虚拟环境中运行,它使用诸如此类的抗VM检测指令SLDT.CPID这可以提供有关处理器的信息,并检查VMware IO端口(VMXH)。

图26:环境检测

此大鼠的所有字符串和使用的导入都会使用des算法。三种不同的功能已被用来解吸符号和进口:

  • 第一个用于解密unicode字符串:在这个函数中,每个字符串有160字节的限制,解密的密钥是:25 00 57 50 8B C3 8A
  • 第二个函数用于解密ASCII字符串:在此功能中,每个字符串的限制为56字节,解密密钥为:A2 B1 1B B1 26 7B
  • 最后一个函数用于以ASCII格式解析API函数名称。这种情况下解密键是81 6E 00 E5 50 B2 D8。

在MGBOT中捆绑在MGBOT中的最后一块代码是一个远程管理特洛伊木马,具有多种功能,例如:

  • TCP上的C2通信(42.99.116[.]225:12800)
  • 能够拍摄截图
  • 文件和目录管理(枚举文件和目录并将列表发送到服务器,重命名文件,创建目录,删除文件)
  • 流程管理
  • 获取驱动器类型(FAT,FAT32,NTFS,CDF)和可用空间

基础设施的关系

以下显示此APT使用的基础架构和该组使用的主机之间的关系。此APT组使用了几种不同的IP地址来托管其恶意有效载荷以及其C2通信。

有趣的是,这一APT使用的大多数IP地址都位于香港,几乎所有这些基于香港的IP地址都用于C2通信。即使在过去的竞选中,他们也主要在香港使用基础设施。该图还显示了此APT组使用的不同IP地址之间的关系。

图27:基础设施连接

Android的老鼠

我们还发现了多个恶意Android应用程序,我们认为是此APT组使用的工具集的一部分。必威平台APPMalwarebytes将它们检测为Android / trojan.spy.androrat.ksRemote.

图28:恶意Android APK

所有这些虚假应用程序都包含一个名为的jar文件ksremote.jar.提供RAT功能:

  • 使用手机摄像头/麦克风录制屏幕和音频
  • 使用坐标定位手机
  • 窃取电话联系人,呼叫日志,短信,网页历史记录
  • 发送短信消息
图29:联系抓取功能

RAT病毒使用122.10.89.170至179范围内的随机端口号与C&C服务器通信(均在香港)

  • 122.10.89 172:10560。
  • 122.10.89 [。] 170:9552
  • 122.10.89 172:10560。

TTP与中国APTS一致

该活动中使用的救济表明,威胁演员可能是针对香港的印度政府和个人,或者至少是中国签发的新安全法的人。

在这些攻击中观察到的TTP已被几个中文APT组使用:

  • 冤仇众所周知,可以使用ertutil下载他们的有效载荷
  • Keyboy.已知已经使用DDE是它以前的运动
  • APT40已经利用quignedoo.模板注入在其以前的竞选活动中。

考虑到这些因素,我们将此APT攻击攻击,以适度的信心对新的中国APT组。基于此APT组使用的TTPS,我们能够将其活动追溯到2014年。在他们所有的竞选活动中,演员使用了MGBOT的变种。

一个威胁演员,记录了很长的历史

一种大海捞针2014年博客帖子详细说明了一个落下特洛伊木马被伪装成合法的MP3编码器库的竞选活动。在这个竞选中,演员使用了CVE-2012-0158删除它的木马。其余的TTP包括威胁演员用于执行MGBOT和注册表修改的方法与此正在进行的广告系列类似。

2018年,该组执行了另一个操作,其中他们使用了VBScript漏洞(cve - 2018 - 8174)启动他们的攻击放弃MGBOT的变种。3月20日,归档文件(warning.rar)被提交给Virustotal,我们认为是这个演员使用的另一个活动的一部分。

我们将继续这一集团的活动,以了解他们的目标或技巧是否发展。必威平台APP由于我们的签名 - 较少的反利用层,Malwarebytes用户免受此类广告系列的保护。

图30:Malware必威平台APPbytes Nebula阻止恶意Word文件

斜切ATT&CK技术

策略 ID 名称 细节
执行 T1059. 命令行界面 启动cmd.exe for命令执行
T1106. 通过模块加载执行 加载丢弃或重写可执行文件
——WUAUCTL.EXE
——svchost.exe
- rundll32.exe.
T1053. rundll32. 使用rundll32.exe加载库
T1064. 脚本 wscript.exe:启动mshta.exe以打开HTA或HTMLS文件
T1035. 服务执行 启动NET.EXE进行服务管理
T1170. MSHTA. 启动Mshta.exe以打开HTA或HTMLS文件
T1086. 电源外壳 执行PowerShell脚本
特权升级 T1050. 新服务 通过rundll32.exe创建或修改windows服务
T1088. 绕过UAC. 已知权限升级攻击通过DllHost.exe
坚持 T1031. 修改现有服务 通过rundll32.exe创建或修改windows服务
T1050. 新服务 通过rundll32.exe创建或修改windows服务
国防逃税 T1107. 文件删除 启动CMD.EXE进行自删除
T1085. rundll32. 使用rundll32.exe加载库
T1088. 绕过UAC. 已知权限升级攻击通过DllHost.exe
T1497 虚拟化/沙箱逃避 装载机使用几种反虚拟化检测技术
T1221. 模板注射 Maldoc使用模板注入下载远程模板
T1218 签名二进制代理执行 使用quigningdoo加载可执行文件
发现 T1012 查询注册表 从注册表中读取机器GUID
T1082. 系统信息发现 从注册表中读取机器GUID
T1007 系统服务发现 启动NET.EXE进行服务管理
横向运动 T1105. 远程文件副本 - Certutil.exe:从互联网下载可执行文件
- cmd.exe:启动Certutil以下载文件
C&C. T1105. 远程文件副本 - Certutil.exe:从互联网下载可执行文件
- cmd.exe:启动Certutil以下载文件
表1:斜切攻击TTP

IOC.

2A5890ACA37A83CA02C78F00F8056E20D9B73F0532007B270DBF99D5ADE59E2ABoris Johnson承诺从香港向U.K.Docx承认300万

FC885B50892FE0C27F797BA6670012CD3BBD5DC66F0EB8FDD1B5FCA9F1EA98CCbnohk.docx.zip.

3B93BC1E0C73C70BC8F314F2F11A91CF5912DAB4C3D34B185BD3F5E7DD0C0790boris_johnson_pledges_to_admit_3_million_from_hong_kong_to_u.k.rar.

ecf63a9430a95c34f85c4a261691d23f5ac7993f9ac64b0a652110659995fc03电子邮件安全检查.RAR.

1E9C91E4125C60E5CC5C4C6EF8CBB94D7313E20B830A1E380D5D84B8592A7BB6电子邮件安全检查.docx.

3A04C1BDCE61D76FF1A4E1FD0C13DA1975B04A6A08C27AFDD5CE5C601D99A45BAdin.docx(Storm.SCT)

855AF291DA8120A48B37470855528B37C944A8393880EF51352CE44E9648FD8Adin.docx(Storm.SCT)

1E81FB62CB57A3231642F66FEE3E10D28A7C81637E4D6A03515F5B95654DA585ff.exe(Storm.txt)

99AEE7AE27476F057EF3131B371A276F77A526BB1419BFAB79A5FAC0582B76Ac

flash.governmentmm.com:该域由Actor用于主机远程模板。它已在美国的3个月前注册。

MGBOT样品

2310F3D779ACDB4881B5014F4E57DD65B4D6638FD011AC73E90DF729B58AE1E0
E224D730E66931069D6760F2CAC97AB0F62D1ED4DDEC8B58783237D3DCD59468
5 b0c93a70032d80c1f5f61e586edde6360ad07b697021a83ed75481385f9f51f
1E81FB62CB57A3231642F66FEE3E10D28A7C81637E4D6A03515F5B95654DA585
07BB016C3FDE6B777BE4B43F293CACDE2D3AAE0D4E4CAA15E7C66835E506964F.
7BDFABDF9A96B3D941F90EC124836084827F6EF06FADF0DCE1AE35C2361F1AC6
8AB344A1901D8129D99681CE33A76F7C64FD95C314AC7459C4B1527C3D968BB4
F41BFC57C2681D94BF102F39D4AF022BedDAFB4D49A49D7D7C1901D14EB698D2

45.77.245 [] 0:Cobalt Strike作为C&C服务器已使用此IP。

42.99.116 [。] 225:最终有效载荷使用的C&C服务器。

Android样本

B5304A0836BAF1DB8909128028793D12BD418FF78C69DC6F9D014CADEDE28B77
9Aade1F7A1F067688D5DA9E9991D3A66799065FFFE82FCA7BB679A71D89FEC846
5 f7f87db34340ec83314313ec40333aebe6381ef00b69d032570749d4cedee46