关键词:GALLIUM、PingPull、ICMP隧道、远程访问木马

Unit 42近期发现了一个名为PingPull的新的、难以检测的远程访问木马,该木马正被高级持久威胁(APT)组织GALLIUM使用。该组织又被称作Softcell,是一个针对东南亚、欧洲和亚洲电信公司的组织。

在过去的一年里,该组织已将其攻击目标扩展到电信公司之外,包括金融机构和政府实体。在此期间Unit 42确定了GALLIUM组织的基础设施与阿富汗、澳大利亚、比利时、柬埔寨、马来西亚、莫桑比克、菲律宾、俄罗斯和越南的目标实体之间的数个联系。最重要的是,还确定了该组织使用的新型PingPull远程访问木马。

PingPull能够利用三种协议(ICMP、HTTP(S)和原始TCP)进行命令和控制(C2)。尽管使用ICMP隧道不是一种新技术,但由于很少有组织会对其网络上的ICMP流量进行检测,因而监测PingPull的C2通信十分困难。本文对这一新工具进行了详细分析并提供了GALLIUM组织近期基础设施的分布情况。

1.PingPull恶意软件分析

PingPull使用Visual C++编写,为攻击者提供在被感染主机上运行C2反向shell的功能。PingPull有三种功能相似的变体,分别使用ICMP、HTTP(S)和原始TCP协议进行C2通信。在成功感染主机后,PingPull将创建一个具有如下结构的自定义字符串,并将该字符串附加在每条C2通信数据中,作为被感染主机的唯一标识符:

PROJECT_[大写可执行程序名][大写主机名][大写16进制IP地址]

PingPull会安装使用IPv6过渡技术(6to4、ISATAP、Port Proxy和Teredo)和IP-HTTPS提供隧道连接的服务。该服务与合法的iphlpsvc服务功能完全相同,PingPull尝试使用Iphelpsvc作为服务名称,也有PingPull实例使用Onedrive作为服务名称。

PingPull的三种变体具有相同的命令行指令,可以在文件系统中执行各种活动,并能在cmd.exe上运行攻击者的反向shell命令,详情如表1.1所示。

命令功能描述
A

列举存储卷(A:到Z:)

B

列举文件夹内容

C读文件
D写文件
E删除文件
F十六进制读文件
G十六进制写文件
H

复制文件,设置创建、写入和访问时间以匹配原始文件

I

移动文件,设置创建、写入和访问时间以匹配原始文件

J创建目录
K文件时间戳
M通过cmd.exe运行命令

表1.1 PingPull的可用命令行指令

要运行表1.1中的命令,攻击者需要让C2服务器响应PingPull“信标”,该“信标”的命令和参数使用AES-CBC加密,并使用base64编码。已知的PingPull样本中有两个不同的AES密钥:

P29456789A1234sS

dC@133321Ikd!D^i

PingPull会解密收到的数据,并解析以下结构中的命令和其他参数:

&[AES密钥]=[命令]&Z0=[未知]&Z1=[参数1]&Z2=[参数2]

字符串中的z0参数的作用未知,虽然观察到PingPull解析了该参数,但并未发现对该值的使用。为了确认命令字符串的结构,在分析环境中使用以下字符串发出命令,该命令指示PingPull读取C:\\test.txt文件的内容:

&P29456789A1234sS=C&z0=2&z1=c:\\\\test.txt&z2=none

在分析环境中,PingPull用如下字符串响应了该命令:

ya1JF03nUKLg9TkhDgwvx5MSFIoMPllw1zLMC0h4IwM=

使用AES密钥P29456789A1234sS对该字符串解密,成功得到文件C:\\test.txt文件的内容:

\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07

  • ICMP变体

使用ICMP进行C2通信的PingPull实例将ICMP Echo请求(ping)数据包发送到C2服务器,C2服务器使用Echo应答数据包回复,确认可以向被入侵主机发出命令。PingPull及C2服务器使用的Echo请求和Echo应答数据包具有如下相同结构:

[8字节值]R序列号].[ “PROJECT”开始的唯一标识串]\\r\\n

total=[消息总长度]\\r\\n

current=[当前消息长度]\\r\\n

[base64编码的AES加密数据]

当向C2服务器发出“信标”时,PingPull将发送total和current值设置为0的Echo请求数据包,不包含编码及加密后的数据,如图1.1所示。

图1.1 Ping Pull ICMP信标示例

图1.1的示例中,ICMP数据包的数据部分以PingPull中硬编码的8字节值0x702437047E404103(\\x03\\x41\\x40\\x7E\\x04\\x37\\x24\\x70)和硬编码的R开头,而另一个使用ICMP进行C2通信的PingPull样本则省略了这个8字节值,如图1.2所示。

