
Tycoon 2FA钓鱼套件是一个复杂的钓鱼即服务平台,于2023年8月出现,旨在绕过双因素认证和多因素认证保护,主要针对Microsoft 365和Gmail账户。它采用中间人攻击方式,利用反向代理服务器托管模仿合法登录界面的钓鱼页面,实时捕获用户凭据和会话cookie。根据Any.run恶意软件趋势追踪器的数据,Tycoon 2FA今年报告的事件超过64,000起。
这使得攻击者能够窃取认证代码并访问受害者账户,即使启用了双因素认证。
Tycoon 2FA活动具体针对:
与Tycoon 2FA活动相关的钓鱼链接通过多种旨在欺骗用户的方散播。攻击者通过以下方式分享这些链接:
这些重定向前检查是钓鱼套件防御检测的关键部分,包括:
Tycoon 2FA钓鱼套件利用样板模板,根据微软服务器的响应动态生成虚假登录页面。其中一个模板会提示用户输入其多因素认证代码,然后实时中继到微软的服务器,从而有效绕过这一关键的安全步骤。
Tycoon 2FA活动一个特别高级的功能是它能够理解组织的特定安全策略。通过分析登录过程中的错误信息,钓鱼套件可以定制其攻击,创建高度针对性的活动,增加成功窃取凭据的机会。
Tycoon 2FA攻击始于一个验证码检查,以过滤自动化机器人。这是确保活动仅针对真人的关键步骤。
初始的HTML页面包含一个JavaScript文件,其中有一个经过base64编码的载荷。该载荷使用LZ-string算法压缩。脚本随后使用LZ-string库解压并执行隐藏的载荷。
JavaScript 1:域名检查
攻击的第二阶段使用一种称为“DOM消失术”的技术来逃避检测。恶意JavaScript代码从文档对象模型中移除自身,但JavaScript在内存中执行,为检查页面代码的安全工具不留可见痕迹。
恶意脚本包含三个不同的base64编码载荷,每个都设计为在特定条件下运行。
载荷 1
此载荷使用异或密码进行混淆。一旦反混淆,它会投放第二阶段的载荷脚本。仅当满足特定条件时才执行此载荷:window.location.pathname.split 必须包含感叹号 (!) 或美元符号 ($)。此检查很可能使攻击者能够确认用户是通过预期的恶意文档或链接重定向,而非通过自动化的安全扫描器。美元符号 ($) 后面的字符串代表base64编码的受害者电子邮件地址。
示例URL:https://qaok5hty3.vraudo.es/ITITRt408hJWgm!5Cj/$ZmhhZ2tZWllckBwdGMuY29t
载荷 2 和 3
如果上述条件不满足,则加载以下错误页面。
JavaScript 2:邮箱提取
当脚本检测到调试器处于活动状态时,它通过替换 window.location 变量将用户重定向到 https://google.com。
如果未检测到调试器,脚本使用 window.location 属性检索当前URL以检查是否存在嵌入的电子邮件地址。
脚本执行以下操作以提取和传输数据:
WQtest@outlook.com)。/zcYbH5gqRHbzSQXiK8YtTbhpNSGtkZc6xbMyRBGazbWU8fjfq。C2服务器的响应包含下一阶段的载荷,该载荷使用AES算法和CryptoJS库加密。脚本然后解密并加载该载荷以继续攻击。
脚本由两个主要部分组成,都旨在逃避检测并交付最终载荷。
规避与重定向
脚本的第一部分使用base64编码和CryptoJS加密进行了高度混淆。当此代码被反混淆后,它会执行关键的调试器检查。如果检测到调试器,脚本立即使用 window.location.replace 将用户重定向到一个良性网站,例如 https://www.target.com。此第一个脚本通过全局Windows对象执行。
解密密载荷
如果未发现调试器,则执行脚本的第二部分。与第一部分类似,此脚本也被混淆,但它使用了base64编码、拼接和CryptoJS加密的组合。解密后,此代码负责解密并启动攻击的下一阶段——最终载荷。与第一个脚本类似,此部分也通过全局Windows对象加载和执行。
机器人检查载荷
攻击的下一阶段是一个旨在剔除自动扫描器和安全工具的机器人检查。
如果检测到机器人,它会立即尝试连接到特定的硬编码URI (https://egk1w.onkttyhqjycn.es/sunel$bqtaxtc’)。脚本然后使用 window.location.replace 参数将用户重定向到 https://www.target.com。
如果未检测到机器人,脚本使用 setTimeout 函数暂停150毫秒,然后尝试连接。脚本继续下一步,发送带有表单数据的POST请求到攻击者的端点 (../eypkDtn5lPJjyOMUrofhYfQwPk9fbGCAjUgZztc9dMlLdgv)。
JavaScript 载荷 1
脚本包含两个不同的base64载荷和Microsoft O365图形代码。
JavaScript 载荷 2
脚本包含两个不同的base64载荷:
HTML 载荷 3
脚本包含一个双重用途的组件,包括调试器检查和样板模板代码。
当受害者将其凭据输入虚假登录页面时,攻击者立即收到此信息。作为中间人,攻击者使用这些窃取的凭据向合法的微软服务器发送新的登录请求。
受害者看到的网站随后根据微软服务器的响应动态更新。网页使用以下Web部件动态更新。
根据从登录过程收到的错误信息,攻击者可以反向工程组织的特定电子邮件配置。这使他们能够创建更有效、更有针对性的钓鱼活动。
恶意JavaScript代码执行一系列操作来收集用户数据,将其传输给攻击者,然后提供一个动态的钓鱼页面。
数据收集与传输
脚本首先从用户的浏览器收集信息:
navigator.userAgent 检索用户代理字符串,该字符串提供有关浏览器和操作系统的详细信息。https://get.geojs.io/v1/ip/geo.json) 发送请求以收集用户的IP地址和国家/地区。
这些收集的数据——包括用户的地理位置和用户代理——然后使用具有硬编码密钥和IV (1234567890123456) 的CryptoJS进行加密。加密的数据被转换为二进制格式,并通过AJAX POST请求发送到攻击者的端点 (/tdwsch3h8IoKcUOkog9d14CkjDcaR0ZrKSA95UaVbbMPZdxe)。一旦用户输入其凭据,脚本会根据请求类型跟踪他们的操作:checkemail、checkpass、twofaselect 或 twofaselected。
为了识别用户的选择,为每个操作生成一个唯一的随机化模式:
checkemail: pq 或 rscheckpass: yz 或 12twofaselect: 56, 78, 或 90twofaselected: 23 或 45用户提交信息后,脚本加密窃取的密码和会话令牌,然后将它们发送到另一个攻击者控制的端点:https[:]//3eJBE8eo5f13oigGmQkDKhEkKNK9c2TlnVZPVRc16Hnhi0G4kxTsXEf2gH[.]jgcrrouu[.]es/sZzqqvSHaFLRSRFbpIgHEzUhFBimCQAHTCPYNKQFZGMAFYFZUSEVATEOXHQKEXAQDWFXJOAYHETC
攻击者作为中间人,将窃取的凭据提交给微软服务器。根据服务器的响应(例如,登录成功、密码错误或需要MFA),攻击者的服务器发回一个加密的载荷。受害者的浏览器然后解密此响应并加载适当的网页模板。这使得钓鱼尝试看起来无缝且高度可信,因为页面的行为模仿了真实的登录过程。
调试器检查
脚本首先执行用户代理检查,以查看浏览器是否被自动化工具(如PhantomJS或Burp Suite)控制。如果检测到任何这些工具,脚本立即加载一个空白页面以防止进一步分析。
检测调试器
脚本还主动尝试检测是否正在使用调试器。它检查激活浏览器调试模块的特定按键。脚本监控调试器已打开多长时间。如果已打开超过0.1秒,它假定存在安全研究人员,并将用户重定向到google.com以终止攻击。
Tycoon 2FA钓鱼攻击越来越多地针对组织,使攻击者能够未经授权访问微软和谷歌账户。这种访问暴露了敏感资源,如电子邮件、OneDrive、Google Drive和其他应用程序。攻击者利用窃取的数据对高价值账户进行有针对性的钓鱼活动,在环境内横向移动,外泄数据并部署勒索软件。
为了保护免受这些钓鱼攻击,组织应实施以下措施:
Hema Loganathan, T2 GSOC 分析师
Hema Loganathan是Cybereason全球SOC团队的GSOC分析师。她参与MalOp调查、恶意软件分析、逆向工程和威胁狩猎。Hema拥有信息系统硕士学位。
cvHLsQb1eeBHruk4VCX2EKq5Cg6st6JZiN1l8qgWI3Y7IJI65viTqwT4eDvCQvbxR9oE3j/1ZpTJLSXr6YkzkA==
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。