文章总结: 本文详细分析了ToddyCatAPT组织升级的邮件窃取技术,包括三种主要攻击手段:TomBerBilPowerShell变种用于从浏览器提取Cookie和密码,TCSectorCopy工具用于复制被锁定的OutlookOST文件,以及SharpTokenFinder工具用于获取Microsoft365访问令牌。文章提供了针对这些攻击的详细检测方案,建议企业部署终端保护平台和复合型威胁监测系统,并配置相应的审计规则来监控异常文件访问行为。
综合评分: 88
文章分类: 威胁情报,漏洞分析,恶意软件,红队,安全运营
【APT REPORTS】ToddyCat:您的专属隐藏式邮件助手(第一部分)
原创
卡巴斯基
卡巴斯基威胁情报
2025年12月12日 13:00
北京
引言
电子邮件仍是企业内部商务沟通的主要方式。其部署方式分为两类:一是通过本地部署基础设施(例如部署微软 Exchange 服务器),二是借助微软 365、Gmail 等云邮件服务。不过,部分企业会限制对云邮件的域级访问权限 —— 这意味着,即便攻击者攻陷了企业域名,也无法自动获取邮件通信内容,必须通过额外技术手段才能窃取相关信息。
本研究详细阐述了 ToddyCat 高级持续性威胁(APT)组织如何升级攻击手段,以隐蔽方式获取目标企业员工的商务邮件权限。报告第一部分将复盘 2024 年下半年至 2025 年初发生的相关安全事件;第二部分则深入解析攻击者研发的新型攻击向量:该攻击利用用户浏览器获取 OAuth 2.0 授权令牌,即便在已攻陷基础设施的防护边界之外,仍可通过这些令牌非法访问企业邮箱。
有关该威胁的更多详情(含入侵指标),卡巴斯基情报报告服务(Kaspersky Intelligence Reporting Service)的客户可随时获取。联系方式:[email protected]。
TomBerBil PowerShell 变种
在之前发布于 ToddyCat 群组的文章中,我们介绍过 TomBerBil 工具家族 —— 这类工具专为从用户主机的浏览器中提取 Cookie 和已保存密码而设计,其原始版本采用 C# 和 C++ 编写。
然而,通过对 2024 年 5 月至 6 月期间相关事件的分析,我们发现了一个采用 PowerShell 实现的新变种。该变种保留了早期样本的核心恶意功能,但采用了不同的实现方式,并新增了多项命令。
此版本的核心特征在于,它以特权用户身份在域控制器上执行,通过 SMB 协议借助网络共享资源访问浏览器文件。
除支持 Chrome 和 Edge 浏览器外,该新版本还新增了对 Firefox 浏览器文件的处理能力。
该工具通过计划任务启动,执行的命令行如下:
该脚本首先创建一个新的本地目录(路径通过 $baseDir 变量指定),工具收集到的所有数据均会保存至该目录中。
该脚本定义了一个名为 parseFile 的函数,接受文件完整路径作为参数。它通过 .NET Framework 类打开 C:\programdata\uhosts.txt 文件并逐行读取内容,将结果以字符串数组形式返回 —— 脚本正是通过这种方式生成主机名数组的。
针对数组中的每台主机,该脚本尝试与共享资源 \\c$\users\。若连接成功,工具将获取远程主机上的用户目录列表;若检测到至少一个用户目录,会在 $baseDir 工作目录下为该主机创建独立文件夹:
进入下一阶段后,该脚本会遍历远程主机上发现的用户文件夹,跳过启动工具时定义的 $filter_users 变量中指定的所有文件夹。对于剩余文件夹,脚本会在其工作目录下创建三个目录,分别用于收集谷歌 Chrome、火狐 Firefox 和微软 Edge 浏览器的数据。
接下来,该工具会使用默认账户在远程主机上搜索以下 Chrome 和 Edge 浏览器文件:
・登录数据文件(Login Data):数据库文件,以加密格式存储用户为网站保存的登录名和密码
・本地状态文件(Local State):JSON 格式文件,包含用于加密存储数据的密钥
・Cookie 文件(Cookies):数据库文件,存储用户访问过的所有网站的 HTTP Cookie
・历史记录文件(History):数据库文件,存储浏览器的浏览历史
这些文件通过 SMB 协议复制到本地文件夹中,且保持与原用户、浏览器对应的目录层级结构。以下是复制登录数据文件(Login Data)的代码片段:
该工具对 Firefox 浏览器文件采用相同处理流程,额外遍历浏览器的所有用户配置文件文件夹。与针对 Chrome 和 Edge 浏览器时搜索上述文件不同,该脚本会查找文件名存在于 $firefox_files 数组中、且包含相似信息的文件,并将目标文件同样复制到工具的本地文件夹中。
已复制的文件通过数据保护 API(DPAPI)进行加密。TomBerBil 早期版本在用户主机上运行并复制用户令牌,因此在用户当前会话中,可通过 DPAPI 解密主密钥,进而解密相关文件。而 TomBerBil 的服务器端更新版本会复制存储 DPAPI 所用用户加密密钥的文件 —— 攻击者借助这些密钥,结合用户的安全标识符(SID)和密码,即可在本地解密所有已复制的文件。
攻击者通过 TomBerBil 工具自动收集用户的 Cookie、浏览历史记录和已保存密码,同时复制解密浏览器文件所需的加密密钥。该工具通过 SMB 协议与受害者的远程主机建立连接,这一特性显著增加了其活动的检测难度。
TomBerBil PowerShell 变种
通常情况下,此类工具会在攻击后期部署 —— 此时攻击者已在组织内部基础设施中建立持久控制,并获取了特权访问权限。
检测方案
要检测此类攻击的实施,需配置浏览器文件夹访问审计,并监控针对这些文件夹的网络协议连接尝试。
此外,还需对存储 DPAPI 加密密钥文件的文件夹访问行为进行审计。
窃取 Outlook 邮件
经检测,修改后的 TomBerBil 工具家族未能有效规避监控工具,迫使威胁行为者寻求其他方式获取企业核心数据。我们发现其试图访问本地 Outlook 存储中的企业通信文件。
Outlook 应用会生成 OST(离线存储表)文件用于离线使用,文件名包含被缓存的邮箱地址。该文件用于存储与邮件服务器(Microsoft Exchange、Microsoft 365 或Outlook.com)同步的数据本地副本,支持用户在离线状态下处理邮件、日历、联系人等信息,联网后即可与服务器同步变更内容。
但 Outlook 运行期间会锁定 OST 文件的访问权限。为实现文件拷贝,攻击者专门开发了一款名为 TCSectorCopy 的工具。
TCSectorCopy 工具
该工具专为逐块复制那些应用程序或操作系统可能无法访问的文件而设计,例如使用中处于锁定状态的文件。
此工具是一个采用 C++ 编写的 32 位可执行文件(PE 文件)。启动后,它会处理通过命令行传入的参数:待复制的源文件路径以及结果文件的保存路径,随后会验证源路径与目标路径是否不一致。
验证 TCSectorCopy 命令行参数
接下来,该工具会收集待复制文件所在磁盘的相关信息:确定簇大小、文件系统类型,以及底层读取所需的其他参数。
检测磁盘文件系统类型
TCSectorCopy 工具随后以只读模式将磁盘作为设备打开,并通过逐块顺序复制文件内容的方式绕过标准 Windows API。这一设计使该工具即便面对被系统或其他应用程序锁定的文件,也能成功完成复制操作。
攻击者已将该工具上传至目标主机,并利用其复制用户的 OST 文件:
攻击者获取 OST 文件后,通过一款独立工具对其进行处理,以提取电子邮件通信内容。
XstReader
XstReader 是一款开源的 C# 工具,用于查看和导出 Microsoft Outlook OST 及 PST 文件的内容。攻击者利用该工具导出了此前复制的 OST 文件数据。
该工具的执行需携带 -e 参数及复制文件的路径。其中 -e 参数用于指定将所有邮件及其附件,以 HTML、RTF 和 TXT 三种格式导出至当前文件夹。
攻击者从 OST 文件导出数据后,会查看获取到的文件列表,将目标文件整理归档,随后将该压缩包外传泄露。
利用 TCSectorCopy 与 XstReader 窃取数据
检测方案
要检测对 Outlook OST 文件的未授权访问,需为 %LOCALAPPDATA%\Microsoft\Outlook\ 文件夹配置审计规则,并监控扩展名为 .ost 的文件访问事件。审计范围需排除 Outlook 进程及其他合法使用该文件的进程。
TCSectorCopy 工具通过磁盘设备访问 OST 文件,因此要检测该工具,关键需监控 Sysmon 中的事件 ID 9(RawAccessRead,即原始访问读取)等相关事件。此类事件表明存在绕过文件系统、直接从磁盘读取数据的行为。
如前所述,TCSectorCopy 工具通过命令行接收 OST 文件路径。因此,检测该工具的恶意活动,需监控特定的 OST 文件命名模式:文件名中包含 @符号且以.ost 为扩展名。
在卡巴斯基 KATA 中检测 TCSectorCopy 活动的示例
窃取 Outlook 访问令牌
由于在主机上执行的主动文件收集操作易被监控系统追踪,攻击者的下一步行动是获取未部署监控的主机外的邮件访问权限。部分目标组织使用了 Microsoft 365 云办公套件,攻击者因此尝试获取该云服务相关进程内存中存储的访问令牌。
Microsoft 365 采用 OAuth 2.0 协议进行授权,访问令牌是向服务器请求资源的核心凭证。在 Outlook 中,API 向云服务发起邮件及附件获取请求时,必须携带该令牌。尽管访问令牌存在有效期较短的特点,但足以让攻击者在绕过监控工具的情况下,窃取邮箱中的全部邮件数据。
访问令牌遵循 JWT(JSON Web 令牌)标准存储,其内容通过 Base64 编码。微软应用的 JWT 头部均以typ参数指定JWT值,这意味着编码后的令牌前 18 个字符始终保持固定。
攻击者通过 SharpTokenFinder 工具获取用户 Outlook 应用中的访问令牌。该工具基于 C# 开发,专为检索 Microsoft 365 套件相关进程中的访问令牌设计。工具启动后,会在系统中搜索以下进程:
“TEAMS”
“WINWORD”
“ONENOTE”
“POWERPNT”
“OUTLOOK”
“EXCEL”
“ONEDRIVE”
“SHAREPOINT”
若检测到这些进程,该工具会通过 OpenProcess 函数尝试打开每个进程对象并转储其内存数据。具体实现方式为:工具从 dbghelp.dll 文件中导入 MiniDumpWriteDump 函数,该函数可将用户模式迷你转储信息写入指定文件。转储文件会保存至当前 SharpTokenFinder 目录下的 dump 文件夹中。在为目标进程生成转储文件后,工具会在每个文件中搜索以下字符串模式:
该模板利用了已编码 JWT 令牌的前六个字符 —— 这些字符是固定不变的。JWT 令牌的结构由点号分隔,仅凭这一特征,即可在进程内存转储文件中找到所需字符串
JWT 令牌示例
在本次描述的事件中,本地安全工具(终端防护软件 / EPP)拦截了通过 SharpTokenFinder 工具创建 OUTLOOK.exe 进程转储的操作,因此攻击者转而使用 Sysinternals 套件中的 ProcDump 工具实现该目的:
以下是贴合信息安全场景的专业中文译文,兼顾技术准确性与传播可读性:
在此过程中,攻击者执行了 ProcDump 工具并使用以下参数:
・ accepteula:静默接受许可协议,不显示协议窗口(无需用户交互)。
・ ma:生成完整的进程转储文件(包含进程全部内存数据)。
・ exe:指定待转储的进程名称(此处需替换为实际进程名,原文为占位符)。
随后执行dir命令进行校验,确认目标文件已创建且非零大小。验证通过后,使用 WinRAR 将该文件压缩为dmp.rar归档包,攻击者通过 SMB 协议将此文件发送至其控制的主机。
检测方案
要检测此类攻击技术,需监控 ProcDump 进程的命令行参数,重点识别与 Microsoft 365 应用进程相关的进程名。
以下是 Sysinternals 工具包中的 ProcDump 工具被用于转储 Outlook 进程内存的实例,该行为已被卡巴斯基反定向攻击解决方案(KATA)检测到。
KATA 的 Outlook 进程 dump 检测示例
关键结论
本文所分析的事件表明,ToddyCat 高级持续性威胁(APT)组织正持续迭代其攻击技术,并不断寻求新的隐蔽手段,旨在通过已入侵的基础设施获取企业通信数据。文中描述的大部分攻击技术均可被有效检测。为及时识别此类攻击手段,我们建议同时部署基于主机的终端保护平台(EPP)解决方案(如卡巴斯基企业版终端安全),以及复合型威胁监测系统(如卡巴斯基反定向攻击系统)。如需获取全面、实时的威胁信息及相应检测规则,建议参考卡巴斯基威胁情报服务。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:卡巴斯基威胁情报 《【APT REPORTS】ToddyCat:您的专属隐藏式邮件助手(第一部分)》