瞿小凯 发表于 2025-4-2 22:44

虚假CAPTCHA投递Lumma Stealer窃密木马

本帖最后由 瞿小凯 于 2025-4-2 22:51 编辑


Lumma来袭


近期,360安全大脑监测到一款名为Lumma Stealer的恶意软件传播量呈现出了上升态势,而该恶意软件的传播方式较为特殊——它是利用了虚假的CAPTCHA验证发起攻击。

该恶意软件的攻击者采用了精心设计的社会工程学策略和多层技术规避机制,其目标直指个人和企业用户的敏感数据。作为一种以“恶意软件即服务(MaaS)”进行分发形式的恶意软件,Lumma Stealer在暗网市场上以每月250~1000美元不等的价格出售,这无疑为网络犯罪分子提供了一款颇具性价比的攻击工具。

攻击分析

虚假的CAPTCHA验证


攻击者通过虚假CAPTCHA验证页面作为诱饵,利用mshta加载远端内嵌恶意脚本的mp3文件。通过这一系列精心设计的步骤,最终实现对受害者设备上多种敏感信息的窃取,包括但不限于浏览器存储的密码、加密货币钱包密钥、双因素认证种子等关键数据。


图1. Lumma Stealer攻击流程示意图

攻击者精心构造的虚假CAPTCHA验证页面如下。

图2. 虚假CAPTCHA验证页面

用户一旦被误导,便会点击页面中那个格外显眼的“I’m not a robot”按钮,之后页面会弹出一个提示框,其内容为要求受骗用户按“Win+R”快捷键,之后按“Ctrl+V”,最后按回车键。攻击者声称以上三步操作是为了进行验证,然而其实际效果是引导用户打开系统的“运行”窗口,再将页面提供的恶意代码粘贴到文本框中让系统执行(恶意代码是在用户打开页面时便已被偷偷植入到系统剪切板中的)。

图3. 虚假页面的提示窗及恶意代码

混合格式内嵌混淆代码

通过对页面植入到系统剪切板中的恶意代码进行分析,发现mshta所加载的mp3文件内嵌入了第一层恶意js脚本。这个被加载的dodieplay5.mp3实际上是被攻击者创建出的混合格式文件:

    文件以合法MP3文件头开始,可以被音频播放器正常打开;

    同时,文件中还包含了特殊格式的HTML/JavaScript代码;

    恶意代码会在文件被mshta加载时解析执行,而在音乐播放器中则会被忽略。

图4. 被构造的mp3文件中包含的恶意代码

其中的部分关键JavaScript代码还经过了多层的混淆处理:

图5. 被混淆的JS代码

经过了两轮去混淆的解码操作后,我们得到了一段PowerShell脚本。而解码出的这段脚本功能主要为下载远端数据到本地并执行。

图6. 两轮去混淆解码后的PowerShell脚本

而下载到的bmp文件与上述的mp3文件形式类似,同样是带有多轮混淆恶意代码的一个混合格式文件。而经过多轮去混淆和解密后,内容如下:

图7. 从bmp文件中多轮去混淆和解密后的恶意PowerShell脚本

经过如此繁复的解密操作后,我们终于得到了最终的恶意功能代码。这段代码便是Lumma Stealer加载器代码,其会被加载到内存中执行。

图8. 最终在内存中被加载执行的Lumma Stealer代码

内存中的Lumma Stealer

而这个在内存中被加载和执行的Lumma Stealer恶意程序具有以下主要功能和技术特点:

1.            内存操作和反分析机制

其关键功能为:

lAMSI绕过
代码搜索并修改Windows中的“AmsiScanBuffer”函数,是一种常见的AMSI(反恶意软件扫描接口)绕过技术,目的是禁用PowerShell脚本的实时扫描功能。

l内存扫描和修改
使用VirtualQuery、ReadProcessMemory和WriteProcessMemory等API扫描进程内存,用于搜索包含“clr.dll”的内存区域。

其实现方式为:

l创建动态程序集和Win32 API PInvoke定义。

l获取当前进程句柄并枚举所有内存区域。

l在内存中查找并替换“AmsiScanBuffer”签名。

2.            恶意负载加载技术

lBase64解码
将变量$a中存储的Base64编码数据解码为PE文件。

l反射加载
使用::CurrentDomain.Load()方法将PE文件直接加载到内存中。

l无文件执行
整个执行过程不将PE文件写入磁盘,仅在内存中运行。

l动态入口点调用
自动识别并调用恶意负载的入口点函数。

3.            隐藏技术

l字符串拆分
将“AmsiScanBuffer”字符串分割为多个部分($a + $b + $c + $d)以避免静态检测。

