2023 年 7 月上旬,微软称之为 Storm-0324 的攻击组织通过 Microsoft Teams 发送钓鱼邮件进行攻击。Storm-0324 是一个以经济获利为动机的攻击组织,以通过钓鱼邮件执行远程代码获取失陷主机访问权限而闻名。获取立足点后 Storm-0324 通常会将访问权限转卖给其他犯罪团伙,如勒索软件组织 Sangria Tempest(又叫 FIN7、Carbon Spider)与 TA543 等。
攻击组织 Sangria Tempest 与 Storm-0324 此前曾被发现与 Gozi InfoStealer、Nymaim 和 locker 等恶意软件分发有关。目前,Storm-0324 正在分发 JSSLoader 然后转交给其他勒索软件组织。
投递机制
感染链
Storm-0324 历史
Storm-0324 通常会发送发票主题的钓鱼邮件,用户上当后会被重定向到 SharePoint 站点,其中部署压缩的 WSF 文件或者 JSSLoader。目前为止,攻击者使用的文件包括 Windows 脚本文件(WSF)、Office Doc 与 VBS。
此前,Storm-0324 分发的恶意软件包括:
- Gozi – V3
- Trickbot
- Gootkit
- Dridex
- Sage, Gandcrab Ransomware
- IcedID
感染媒介1:钓鱼邮件
钓鱼邮件
诱饵文档
受害者被重定向到一个 SharePoint 站点,该站点中部署好了 ZIP 文件,其中包含会下载 JSSLoader 的恶意脚本。文件会利用本地安全功能绕过漏洞(CVE-2023-21715),释放 JSSLoader 到失陷主机,后续引入 Sangria Tempest 的勒索软件。
2023 年 7 月上旬,攻击者开始通过 Teams 发送钓鱼诱饵文档/恶意链接,这些链接重定向到部署压缩恶意脚本的 SharePoint 链接。
感染媒介2:包含 WSF 脚本的 ZIP 文件
一旦受害者点击诱饵链接,就会被重定向到 SharePoint 网站,诱导受害者下载恶意 ZIP 文件。
文件中的 WSF 脚本
WSF 脚本中包含一些注释,来欺骗受害者使其认为这是良性脚本。
带注释的脚本文件
所有代码都是通过字符拼接起来的,存储在随机变量名称的数组中。解码后可知其尝试连接一个网站,下载后续的恶意脚本。
下载恶意脚本
感染媒介3:编码的 VBS 脚本
进一步查看下载的 VBS 脚本,其中包含解密函数与异或字符串。另外,混淆的脚本中还有另一个 VBS 脚本,该脚本会连接另一个可以下载 JSSLoader 的网站。
下载的 VBS 脚本
该 VBS 脚本会将名为 Creative_Sound_Update.exe 的恶意可执行文件释放到 %Temp% 处,此外还会创建名为 Creative Sound Blaster Software 的定时任务:
异或处理后的 VBS 脚本
释放的可执行文件
感染媒介4:JSSLoader
JSSLoader 是一个高度复杂的后门,由 FIN7 攻击组织开发。主要包含以下功能:
- 反分析
- 数据回传
- 远程代码执行
- 持久化
文件类型
使用 TickCount 反分析技术,获取目标系统处于活动状态的毫秒数,利用该数值确定系统运行了多长时间。
反分析技术
此外,攻击者使用字节数组转换为 UTF-8 字符串拼接 C&C 服务器地址(hxxps[://]monusorge[.]com)。
C&C 服务器地址
为了跟踪失陷主机,恶意软件会根据序列号、主机名与计算机名生成唯一 ID,如下所示:
生成唯一 ID
作为远控木马,恶意软件在下一阶段的执行中会收集以下受害者信息:
- 逻辑驱动器
- 主机名
- 用户名
- 域名称
- 系统信息
- IP 信息
收集到的信息会被 base64 编码处理:
回传到 C&C 服务器
恶意软件通过启动文件夹中的 IShellLink 创建快捷方式,为可执行文件提供持久化。
持久化
持久化后远控木马会等待 C&C 服务器的 GetCmd 命令,再将信息回传给 C&C 服务器。失陷主机的唯一 ID 也会被包含在请求中,并且忽略 SSL 证书错误。
证书验证
从 C&C 服务器接收到的命令会在失陷主机上执行,以下是远控木马支持的命令,每个命令都通过cmd_来进行标识:
支持的命令
远控木马支持的命令列表如下所示:
命令 | 描述 |
Cmd_FORM | 弹出非恶意表单 |
Cmd_JS/Cmd_VBS | 写入一个随机命名的文件并使用 cscript 执行 |
Cmd_EXE | 写入一个随机命名的 EXE 文件并作为线程执行 |
Cmd_UPDATE | 更新最新版的 JSSLoader 并执行 |
Cmd_UNINST | 卸载远控木马并删除持久化 |
Cmd_RAT | 将数据写入随机命名的文件中并通过 PowerShell 执行 |
Cmd_PWS | 运行 PowerShell 命令 |
Cmd_RunDll | 写入随机命名的 DLL 文件并通过 rundll32.exe 执行 |
Cmd_Info | 窃取信息 |
要执行的命令会被解析为带有分隔符的数组,然后根据数组进行构建。这些命令将会写入目录中,然后作为参数解析为 PowerShell 代码。
执行命令
结论
自从 2019 年以来,JSSLoader 一直在持续更新。攻击者的投递方式也在不断变化,例如通过 Team 与 GitHub 进行投递。恶意软件不断使用最新的、最有效的技术,攻击者也使用 C++ 进行 JSSLoader 的开发从而逃避检测并阻碍分析。