当怪物开始攻击:追踪TA585及其武器库
关键发现
TA585是Proofpoint最近命名的复杂网络犯罪威胁组织。它运营着从基础设施到电子邮件投递再到恶意软件安装的完整攻击链。 该组织在不断变化的网络犯罪威胁环境中展现出创新能力,具有独特的网页注入活动和复杂过滤机制。 TA585经常投递MonsterV2,这是一种在网络犯罪论坛上出售的具有多种功能的恶意软件。它并非由TA585出售,且有多个网络犯罪客户。 MonsterV2具有远程访问木马(RAT)、加载器和窃密器的能力。它避免感染独联体(CIS)国家的计算机。
概述
随着网络犯罪环境不断创新,新的威胁组织和能力正在涌现。新的网络犯罪威胁组织TA585以高度复杂的方式运作,并投递各种恶意软件,包括最近发布的MonsterV2。 MonsterV2被宣传为远程访问木马(RAT)、窃密器和加载器。与同类恶意软件家族相比,它价格昂贵,仅被少数组织使用,包括TA585。Proofpoint研究人员于2025年2月首次观察到它在黑客论坛上出售。 TA585的显著特点是它似乎拥有完整的攻击链和多种投递技术。TA585管理自己的基础设施、投递和恶意软件安装,而不是利用其他威胁组织——如支付分发费用、从初始访问经纪人购买访问权限或使用第三方流量投递系统。网络犯罪及其支持生态系统的演变使得威胁环境堪比现代就业市场和"零工经济"。然而,TA585打破了这种趋势,拥有并管理其几乎所有的商业模式,除了最终恶意软件是从MaaS(恶意软件即服务)获取的,如Lumma Stealer、Rhadamanthys或MonsterV2。 本报告详细介绍了新命名的TA585以及被多个组织使用的MonsterV2恶意软件。虽然TA585是MonsterV2的一个客户,但它不是恶意软件作者,多个威胁组织在活动中使用它。
活动详情
政府冒充
Proofpoint于2025年2月下旬首次观察到MonsterV2在一个利用美国国税局(IRS)主题诱饵的活动中。消息包含链接到PDF的URL,该PDF将在浏览器中打开。PDF链接到一个使用ClickFix技术的网页,该技术由Proofpoint于2024年6月命名,诱使访问者在Windows运行框或PowerShell终端中手动运行恶意命令。
如果用户按照指示复制并粘贴PowerShell脚本,它将执行第二个PowerShell脚本,最终导致MonsterV2。 Proofpoint在2025年3月观察到另外两个美国政府主题的MonsterV2活动,一个冒充IRS,第二个冒充小企业管理局。这两个活动都包含不到200条消息,主要针对金融和会计公司。这些活动均未归因于已跟踪的威胁组织。
TA585活动
2025年4月,Proofpoint研究人员调查了一个有趣的向量:基于域名和基础设施的独特网页注入和活动,我们将其命名为"CoreSecThree"。该组织注册并维护自己的域名,并使用Cloudflare托管基础设施。初始活动投递Lumma Stealer,但该组织于2025年5月初开始使用MonsterV2。 TA585活动通常通过被入侵的网站分发。Proofpoint通过沙箱分析来自商务电子邮件消息的URL来检测威胁,这些URL指向已遭入侵的合法网站,这些网站被用于向选定的访问者提供恶意软件。尽管发送者和网站所有者都可能无意造成伤害,但这些网站已被恶意JavaScript注入入侵。此注入导致网站加载恶意脚本,在今年的活动中,该脚本用于创建被入侵网站的覆盖层,以呈现假的CAPTCHA(ClickFix),指示用户验证他们是人类。与一些依赖第三方流量分发系统的其他网页注入活动不同,TA585进行自己的过滤和检查,以确保真实的人收到有效载荷。
此攻击链能够对用户的"Win+R"活动做出反应,并在完成后从网站获得实际"反应"。一旦用户点击"验证您是人类",他们将被提示完成"Win+R"操作:
按照说明将启动PowerShell命令,下载并执行恶意软件。同时,页面开始向诱饵服务器重复发送信号,该服务器将回复:“Access denied”,直到PowerShell脚本完成下载和运行,并且恶意软件从加载网页的同一IP地址向有效载荷服务器报到。然后用户被重定向到实际网站(带有/?verified=true)。
Proofpoint观察到上述JavaScript注入和基础设施(intlspring[.]com)投递两种不同的恶意软件有效载荷:MonsterV2和Rhadamanthys。
GitHub主题活动
虽然TA585恶意软件有效载荷的大部分通过网页注入分发,但Proofpoint也观察到通过电子邮件投递,例如来自GitHub的通知,这是由于威胁组织在包含指向组织控制网站URL的虚假安全通知中标记GitHub用户。第三方研究人员观察到通过恶意广告投递的TA585活动。 2025年8月,Proofpoint发现了一个独特的TA585攻击链,利用GitHub通知投递Rhadamanthys。我们首先发现了ANY.RUN关于ClickFix投递Rhadamanthys的帖子,并开始调查。 我们发现了启动攻击链的GitHub通知电子邮件。这些电子邮件很可能是由威胁组织在组织控制的存储库中创建带有虚假安全警告的问题,然后标记合法账户,这些账户收到他们被标记的通知,并带有问题的文本。
通知包含指向组织控制网站的缩短URL。与TA585典型的网页注入活动一样,该网站执行过滤功能,如果通过这些检查,访问者将被重定向到一个呈现假的GitHub品牌CAPTCHA的网站,指示用户验证他们是人类。
按照说明启动了一个命令,下载并执行Rhadamanthys。
MonsterV2恶意软件详情
MonsterV2被宣传为RAT、窃密器和加载器。它功能齐全,具有许多能力,使其在入侵期间执行各种功能。Proofpoint观察到MonsterV2主要作为窃密器或作为加载器,投放诸如StealC Version 2之类的恶意软件。虽然Proofpoint观察到TA585使用MonsterV2,但它也被其他网络犯罪威胁组织使用。 MonsterV2具有以下能力:
- 能够枚举和窃取敏感信息,如浏览器和登录数据、信用卡和加密货币钱包信息、登录数据、以及诸如Steam、Telegram和Discord等服务的令牌、文件和文档,以及其他典型的信息窃密器数据
- 查看受感染系统的桌面并录制网络摄像头
- 剪切器功能(基本上用威胁组织提供的地址替换受感染系统剪贴板中的加密货币地址)
- HVNC(隐藏虚拟网络计算)–允许威胁组织建立到受感染系统的远程桌面类连接,提供图形用户界面访问,而不提醒受感染系统的用户
- 从其C2接收和执行各种命令
- 下载并执行其他有效载荷
- 避免感染CIS国家:俄罗斯、白俄罗斯、乌克兰、哈萨克斯坦、乌兹别克斯坦、土库曼斯坦、吉尔吉斯斯坦、亚美尼亚、塔吉克斯坦、摩尔多瓦、拉脱维亚、立陶宛和爱沙尼亚
MonsterV2已在犯罪黑客论坛上广告,如下面帖子摘录所示:
以下是MonsterV2原始广告的翻译摘录(来自俄语,使用Google翻译):
- 开发中使用的语言:C++用于客户端(构建),Go和TypeScript用于服务器逻辑和面板
- 构建中内置了RAII包装器,覆盖整个句柄和指针,以防止内存泄漏和UB
- 凡是使用线程的地方,都遵守线程安全概念
- 自编写的混淆器和通过直接修改AST的源代码生成器
- 构建不依赖各种额外安装的运行时,即使在干净系统上也能运行
- 自动权限提升和现代方法以逃避检测
- 在发布前,代码经过清理器、linter和自动测试。覆盖率接近100%
- 功能测试在尽可能接近"现场"条件的真实机器上进行
- 创建架构的专业方法,确保高可扩展性和性能
- 当前模块列表:文件管理器、进程管理器、常驻加载器、网络摄像头录像器、远程桌面(HVNC)、远程CMD/PowerShell(阅读下面每个模块的描述;模块数量将随着项目更新而增加)
- 使用原始TCP连接与C2服务器通信,并带有交换加密密钥的小型附加层,具有双向认证(类似于SSL/TLS)
- 如果连接丢失,机器人将尝试恢复连接(重连)
- 面板以方便和极简的风格编写,使用户不会分心,同时保持良好的UX
- 面板支持俄语和英语本地化
- 实时UI更新
- 一键安装和直观设置
恶意软件以分层选项出售,定价为一周、两周或一个月使用。“标准"版本每月800美元,而包括窃密器、加载器、HVNC和HCDP(Chrome开发者工具)的"企业"版本每月2000美元。与另一个常见的窃密器相比,Rhadamanthys广告价格为每月199美元。 Proofpoint观察到MonsterV2正在积极维护和更新,即使是微小和"表面"的更新。例如,Proofpoint在恶意软件的早期版本中发现了以下字符串(其中单词"terminate"拼写错误):
这在恶意软件的后期版本中得到了修复:
行为
分析师注意:在执行之前,MonsterV2可能通过另一个名为SonicCrypt的恶意软件解密和加载。此加密器将在本报告后面详细说明。 一旦在目标系统上执行,MonsterV2执行以下操作:
初始化
它首先解密并解析它需要的几个Windows API函数。每个库和函数名字符串使用唯一的ChaCha20密钥解密,这使反向工程和静态分析复杂化。ChaCha20功能将在本报告后面讨论。 接下来,MonsterV2尝试提升其在系统上的权限,通过请求许多权限,例如以下(此列表不 exhaustive)。这些权限也暗示了恶意软件的功能:
- SeDebugPrivilege - 获得此权限的进程可能能够读取和修改其他进程的内存、提升权限和绕过安全控制等。这是恶意软件可能请求的常见权限
- SeTakeOwnershipPrivilege – 具有此权限的进程可以修改对象权限并有效绕过限制,通常在权限提升场景中利用
- SeIncreaseBasePriorityPrivilege - 允许更改进程的基本优先级,影响其CPU调度
- SeIncreaseWorkingSetPrivilege - 允许提高进程的工作集,为其操作分配更多物理内存,并提高性能
- SeSecurityPrivilege - 需要查看/编辑安全事件日志
- SeShutdownPrivilege - 让进程关闭系统
此外,MonsterV2将可选地在受感染系统上创建互斥体,格式为"Mutant-<unique_id_64_characters>"。这里有一些例子:
- Mutant-5B7C3E6F9D8A1F42BCDE0347FA8C9E12D13A4597628F6BD57C4E81A9670D3F5A
- Mutant-A8F1D32C497EB560C9A21D87F34EB70591D2C864EAF53BD7906C12F8D4E39BAF
- Mutant-93D8FE2065BCA71BEF2486AD7FA0C935ECC27104ABF9E6531875F22CB40D9E8F
这种互斥体创建和格式是威胁狩猎的良好指标。
配置解密
然后MonsterV2解密其配置,该配置在二进制文件中存储为加密blob。配置使用ChaCha20解密,然后使用嵌入的ZLib解压缩库解压缩。恶意软件似乎利用LibSodium(https://doc[.]libsodium[.]org/)库进行加密/解密。 以下是一些解密的MonsterV2配置示例:
在我们分析的后期样本中,MonsterV2支持多个C2,也以域的形式,而不仅仅是IP地址:
配置由以下值组成:
| 值 | 描述 |
|---|---|
| anti_dbg | 如果设置为"True”,恶意软件尝试检测和规避使用中的调试器。在我们分析的样本中,我们未见证此值为"False"以外的任何值 |
| anti_sandbox | 如果设置为"True",恶意软件尝试检测沙箱并执行一些基本的反沙箱技术。在我们分析的样本中,我们未见证此值为"False"以外的任何值 |
| aurotun (“autorun"的拼写错误) | 如果设置为"True”,恶意软件尝试建立持久性 |
| build_name | 恶意软件的构建名称,可用于聚类活动和潜在威胁组织 |
| disable_mutex | 如果设置为"True",恶意软件不在主机上创建互斥体 |
| ip / port | C2 IP和端口。IP字段可以包含多个IP地址或域 |
| priviledge_escalation (另一个拼写错误) | 如果设置为"True",恶意软件尝试提升其权限 |
| kx_pk / seal_pk / sign_pk | 可能与C2服务器和恶意软件客户端之间通信的加密、认证和完整性相关的密钥或密钥材料。另见后面"收集系统信息"部分。 |
如前所述,配置使用ChaCha20解密。整体过程如下所示:
- 恶意软件读取其配置之前的头32字节(头部),这被用作生成ChaCha20解密密钥的密钥材料。
- 此密钥材料与嵌入在恶意软件中的硬编码"主密钥"数据结合,用于派生ChaCha20解密密钥和nonce。
- ChaCha20被初始化以解密配置。ChaCha20可以通过常量"expand 32-byte k"在内存中识别,并且生成的ChaCha20密钥、计数器和nonce可以在常量后的内存中看到:
- 加密的配置blob使用派生的ChaCha20密钥和nonce解密。生成的解密配置blob是ZLib压缩的(78 9C是典型的ZLib头部):
- 然后压缩的配置blob在内存中解压缩,产生配置:
这是一个使用提供的密钥和nonce解密MonsterV2配置的Python脚本:
[Python脚本代码]
收集系统信息
在MonsterV2解密其配置后,它尝试联系其C2服务器。它将持续尝试此连接,直到成功连接到C2或恶意软件进程终止。连接到C2后,它发送以下信息:
| 值 | 描述 |
|---|---|
| version | MonsterV2恶意软件的版本 |
| build_name | 恶意软件的构建名称,来自配置 |
| pk | 可能是用于恶意软件客户端和C2之间安全通信的公钥或密钥材料 |
| ad | 可能用作发送到C2的数据的完整性保护,以确保数据在传输到C2之前或期间不被操纵 |
| geo | 受感染系统的地理位置,例如巴西的"BR" |
| sign | 可能与"ad"一起用于支持认证和数据完整性 |
| compression | 可能用于通知C2受感染系统支持的数据压缩方法 |
| os | 操作系统版本 |
| uuid | 分配给受感染系统的唯一ID,与我们之前讨论的Mutex值相同 |
| os_name | 受感染系统的操作系统 |
| user_name | 受感染系统的用户名 |
| computer_name | 受感染系统的计算机名 |
| ip | 受感染系统的外部IP地址 |
这些数据作为结构存储在堆栈内存中,然后进行base-64编码并发送到C2服务器。
命令与控制
在连接到C2之前,恶意软件联系api[.]ipify[.]org以获取受感染系统的IP/位置,并可能作为互联网连接测试。如果成功,恶意软件向其C2发送初始连接请求。此后,恶意软件将先前收集的受感染系统信息发送到C2(见收集系统信息部分)。 来自C2的响应可能故意臃肿,可达几兆字节。C2响应可以包含向客户端发出命令的命令与控制指令,或者可以包含另一个有效载荷(更多内容见后)。基于代码分析,C2命令似乎按以下方式处理:
- C2响应通过原始套接字接收,使用WSARecv Windows API函数。
- 接收的数据进行Base64解码,使用ChaCha20算法解密,并进行ZLib解压缩(类似于我们之前概述的配置解密)。
- 数据被格式化并处理成类似JSON的结构。此结构根据C2控制器发送的命令而不同,但这里是该结构的通用示例:
“flags"成员可能包含与命令相关的各种标志或其他数据。“data"成员可能包含支持命令的有效载荷数据。例如,对于与文件操作相关的C2命令,此有效载荷可能包含文件路径列表。 4. 处理的命令和数据被分派到命令处理函数。 恶意软件的命令处理函数支持来自C2服务器的大量命令。这些命令包括但不限于以下:
- 终止恶意软件的进程并清理(删除其文件和互斥体等)
- 执行信息窃密器功能并将数据窃取到C2
- 执行任意命令行命令(cmd[.]exe, PowerShell命令)
- 终止、挂起和恢复目标进程。这可能用于规避端点防御
- 建立到受感染系统的HVNC连接
- 截取受感染系统桌面的截图
- 启动键盘记录器
- 枚举、操作、复制和窃取文件
- 关闭或崩溃(BSOD)受感染系统
- 下载并执行另一个有效载荷
其他有效载荷的投递和加载
Proofpoint多次目睹MonsterV2加载StealC V2信息窃密器以及Remcos远程访问木马(RAT)。然而,此活动与TA585无关。值得注意的是,对于StealC,MonsterV2有效载荷被配置为使用与丢弃的StealC有效载荷相同的C2服务器。
SonicCrypt加密器详情
Proofpoint观察到MonsterV2通常使用SonicCrypt打包,这是一个用C++编写的加密器,在forum[.]exploit[.]in上广告:
以下是上述内容的翻译(由Google翻译提供): 现代技术加密具有许多功能、快速清理和专业支持。我向您展示任何预算的新级别加密。加密提供广泛的功能选择:
- 用现代C++编写,带有自定义源代码变异器,允许您在眨眼间清理签名
- 支持将您的文件添加到启动项
- 支持将您的文件添加到Windows Defender例外
- 如果您的文件需要管理员权限才能工作,加密支持绕过UAC的能力
- 运行本机和.NET文件
- 支持两种位深度:32和64位
- competent支持将帮助您为您的独特流量源选择配置
- 加密不削减 knockout 百分比,不干扰加密文件的运行
- 通常加密过程不超过30分钟,但在特殊情况下可能达到12小时
- 支持的加密定制:图标、清单、程序集信息、膨胀(泵)
费率: 公共 $50 - 标准文件加密。稳定性设计为5-7个客户端,无保修期。可能的功能:图标、清单、程序集信息、膨胀(泵)、UAC绕过 私有 $100 - 私有加密文件。稳定性设计为最多3人;稳定性的保修期,当您可以要求重新加密时,为4天。公共费率的所有优势 + 自动运行 + Windows Defender例外 独特 $150 - 独特加密文件。稳定性设计为最多1人,稳定性的保修期为6天。私有的所有优势,但每个客户端获得独特的稳定性
恶意软件分析
SonicCrypt打包的可执行文件故意臃肿,因此包含大量垃圾代码,使得静态分析困难。在SonicCrypt样本中,此代码不一致,可能是为逃避静态检测而生成的:
恶意软件的一般流程可以在以下代码示例中看到:
- 运行初始规避和环境检查(稍后详述)。
- 创建将写入解密有效载荷的文件。文件以类似主题命名,如"WinHealth[.]exe"或"WindowsSecurity[.]exe”。
- 有效载荷被解密并写入此文件。
- 在我们分析的样本中,有效载荷使用任务调度程序执行。
这里是演示此行为的两个代码示例。 示例1:
[代码示例1]
示例2:
[代码示例2]
反分析检查
在解密和加载其有效载荷之前,SonicCrypt运行几个检查,包括:
- 检查RAM量
- 检查受感染系统的BIOS制造商(在某些情况下为"GenuineIntel"或"AuthenticAMD”)
- 一些样本检查BIOS版本
- 根据配置,SonicCrypt可能尝试将丢弃的Exe文件添加为Defender例外。
通过这些检查后,加密器解密有效载荷,将其写入磁盘上的文件,并通过TaskScheduler COM对象(CLSID: CLSID_TaskScheduler)执行有效载荷可执行文件。进程行为树将如下所示:
结论
TA585是一个独特的威胁组织,具有高级的目标定位和投递能力。随着网络犯罪威胁环境的不断变化,TA585采用了有效的过滤、投递和恶意软件安装策略。其偏爱的有效载荷之一是MonsterV2,这种恶意软件可能正在填补犯罪生态系统中的空白,尤其是在其他恶意软件如Lumma Stealer遭到执法机构高调打击之后。Proofpoint预计我们将继续看到新的恶意软件家族出现,其中许多将包含多种能力集成于一个恶意软件中。 Proofpoint建议培训用户识别ClickFix技术,并防止非管理员用户执行PowerShell。
新兴威胁规则
2061200 – MonsterV2窃密器CnC签到
危害指标(IoC)
| 指标 | 描述 | 首次出现 |
|---|---|---|
| SHA256: ccac0311b3e3674282d87db9fb8a151c7b11405662159a46dda71039f2200a67 C2: 139.180.160[.]173 Port: 7712 | MonsterV2 SHA256文件哈希、C2和端口 | 2025-02-22 |
| SHA256: 666944b19c707afaa05453909d395f979a267b28ff43d90d143cd36f6b74b53e C2: 155.138.150[.]12 Port: 7712 | MonsterV2 SHA256文件哈希、C2和端口 | 2025-03-08 |
| SHA256: 7cd1fd7f526d4f85771e3b44f5be064b24fbb1e304148bbac72f95114a13d8c5 C2: 83.217.208[.]77: Port: 7712 | MonsterV2 SHA256文件哈希、C2和端口 | 2025-05-12 |
| SHA256: 0e83e8bfa61400e2b544190400152a54d3544bf31cfec9dda21954a79cf581e9 C2: 83.217.208[.]77 Port: 7712 | MonsterV2 SHA256文件哈希、C2和端口 | 2025-05-19 |
| SHA256: d221bf1318b8c768a6d824e79c9e87b488c1ae632b33848b638e6b2d4c76182b C2: 91.200.14[.]69 Port: 7712 | MonsterV2 SHA256文件哈希、C2和端口 | 2025-05-26 |
| SHA256: 69e9c41b5ef6c33b5caff67ffd3ad0ddd01a799f7cde2b182df3326417dfb78e C2: 212.102.255[.]102 Port: 7712 | MonsterV2 SHA256文件哈希、C2和端口 | 2025-06-02 |
| SHA256: 6237f91240abdbe610a8201c9d55a565aabd2419ecbeb3cd4fe387982369f4ae C2: 84.200.154[.]105 Port: 7712 | MonsterV2 SHA256文件哈希、C2和端口 | 2025-06-09 |
| SHA256: b36aac2ea25afd2010d987de524f9fc096bd3e1b723d615a2d85d20c52d2a711 C2: 144.172.117[.]158 Port: 7712 | MonsterV2 SHA256文件哈希、C2和端口 | 2025-06-16 |
| SHA256: 912ef177e319b5010a709a1c7143f854e5d1220d176bc130c5564f5efe8145ed C2: 109.120.137[.]128: Port: 7712 | MonsterV2 SHA256文件哈希、C2和端口 | 2025-06-23 |
| SHA256: ba72e8024c90aeffbd56cdf2ab9033a323b63c83bd5df19268978cded466214e C2: 84.200.17[.]240 Port: 7712 | MonsterV2 SHA256文件哈希、C2和端口 | 2025-06-30 |
| SHA256: e7bcd70f0ee4a093461cfb964955200b409dfffd3494b692d54618d277cb309e C2: 84.200.77[.]213 Port: 7712 | MonsterV2 SHA256文件哈希、C2和端口 | 2025-07-15 |
| SHA256: 399d3e0771b939065c980a5e680eec6912929b64179bf4c36cefb81d77a652da C2: 79.133.51[.]100 Port: 7712 | MonsterV2 SHA256文件哈希、C2和端口 | 2025-09-01 |
| 98f647eada829bad4d30594496953ddc788c06044f949514e43c3532a83f79e2 | TA585规避 | 2025-04-14 |