近日,有多个窃取信息的恶意软件家族正在滥用一个未记录的名为 "MultiLogin "的谷歌 OAuth 端点恢复过期的身份验证 cookie 。通过这种方式黑客可以获取到用户账户信息,即使账户密码已被重置仍能成功登陆。
会话 cookie 是一种特殊类型的浏览器 cookie,其中包含身份验证信息,允许用户在不输入凭据的情况下自动登录网站和服务。这类 cookie 的储存时间有限,因此如果账户被盗,威胁者无法无限期地使用它们登录账户。
但在2023年11月下旬,Lumma和Rhadamanthys黑客曾声称可以恢复在攻击中被盗的过期谷歌身份验证cookie,即使合法所有者已经注销、重置密码或会话过期,这些 cookie 仍可让网络犯罪分子在未经授权的情况下访问谷歌账户。
利用谷歌 OAuth 端点
CloudSEK 研究人员上周五(12月29日)发布的一份报告进一步揭示了这个零日漏洞的工作原理,并阐述了该漏洞的被大规模利用的严重后果。
2023 年 10 月 20 日,一个名为 PRISMA 的威胁行为者首次披露了该漏洞,他在 Telegram 上发布消息称发现了一种恢复过期 Google 身份验证 cookie 的方法。
在对该漏洞进行逆向工程后,CloudSEK 发现它使用了一个名为 "MultiLogin "的未注明谷歌 OAuth 端点,该端点通过接受账户 ID 和 auth-login 标记向量来同步不同 Google 服务之间的帐户。
此请求用于在多个 Google 网站(例如 YouTube)的 Google 身份验证 cookie 中设置浏览器中的 Chrome 帐户。 这个请求是 Gaia Auth API 的一部分,只要 cookie 中的帐户与浏览器中的帐户不一致就会触发。
CloudSEK 表示,滥用该终端的信息窃取恶意软件会提取登录到谷歌账户的 Chrome 配置文件的 tokens 和账户 ID。这些被盗信息包含两个关键数据:service (GAIA ID) 和 encrypted_token。
加密令牌使用存储在 Chrome 浏览器 "Local State" 文件中的加密密钥进行解密。同样的加密密钥也用于解密浏览器中保存的密码。
通过利用窃取的 token,GAIA 与多重登录端点配对,威胁行为者可以重新生成过期的 Google Service cookies,并保持对受损账户的持久访问。
使用令牌:GAIA对从文本文件中读取以生成对MultiLogin的请求来源:CloudSEK
CloudSek 研究员 Pavan Karthick 表示,他们对该漏洞进行了逆向工程,并能够使用它来重新生成过期的 Google 身份验证 cookie,如下所示:
重置密码后,cookie再生成功来源:CloudSEK
Karthick 解释称,如果用户重置其 Google 密码,身份验证 cookie 只能重新生成一次。否则,它可以多次重新生成,从而提供对帐户的持久访问。
恶意软件开发者急于添加漏洞
Lumma stealer 于 11 月 14 日首次利用了该漏洞,其开发人员采用了黑盒技术,如用私钥加密 token:GAIA 对,以向竞争对手隐藏这一机制,并防止复制该功能。
Radamanthys 是第一个在 11 月 17 日效仿的人;此后还有 12 月 1 日的 Stealc、12 月 11 日的 Medusa、12 月 12 日的 RisePro 和 12 月 26 日的 Whitesnake。因此,目前至少有 6 个信息窃取者声称能够使用此 API 端点重新生成 Google cookie。
Lumma 还发布了该漏洞的更新版本:转而使用 SOCKS 代理来逃避 Google 的滥用检测措施,并在恶意软件和 MultiLogin 端点之间实现加密通信;以抵消谷歌的缓解措施。
由于Google尚未证实MultiLogin端点被滥用,因此目前该漏洞的利用状况及其缓解措施仍不清楚。