图1.2 PingPull ICMP信标示例,无硬编码的8字节值

硬编码的R之后是一个序列号,在发送或接收超过ICMP数据部分最大大小的数据时会增加,序列号之后则紧跟一个句号“.”。然后是PingPull生成的唯一标识符字符串,以PROJECT开头。之后,ICMP数据部分包括total=[整数值]和current=[整数值],用于确定传输数据的总长度和当前数据包中传输的数据块的长度。每个ICMP数据包中传输的是AES加密生成的密文字符串经base64编码后的数据,其中加密密钥取决于特定的样本。此编码后的加密数据紧随total值的新行之后。例如,在响应测试命令时,PingPull将ICMP Echo请求数据包发送到C2服务器,该数据包中包含符合预期的base64编码字符串ya1JF03nUKLg9TkhDgwvx5MSFIoMPllw1zLMC0h4IwM=,如图1.3所示。

图1.3 PingPull响应C2命令的ICMP数据包

  • HTTPS变体

PingPull的另一个变体使用HTTPS请求与其C2服务器通信。初始“信标”使用HTTPS通道上的POST请求,使用PingPull生成的唯一标识符字符串作为URL。图1.4是PingPull作为“信标”发送的POST请求示例,其中samp.exe是文件名,DESKTOP-U9SM1U2是分析系统的主机名,172.16.189.130(0xAC10BD82)是系统的IP地址。

图1.4 PingPull HTTPS信标示例

初始“信标”是一个没有数据的POST请求,HTTP标头中的内容长度为0。当对命令作出响应时,PingPull将使用相同的URL结构发出第二个POST请求,结果在经过AES密钥加密和base64编码后放在数据部分。图1.5显示了PingPull对测试命令(ya1JF03nUKLg9TkhDgwvx5MSFIoMPllw1zLMC0h4IwM=)的响应结果,在POST请求的数据部分读取C:\\test.txt文件,成功读取到文件内容:\\x07\\x07\\x07\\x07\\x07\\x07\\x07\\x07。

图1.5 PingPull通过HTTPS响应命令的结果

  • TCP变体

PingPull的第三种变体使用原始TCP进行C2通信。与其他C2通信通道相同,该“信标”中发送的数据包含PingPull生成的唯一标识符字符串,该字符串以PROJECT开头。原始TCP C2通道以4字节值开头,“信标”结构如下:

[紧随数据的DWORD长度]PROJECT_[大写可执行文件名]_[大写计算机名]_[大写的16进制IP地址]

图1.6展示了原始TCP通信信道的示例:

PingPull在第一组红色文本中发送“信标”;

C2在蓝色文本中发出命令;

PingPull在第二组红色文本中响应命令。

图1.6 Ping Pull 原始TCP信道示例

图1.6中的“信标”从44字节(0x2c)处开始,唯一标识字符串中,samp_f86ebe.exe是文件名,DESKTOP-U9SM1U2是分析系统的主机名,1721.6.1689.130(0xAC10BD82)是主机的IP地址。对信标的C2响应从64字节(0x40)的数据长度开始,然后是表示命令密文的base64编码字符串。PingPull运行C2提供的命令,并将结果发送到一个数据包中,数据长度为44字节(0x2c),然后是预期中的base64编码字符串ya1JF03nUKLg9TkhDgwvx5MSFIoMPllw1zLMC0h4IwM=作为命令的返回结果。

2. GALLIUM组织基础设施分布情况

2021年9月9日,越南的一个安全组织在网络安全社区共享了一个名为ServerMannger.exe(SHA256:de14f22c88e552b61c62ab28d27a617fb8c0737350ca7c631de5680850282761)的PingPull样本。对此样本的分析表明,它被配置为联系t1.hinitial.com C2服务器。我们确定了托管在thehinitial.com域下的几个子域,这些子域表现出类似的命名模式:

t1.hinitial[.]com

v2.hinitial[.]com

v3.hinitial[.]com

v4.hinitial[.]com

v5.hinitial[.]com

深入分析这些域名,可以发现每个子域关联的各种IP基础设施之间的证书使用有重叠。以其中一个特征尤为突出的证书为例(SHA1:76efd8ef3f64059820d937fa87acf9369775ecd5),其有效期为10年,证书名为bbb,没有其他细节,很容易监测到其合法性问题。证书内容如图2.1所示。

图2.1 与hinitial.com域名相关的X.509证书

该证书于2020年9月首次出现,链接到六个不同的IP地址,所有地址都托管在thehinitial.com域名的各个子域以及动态DNS主机(goodjob36.publicvm.com)上。通过分析PingPull样本及其相关C2域,已经识别了可追溯到2020年底的170多个相关的IP地址。这些基础设施的列举在攻击指标部分,用于网络安全防御目的。

