自2022年StrelaStealer恶意软件首次出现至今,StrelaStealer背后的威胁行为者已经发起了多次大规模的电子邮件攻击活动,而且目前丝毫没有放缓的迹象。
StrelaStealer恶意软件可以从主流电子邮件客户端窃取电子邮件登录数据,并将其发送回威胁行为者的C2服务器。一旦攻击成功,威胁行为者将能够访问目标用户的电子邮箱登录信息,并基于这些信息执行下一步的威胁操作。
近期,Unit 24的安全研究专家再次发现了StrelaStealer相关的一系列大规模恶意活动,欧盟和北美地区的100多个组织在活动中受到了不同程度的影响。在这一系列活动中,威胁行为者使用了包含恶意附件的垃圾电子邮件,而这些恶意附件最终将会在目标用户的设备上执行StrelaStealer的DLL Payload。
为了成功绕过安全检测,威胁行为者会不断修改电子邮件中恶意附件的文件格式,以逃避基于签名和模式的安全检测机制。除此之外,威胁行为者还会使用更加先进和复杂的混淆处理和反分析技术来更新DLL Payload,这也大大增加了安全人员对其的分析难度。
本文将深入探讨2024年初至今StrelaStealer恶意软件一系列的技术演变策略,以及相关的攻击时间线。
关于StrelaStealer
2022年11月8日,DCSO_CyTec在Medium发布了一篇关于StrelaStealer的博文,这也是StrelaStealer恶意软件首次曝光在公众视野之下。StrelaStealer是一种电子邮件凭证窃取恶意软件,自其出现以来,StrelaStealer背后的威胁行为者发动过多次大规模的电子邮件恶意活动,目标用户通常位于欧盟和北美地区。
上一次StrelaStealer的大规模恶意活动发生在2023年11月份左右,而2024年1月下旬,他们又发起了一次针对欧盟和北美地区多个行业的新活动。
在相关活动中,StrelaStealer的基本目标没有太大的变化,DLL Payload仍然可以通过strela进行识别。但是,威胁行为者一直都在不断更新StrelaStealer恶意软件,以试图逃避安全检测。
StrelaStealer的新型变种版本现在可以通过一个压缩的JScript进行分发,并在其DLL Payload中使用了更新的混淆处理技术,本文也将提供更多相关的技术分析和细节。
2023年最后一次大规模恶意活动
自StrelaStealer出现以来,研究人员观察到其威胁行为者发起了多次大规模恶意活动。根据WildFire研究人员的发现,2023年StrelaStealer恶意软件最后一次大规模恶意活动发生在11月份,当时的主要目标是北美和欧盟的组织。下图显示的是2023年11月份该恶意活动的时间线:
2024年初最新的一次大规模恶意活动
2024年1月份,StrelaStealer背后的威胁行为者又发起了另一场大规模恶意活动,目标仍然是同一地理区域的组织。下图显示的是2024年1月29日前后的攻击活动时间线(29日左右达到攻击峰值):
其中,StrelaStealer垃圾邮件所使用的是针对目标定制的本地化语言,邮件主题所采用的模式为“Factura/Rechnung/invoice####”(财务票据相关),下图显示的是德语版本的垃圾邮件样例:
虽然近期的这一次大规模恶意活动似乎针对的目标组织行业范围更广了,但高科技行业的组织一直都是StrelaStealer的主要目标。下图显示的是StrelaStealer样本攻击最多的排名前八的行业领域:
新型StrelaStealer变种的技术分析
早期的StrelaStealer初始感染链和Payload分析
早期版本的StrelaStealer主要通过带有.iso文件附件的恶意邮件来感染目标系统,这种恶意.iso文件中会包含一个.lnk文件和一个HTML文件,这种技术利用了多语言文件,而这些文件可以根据执行的应用程序场景和上下文来执行不同的处理操作。
当目标用户点击了.iso文件中的.lnk文件后,便会立即执行HTML文件,并调用rundll32.exe来执行嵌入的StrelaStealer Payload。初始Payload中会包含一些加密字符串,这些字符串在执行过程中会使用固定的XOR密钥进行解密,解密密钥如下图所示:
更新的StrelaStealer感染链
当前版本的StrelaStealer可以通过包含ZIP文件附件的网络钓鱼邮件来进行传播,一旦目标用户下载并打开压缩文件,目标系统便会感染一个JScript文件。
接下来,这个JScript文件会下载一个Base64加密的文件和一个批处理文件。Base64加密的文件会使用certutil -f decode命令进行解码,最终创建出一个PE DLL文件。根据具体的用户权限,该文件要么存储到本地磁盘的%appdata%\temp路径下,要么就存储在c:\temp文件夹中。接下来,恶意软件将使用rundll32.exe通过导出的hello函数来执行DLL文件。
下图显示的是不同版本StrelaStealer感染链的对比情况:
更新的封装器
在2024年1月份观测到的StrelaStealer最新样本中,封装器有了很大程度的更新,并采用了一种控制流混淆处理技术来增加安全分析的难度。
下图所示的初始函数中包含了一个由大量算术指令组成的超长代码块,这就是StrelaStealer最新样本所实现的控制流混淆处理技术,而这种反分析技术将有可能导致在沙箱环境中样本执行超时:
但无论是新版本还是旧版本的StrelaStealer样本,它们的Payload都是带有恶意导出函数并能够执行攻击的DLL文件。下图显示的是新旧版本样本DLL Payload恶意导出函数的对比图:
我们可以清楚地看到,旧版本的StrelaStealer(上图左侧)的混淆处理程度其实并不高,因为这些函数代码块在经过反汇编之后还是清晰可读的。然而,新版本的StrelaStealer(上图右侧)则采用了控制流混淆处理技术来逃避安全分析和检测。
StrelaStealer还会使用Payload大小和解密密钥来解密Payload,解密后的Payload是一个映射在内存中的PE文件,这与早期版本StrelaStealer的PE文件有很大不同。下图吸纳是的是加密后的Payload:
在对Payload进行解密后,我们会看到类似strela, server.php, key4.db和login.json这样的字符串,这也表明Payload与StrelaStealer有关。
StrelaStealer的主要目的是主流名电子邮件客户端窃取电子邮件登录数据,并将其发送给恶意软件配置中定义的C2服务器,下图显示的是StrelaStealer字符串和C2服务器名称信息:
StrelaStealer的威胁行为者引入了很多技术升级和修改,很大可能是为了逃避安全检测和分析。比如说,早期版本的StrelaStealer中存在的PDB字符串(编译器内置的调试符号字符串)在最新活动的样本中已经找不到了,这也增加了StrelaStealer二进制文件的隐蔽性。下图显示的是早期StrelaStealer样本的PDB字符串:
下图显示的是StrelaStealer将导出名称从Strela修改为hello:
总结
StrelaStealer是一种不断发展和进化的主动型电子邮件凭据窃取恶意软件,随着每一波新的大规模恶意电子邮件活动的发生,威胁行为者都会更新其初始感染链的电子邮件附件和DLL Paylod以更好地躲避安全检测。
信息窃取型恶意软件一直以来都在威胁用户的数据安全,StrelaStealer所采用的各种混淆处理技术和更新其实也并不算新颖,但仍然是一种有效的签名变更和检测规避方法。
参考资料
https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/certutil#-decode