l代码混淆
使用大量合法Windows API和复杂内存操作来混淆真实意图。

l无DLL导入
通过动态定义和调用Win32 API而非显式导入,降低可疑性。

4.            其他技术特点

l使用IsReadable函数检查内存区域是否可读。

l修改内存保护属性以启用写入权限。

l使用GetMappedFileName专门定位CLR相关的内存区域。

l仅在PowerShell的 3.0及以上版本环境执行。

关于Lumma Stealer

Lumma Stealer(又名 LummaC2 Stealer)是一款用 C 语言编写的信息窃取程序。自 2022 年 8 月以来,它一直通过恶意软件即服务(MaaS)的模式在某俄语论坛上发布和售卖。其具有感染率成功率高、第三方依赖项少、文件体积小、窃密功能强大、抓取文件效率高等特点。

图9. Lumma Stealer在某恶意论坛的售卖页面

此外,该软件采用MaaS的订阅机制,订阅费用分为:

l普通版:US$250/月

l专业版:US$500/月

l企业版:US$1000美元/月

图10. Lumma Stealer售价

另外,我们还捕获到了利用pdf、mov、mp4等格式进行隐藏加载的样本。

图11. 其他格式的恶意文件

防护建议

基于对Lumma Stealer攻击链的分析,我们提出以下防护建议来帮助组织和个人有效防范此类威胁:

对于个人用户

l提高警惕性
对任何要求复制执行命令行的网站保持高度警惕,尤其是看似合法的CAPTCHA验证页面。

l使用密码管理器
采用安全的密码管理解决方案,避免在浏览器中保存敏感凭证。

l启用两步验证
对重要账户使用复杂密码并启用双因素认证

l定期备份
对关键数据进行定期备份,并确保备份与主系统隔离。

l及时更新
确保操作系统和安全软件始终保持最新状态,以获取最新的安全补丁。

对于企业及组织

l实施终端检测与响应(EDR)解决方案
部署能够检测内存注入和无文件攻击的现代EDR工具。

l应用PowerShell约束语言模式
限制PowerShell的执行能力,减少被恶意脚本利用的可能性。

l禁用不必要的组件
特别是阻止MSHTA等LOL类常被滥用的组件在无正当业务需求的环境中运行。

l加强网络监控
设置检测与阻断疑似C2通信的网络监控机制,特别关注分块数据传输模式。

l开展安全意识培训
定期为员工提供有针对性的安全意识培训,提高对社会工程学攻击的识别能力。

l实施零信任架构
采用以身份为中心的安全模型,要求所有访问请求进行严格验证。

360拦截

此外,安装了360客户端的用户请确保360的正常开启。360无需升级便可直接对该木马进行有效拦截。

图12. 360安全大脑拦截mshta.exe加载恶意脚本行为

同时,360也可通过扫描对带有恶意代码的混合格式文件进行识别和查杀。

图13. 安全卫士扫描并识别带有恶意代码的混合格式文件


ghfccdd 发表于 2025-4-28 00:40

发现木马原包,怎么上传到360杀毒软件

360fans_7071449 发表于 2025-7-8 11:09

防护建议

基于对Lumma Stealer攻击链的分析,我们提出以下防护建议来帮助组织和个人有效防范此类威胁:

对于个人用户

l提高警惕性
对任何要求复制执行命令行的网站保持高度警惕,尤其是看似合法的CAPTCHA验证页面。

l使用密码管理器
采用安全的密码管理解决方案,避免在浏览器中保存敏感凭证。

l启用两步验证
对重要账户使用复杂密码并启用双因素认证

l定期备份
对关键数据进行定期备份,并确保备份与主系统隔离。

l及时更新
确保操作系统和安全软件始终保持最新状态,以获取最新的安全补丁。

对于企业及组织

l实施终端检测与响应(EDR)解决方案
部署能够检测内存注入和无文件攻击的现代EDR工具。

l应用PowerShell约束语言模式
限制PowerShell的执行能力,减少被恶意脚本利用的可能性。

l禁用不必要的组件
特别是阻止MSHTA等LOL类常被滥用的组件在无正当业务需求的环境中运行。

l加强网络监控
设置检测与阻断疑似C2通信的网络监控机制,特别关注分块数据传输模式。

l开展安全意识培训
定期为员工提供有针对性的安全意识培训,提高对社会工程学攻击的识别能力。

l实施零信任架构
采用以身份为中心的安全模型,要求所有访问请求进行严格验证。
{:19_584:}{:19_584:}
页: [1]
查看完整版本: 虚假CAPTCHA投递Lumma Stealer窃密木马