APT10使用新技术对日本公司发起攻击

介绍

2018年7月,FireEye检测并阻止了针对日本媒体行业的APT10(Menupass)活动。该组织通过发送包含恶意文档的鱼叉式网络钓鱼电子邮件进行传播,此恶意文件会导致安装UPPERCUT后门。这个后门被称为ANEL。

 

攻击概述

在邮件中被传递的文件是Microsoft Word文档,其中包含了恶意VBA宏。虽然恶意文件的内容不可读,但标题与海事,外交和朝鲜问题有关。
文件名 MD5 大小 C2
自民党海洋総合戦略小委员会が政府に提言申し入れ.DOC 4f83c01e8f7507d23c67ab085bf79e97 843022 “eservake.jetos[.]com
82.221.100.52
151.106.53.147”
グテマラ大使讲演会案内状的.doc f188936d2c8423cf064d6b8160769f21 720384 “eservake.jetos[.]com
151.106.53.147
153.92.210.208 “
米国接近に揺れる北朝鲜内部的.doc cca227f70a64e1e7fcf5bccdc6cc25dd 733184 “eservake.jetos[.]com
153.92.210.208
167.99.121.203”

下图显示了诱饵文档的宏功能。在此函数的底部,我们可以看到可读文本。因此,对拉丁美洲问题感兴趣的人可能是此活动的目标。
最初被投递的Word文档受密码保护,这可能是为了绕过检测。输入密码(在电子邮件正文中提供)后,则向用户显示一个文档,该文档将请求用户启用恶意宏,如下图所示。
安装UPPERCUT宏后:
随后的执行工作流程如下:
1.宏将三个PEM文件padre1.txt,padre2.txt和padre3.txt放入到受害者的%TEMP%文件夹,然后将它们从%TEMP%复制到%AllUserProfile%文件夹。
2.宏通过Windows certutil.exe程序使用以下命令对已删除的文件进行解码(certutil.exe是一个合法的内置命令行程序,用于管理Windows中的证书):

C: Windows System32 cmd.exe“/ c certutil -decode C: ProgramData padre1.txt C: ProgramData GUP.txt
C: Windows System32 cmd.exe“/ c certutil -decode C: ProgramData padre2.txt C: ProgramData libcurl.txt
C: Windows System32 cmd.exe“/ c certutil -decode C: ProgramData padre3.txt C: ProgramData 3F2E3AB9

3.宏通过可扩展存储引擎的程序esentutil.exe发起以下命令创建具有适当扩展名的文件副本(esentutil.exe也是Windows中预安装的合法程序):

C: Windows System32 esentutl.exe“/ y C: ProgramData GUP.txt / d C: ProgramData GUP.exe / o

C: Windows System32 esentutl.exe“/ y C: ProgramData libcurl.txt / d C: ProgramData libcurl.dll / o