3. 总结

GALLIUM仍然是东南亚、欧洲和非洲电信、金融和政府组织的一大威胁。在过去的一年里,我们确定了影响九个国家的定向袭击。该组织部署了名为PingPull的新型恶意软件来支持其间谍活动,Unit 42鼓励所有组织利用本文的调查结果为部署保护措施提供信息,以抵御该组织的攻击。

4. 攻击指标(IOC)

样本:

de14f22c88e552b61c62ab28d27a617fb8c0737350ca7c631de5680850282761

b4aabfb8f0327370ce80970c357b84782eaf0aabfc70f5e7340746f25252d541

fc2147ddd8613f08dd833b6966891de9e5309587a61e4b35408d56f43e72697e

c55ab8fdd060fb532c599ee6647d1d7b52a013e4d8d3223b361db86c1f43e845

f86ebeb6b3c7f12ae98fe278df707d9ebdc17b19be0c773309f9af599243d0a3

8b664300fff1238d6c741ac17294d714098c5653c3ef992907fc498655ff7c20

1ce1eb64679689860a1eacb76def7c3e193504be53ebb0588cddcbde9d2b9fe6

C2:

df.micfkbeljacob.com

t1.hinitial.com

5.181.25.55

92.38.135.62

5.8.71.97

域名:

micfkbeljacob.com

df.micfkbeljacob.com

jack.micfkbeljacob.com

hinitial.com

t1.hinitial.com

v2.hinitial.com

v3.hinitial.com

v4.hinitial.com

v5.hinitial.com

goodjob36.publicvm.com

goodluck23.jp.我们

helpinfo.publicvm.com

Mailedc.publicvm.com

IP地址(在过去30天内活跃过):

92.38.135..62

5.181.25.55

5.8.71.97

101.36.102.34

101.36.102.93

101.36.114.167

101.36.123.191

103.116.47.65

103.179.188.93

103.22.183.131

103.22.183.138

103.22.183.141

103.22.183.146

103.51.145.143

103.61.139.71

103.61.139.72

103.61.139.75

103.61.139.78

103.61.139.79

103.78.242.62

118.193.56.130

118.193.62.232

123.58.196.208

123.58.198.205

123.58.203.19

128.14.232.56

152.32.165.70

152.32.203.199

152.32.221.222

152.32.245.157

154.222.238.50

154.222.238.51

165.154.52.41

165.154.70.51

167.88.182.166

176.113.71.62

2.58.242.230

2.58.242.231

2.58.242.235

202.87.223.27

212.115.54.54

37.61.229.104

45.116.13.153

45.128.221.61

45.128.221.66

45.136.187.98

45.14.66.230

45.154.14.132

45.154.14.164

45.154.14.188

45.154.14.254

45.251.241.74

45.251.241.82

45.76.113.163

47.254.192.79

92.223.30.232

92.223.30.52

92.223.90.174

92.223.93.148

92.223.93.222

92.38.139.170

92.38.149.101

92.38.149.241

92.38.171.127

92.38.176.47

107.150.127.124

118.193.56.131

176.113.71.168

185.239.227.12

194.29.100.173

2.58.242.236

45.128.221.182

45.154.14.191

47.254.250.117

79.133.124.88

103.137.185.249

103.61.139.74

107.150.112.211

107.150.127.140

146.185.218.65

152.32.221.242

165.154.70.62

176.113.68.12

185.101.139.176

188.241.250.152

188.241.250.153

193.187.117.144

196.46.190.27

2.58.242.229

2.58.242.232

37.61.229.106

45.128.221.172

45.128.221.186

45.128.221.229

45.134.169.147

103.170.132.199

107.150.110.233

152.32.255.145

167.88.182.107

185.239.226.203

185.239.227.34

45.128.221.169

45.136.187.41

137.220.55.38

45.133.238.234

103.192.226.43

92.38.149.88

5.188.33.237

146.185.218.176

43.254.218.104

43.254.218.57

43.254.218.98

92.223.59.84

43.254.218.43

81.28.13.48

89.43.107.191

103.123.134.145

103.123.134.161

103.123.134.165

103.85.24.81

212.115.54.241

43.254.218.114

89.43.107.190

103.123.134.139

103.123.134.240

103.85.24.121

103.169.91.93

103.169.91.94

45.121.50.230

END

参考链接:

https://unit42.paloaltonetworks.com/pingpull-gallium/

编辑|董放明

审校|何双泽、金矢

本文为CNTIC编译整理,不代表本公众号观点,转载请保留出处与链接。

声明:本文来自国家网络威胁情报共享开放平台,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。