FireEye发现与可能SolarWinds攻击相关的第五种恶意软件

FireEye发现与可能SolarWinds攻击相关的第五种恶意软件

概述

FireEye研究人员在遭受SolarWinds供应链事件背后的威胁组织UNC2452入侵的服务器上,新发现了一个复杂的第二阶段后门。这一新发现的恶意软件被命名为Sunshuttle,该恶意软件的样本于2020年8月被美国一家公司上传到公共恶意软件存储库中。研究人员对样本进行分析后,发现其与UNC2542组织之间可能存在一定的关联。

SUNSHUTTLE是基于GO语言的后门程序,具有逃避检测功能。目前,尚不清楚该后门的初始投递方式,但它很可能是作为第二阶段有效载荷被释放的。该后门能够读取嵌入式或本地配置文件,通过HTTPS与C2服务器进行通信,并支持远程更新配置、文件上传和下载,以及任意命令执行。

技术细节

研究人员捕获的SUNSHUTTLE样本的文件名为“Lexicon.exe”

(MD5:9466c865f7498a35e4e1a8f48ef1dffd),该后门是基于GoLang编写的,解压后的MD5为86e89349fefcbdd9d2c80ca30fa85511。

目前尚不清楚SUNSHUTTLE的感染媒介。研究人员认为,该后门很有可能是被攻击者作为初始入侵后的第二阶段有效载荷进行释放。

SUNSHUTTLE后门使用攻击者控制“reyweb[.]com”服务器作为C2。“reyweb[.]com”服务器是通过NameSilo域名提供商匿名注册的,该域名提供商接受比特币付款,过去曾为俄罗斯和伊朗的APT组织提供C2注册服务。

SUNSHUTTLE后门程序运行后,将执行以下操作:

  • 确认配置信息
  • 向C2请求会话密钥
  • 从C2检索会话密钥,检索到会话密钥后,SUNSHUTTLE开始循环发出信标请求命令
  • 开始信标请求命令
  • 解析命令并执行操作

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执行的操作,以及验证和解析C2发送的响应内容。

初始执行

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

FireEye发现与可能SolarWinds攻击相关的第五种恶意软件

图1. Mac地址检查

配置

检查通过后,SUNSHUTTLE后门将输入一个名为"main_define_internal_settings"的例程,当运行SUNSHUTTLE的目录中不存在配置文件的时,该例程将创建一个新的该配置文件。配置文件的文件名为“ config.dat.tmp”,其使用Base64对数据进行编码,并使用AES-256加密,密钥为“hz8l2fnpvp71ujfy8rht6b0smouvp9k8”。

研究人员对配置文件进行base64解码以及AES 解密后,得到以下内容:

48b9e25491e088a35105274cae0b9e67|5-15|0|0|TW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NDsgcnY6NzUuMCkgR2Vja28vMjAxMDAxMDEgRmlyZWZveC83NS4w

其中,“|”符号分隔的值所代表的内容如下所示:

  • 48b9e25491e088a35105274cae0b9e67(当前时间戳的MD5哈希值)
  • 5-15(随机生成睡眠时间的下限/上限)
  • 0(利用“混合”流量请求)
  • 0(激活执行时间戳,默认为0)
  • TW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NDsgcnY6NzUuMCkgR2Vja28vMjAxMDAxMDEgRmlyZWZveC83NS4w(HTTPS请求中使用的Base64编码的用户代理)

可以对配置进行设置,以在恶意软件通过其例程执行并转换时,掺入以下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/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/

会话密钥机制

SUNSHUTTLE会向C2请求会话密钥,然后从c2检索会话密钥。从C2检索到的会话密钥似乎是使用包含在SUNSHUTTLE中的私钥进行RSA解密的,且该会话密钥是是唯一的。

在创建完配置文件后,SUNSHUTTLE输入名为“main_request_session_key”的例程。恶意软件将在该例程上进行迭代,直到成功为止,并在每次迭代后休眠一段时间。

命令

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

总结

目前,研究人员尚未完全证实Sunshuttle后门与UNC2542组织之间的联系,如果成功证实,那么该恶意软件将是与SolarWinds供应链攻击相关的第五种恶意软件,之前发现的四种恶意软件分别是Sunspot、Sunburst(Solorigate)、Teardrop和RainDrop。