当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 通过传递 Cookie 攻击绕过 MFA

作者:精品下载站 日期:2024-12-14 06:11:26 浏览:14 分类:玩电脑

通过传递 Cookie 攻击绕过 MFA


多重身份验证 (MFA) 是提高本地和云安全性的好方法。实施 MFA 后,当用户登录时,他们不仅需要提供用户 ID 和密码,还需要提供另一个身份验证因素,例如发送到手机的代码。此过程可防止使用被盗用户凭据的攻击者登录,从而减少攻击面。

然而,MFA 并不是网络安全的灵丹妙药。 特别是,攻击者可以利用 Pass-the-Cookie 攻击来利用浏览器 cookie 绕过 MFA 并获取对云服务的访问权限。在这篇文章中,我们将探讨这种攻击的工作原理以及防御这种攻击的最佳安全实践。

传递 Cookie 攻击如何运作

浏览器 cookie 使 Web 应用程序能够存储用户身份验证信息,因此用户可以保持登录状态,而不必在每次导航到网站上的新页面时提供用户名和密码。 (这类似于 Kerberos 或 NTLM 身份验证,其中工件存储在用户系统本地并用于将来的身份验证。)

如果启用了 MFA,用户必须提供额外的身份证明,例如通过在其移动设备上接受推送通知。 用户通过 MFA 后,将为您的 Web 会话创建并存储浏览器 cookie。

虽然 cookies 简化了用户体验,但它们带有一个明显的漏洞:如果有人能够提取正确的浏览器 cookies,他们就可以在另一个系统上完全独立的 Web 浏览器会话中以另一个用户身份进行身份验证。简而言之,他们可以使用 cookie 绕过 MFA 身份验证。 (这类似于 Active Directory 中的哈希传递攻击。)

对手如何提取浏览器 Cookie。

让我们以 Google Chrome 浏览器为例,看看攻击者如何提取 cookie。 Chrome 将 cookie 存储在 SQLite 数据库的以下位置:

%localappdata%GoogleChromeUser DataDefaultCookies

给定用户的 cookie 使用通过 Microsoft 数据保护 API (DPAPI) 与该用户绑定的密钥进行加密。 要访问 cookie 数据库并解密 cookie,攻击者可以使用以下 mimikatz 命令:

dpapi::chrome /in:"%localappdata%GoogleChromeUser DataDefaultCookies" /unprotect

或者,他们可以从命令行执行以下命令:

mimikatz.exe privilege::debug log "dpapi::chrome /in:%localappdata%googlechromeUSERDA~1defaultcookies /unprotect" exit

使用这些选项之一将提供浏览器 cookie:

[玩转系统] 通过传递 Cookie 攻击绕过 MFA

传递 Cookie 攻击场景

让我们来看看传递 Cookie 攻击在现实场景中是如何运作的。

假设用户 Tobias 是 IT 管理员。 Tobias 经常使用的 Web 应用程序之一是 Microsoft Azure 管理门户。由于启用了 MFA,当 Tobias 登录 Azure 时,他必须提供移动设备上身份验证器应用程序中的代码,如下所示。

[玩转系统] 通过传递 Cookie 攻击绕过 MFA

因此,只要没有人偷走他的 iPhone,他的 Azure 凭据就应该是安全的,对吗?没那么快。 假设托比亚斯点击了一封网络钓鱼电子邮件,或者他的系统已通过其他方式受到损害,现在攻击者能够在托比亚斯的用户上下文中执行代码。 托比亚斯不是他笔记本电脑的管理员,因此损坏应该得到控制,对吗?

让我们来看看。

步骤 1. 提取 Cookie。

正如我们之前看到的,要获取 Tobias 的浏览器 cookie,我们所要做的就是在以 Tobias 身份运行时执行以下命令:

mimikatz.exe privilege::debug log "dpapi::chrome /in:%localappdata%googlechromeUSERDA~1defaultcookies /unprotect" exit

在本例中,我们关心的是 Azure 身份验证 cookie,包括 ESTSAUTH、ESTSAUTHPERSISTENT 和 ESTSAUTHLIGHT。 这些 cookie 可供获取,因为 Tobias 最近在 Azure 上很活跃:

[玩转系统] 通过传递 Cookie 攻击绕过 MFA

步骤 2. 传递 Cookie。

看起来,由于我们不知道 Tobias 的用户 ID 或密码,并且无法访问他的移动设备,因此我们无法以 Tobias 身份登录 Azure 等 Web 应用程序。

但由于我们有他的 cookie,我们只需要将它们传递到另一个会话即可接管托比亚斯的帐户。 这很容易做到:我们只需在另一台服务器上打开 Chrome 并使用“检查”界面插入 cookie。

2.1。 首先,我们检查被盗的会话:

[玩转系统] 通过传递 Cookie 攻击绕过 MFA

2.2。 接下来,我们导航至应用程序 > Cookie。如您所见,当前 cookie 不包含 ESTSAUTH 或 ESTSAUTHPERSISTENT”:

[玩转系统] 通过传递 Cookie 攻击绕过 MFA

2.3。 我们添加 ESTSAUTH 或 If ESTSAUTHPERSISTENT cookie。 (如果 ESTSAUTHPERSISTENT 可用,则首选它,因为它是由“保持登录”选项生成的。)

[玩转系统] 通过传递 Cookie 攻击绕过 MFA

2.4。 我们刷新页面,现在我们已以 Tobias 身份登录 Azure — 无需 MFA!

[玩转系统] 通过传递 Cookie 攻击绕过 MFA

降低您的风险

由于多种原因,传递 Cookie 攻击是一个严重的威胁。首先,传递 Cookie 攻击不需要管理权限;所有用户都可以读取和解密自己的浏览器 cookie,无论他们是否在其工作站上拥有特权。其次,攻击者不必知道受感染帐户的用户 ID 或密码,因此只需最少的信息即可进行此攻击。 第三,我们甚至能够在浏览器关闭后完成传递 Cookie 攻击。

最大限度地降低 Cookie 被盗风险的一种方法是更频繁地清除用户的 Cookie。然而,这将迫使用户每次导航到某个站点时都必须重新进行身份验证,这会让他们感到沮丧,并导致他们避免关闭浏览器以避免丢失 cookie。

更好的策略是实施这些认证监控和威胁检测产品。 Netwrix StealthDEFEND 可以及时检测以意外方式使用的帐户,以便您可以快速关闭恶意活动。

常问问题

什么是传递 Cookie 攻击?

在传递 Cookie 攻击中,网络犯罪分子使用窃取的 Web 会话 Cookie 来冒充合法用户,以便访问受害者本地或云环境中的数据和系统。

如何使用 cookie?

Web 应用程序使用浏览器 cookie 来存储用户设置和身份验证信息。

黑客为何窃取 cookie?

使用窃取的 cookie,黑客可以冒充合法用户会话。通过访问用户的网络基础设施,攻击者可以窃取敏感数据、植入恶意软件并利用漏洞。

为什么 MFA 很重要?

多因素身份验证 (MFA) 是一种安全措施,通过要求用户提供除凭据之外的其他验证因素(例如发送到其移动设备的代码或专用访问令牌)来增强系统和数据安全性。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