删除的文件包括以下内容:
GUP.exe:GUP,一个免费的(LGPL)通用更新程序。GUP是Notepad ++用于软件更新的开源二进制文件。这里使用的版本是由Notepad ++进行数字签名的4.1版本:
libcurl.dll:恶意加载程序DLL
3F2E3AB9:加密的shellcode

  1. 宏启动合法的可执行文件GUP.exe。
    可执行文件中侧载恶意的DLL(libcurl.dll),它解密后并在同一文件夹中的shellcode(3F2E3AB9)中运行。shellcode对另一个DLL进行解码和解压缩,这是UPPERCUT的更新变体。在解码DLL之前,shellcode使用基于ntdll_NtSetInformationThread的反调试技术,该技术导致线程与调试器分离。然后将DLL加载到内存中,并调用随机命名的导出函数。
    shellcode使用的反调试技术:

    5.宏使用Windows esentutl.exe删除最初删除的.txt文件,并将文档文本更改为嵌入消息。完整的攻击概述如下图所示。
    一些攻击者会利用Windows certutil.exe(https://www.fireeye.com/blog/threat-research/2017/12/targeted-attack-in-middle-east-by-apt34.html )进行有效负载解码(https://securelist.com/apt-trends-report-q2-2017/79332/ ),而APT10(https://www.pwc.co.uk/cyber-security/pdf/cloud-hopper-annex-b-final.pdf )继续采用这种技术。

 

UPPERCUT的演变

下图显示了UPPERCUT的更新时间表。在图中绘制了加载器的PE编译时间和dropper的创建时间(Word文档)。由于时间戳被覆盖并用零填充,使用这里没有显示新版本中的加载器的编译时间。
与以前的版本有所不同,如今的函数名称在最新版本中随机化起来。
编码有效载荷 解码的有效载荷
MD5 尺寸 导入哈希 导出功能 版

aa3f303c3319b14b4829fe2faa5999c1 322164 182ee99b4f0803628c30411b1faa9992 l7MF25T96n45qOGWX 5.3.2
126067d634d94c45084cbe1d9873d895 330804 5f45532f947501cf024d84c36e3a19a1 hJvTJcdAU3mNkuvGGq7L 5.4.1
fce54b4886cac5c61eda1e7605483ca3 345812 c1942a0ca397b627019dace26eca78d8 WcuH 5.4.1

新的UPPERCUT存在一个新功能:如果恶意软件无法从命令和控制(C2)服务器接收HTTP响应,则会在Cookie标头中发送错误代码。错误代码是GetLastError函数返回的值,并在下一个信标中发送。这可能帮助攻击者了解攻击情况,如果后门无法收到响应。此Cookie标头是一个唯一的指示器,可用于基于网络的检测。
早期版本的UPPERCUT在与C2通信时使用了硬编码字符串“this is the encrypt key”,用于Blowfish加密。但是,在最新版本中,密钥对每个C2地址都有了唯一的硬编码,并使用C2计算的MD5哈希来确定使用哪个密钥。
下表列出了126067d634d94c45084cbe1d9873d895的载荷中的硬编码C2地址,MD5散列以及相应的Blowfish密钥。

C2 MD5 Key
hxxp[:]//151.106.53[.]147/VxQG f613846eb5bed227ec1a5f8df7e678d0 bdc4b9f5af9868e028dd0adc10099a4e6656e9f0ad12b2e75a30f5ca0e34489d
hxxp[:]//153.92.210[.]208/wBNh1 50c60f37922ff2ff8733aaeaa9802da5 fb9f7fb3c709373523ff27824ed6a31d800e275ec5217d8a11024a3dffb577dd
hxxp[:]//eservake.jetos[.]com/qIDj c500dae1ca41236830b59f1467ee96c1 d3450966ceb2eba93282aace7d7684380d87c6621bbd3c4f621caa079356004a
Default Default f12df6984bb65d18e2561bd017df29ee1cf946efa5e510802005aeee9035dd53

在此示例中,hxxp [:] // 151.106.53 [.] 147 / VxQG的MD5哈希值为f613846eb5bed227ec1a5f8df7e678d0。当恶意软件与此URL交互时,将选择bdc4b9f5af9868e028dd0adc10099a4e6656e9f0ad12b2e75a30f5ca0e34489d作为Blowfish密钥。如果URL的MD5哈希值与列出的任何哈希值不匹配,则将使用默认密钥f12df6984bb65d18e2561bd017df29ee1cf946efa5e510802005aeee9035dd53。与以往版本的另一个差异是在C2通信期间在URL查询值中添加了编码的代理信息。下图显示了在较新版本中从后门发送到C2服务器的参数。这些参数是通过POST请求发送的。
此外,攻击者使用与以前相同的RGPH哈希算法对命令字符串进行了哈希处理。新版本支持另外两个命令0xD290626C85FB1CE3和0x409C7A89CFF0A727。具体支持的命令为:
命令 描述
0x97A168D9697D40DD 从C2服务器下载并验证文件(XXHash比较)
0x7CF812296CCC68D5 将文件上传到C2服务器
0x652CB1CEFF1C0A00 加载PE文件
0x27595F1F74B55278 下载,验证(XXHash比较),执行文件,并将输出发送到C2服务器
0xD290626C85FB1CE3 格式化当前时间戳
0x409C7A89CFF0A727 以PNG格式捕获桌面屏幕截图并将其发送到C2
以上都不是 收到的缓冲区通过cmd.exe执行,然后输出发送到C2服务器

 

结论

虽然APT10始终针对固定的地理位置和行业,但他们使用的恶意软件不断发生变化。在较新版本的UPPERCUT中,后门初始化Blowfish加密密钥的方式发生了重大变化,这使得分析师更难以检测和解密后门的网络通信。这表明APT10非常能够维护和更新其恶意软件。
为了缓解威胁,建议用户在其设置中禁用Office宏,不打开来自未知来源的文档。

(完)