攻击者越来越多地使用新的网络钓鱼工具包(开源、商业和犯罪)来执行中间对手 (AitM) 攻击。
AitM 使攻击者不仅可以获取凭据,还可以窃取实时会话,从而绕过传统的网络钓鱼预防控制,例如 MFA、EDR 和电子邮件内容过滤。
在本文中,我们将了解什么是 AitM 网络钓鱼、它是如何工作的,以及组织需要什么才能有效地检测和阻止这些攻击。
什么是 AitM 网络钓鱼?
AitM 网络钓鱼是一种使用专用工具充当目标和应用程序合法登录门户之间的代理的技术。
由于它是真实应用程序的代理,因此该页面将完全按照用户预期显示,因为他们正在登录合法站点——只是通过攻击者的设备绕道而行。例如,如果访问他们的 webmail,用户将看到他们所有的真实电子邮件;如果访问他们的云文件存储,那么他们所有的真实文件都将存在,依此类推。
这让 AitM 更真实,并使妥协对用户来说不那么明显。但是,由于攻击者位于此连接的中间,因此他们能够观察所有交互,并控制经过身份验证的会话以获得对用户帐户的控制权。
虽然这种访问在技术上是临时的(因为攻击者在出现提示时无法重新进行身份验证),但在实践中,如果保持活动状态,经过身份验证的会话通常可以持续长达 30 天或更长时间。此外,还有各种持久性技术允许攻击者无限期地保持对用户帐户和/或目标应用程序的某种级别的访问权限。
AitM 工具包如何运作?
让我们考虑一下用于实施 AitM 网络钓鱼的两种主要技术:反向网络代理(经典 AitM)和中间浏览器 (BitM) 技术。AitM 工具包有两种主要变体:
反向网络代理:
从攻击者的角度来看,这可以说是最具可扩展性和最可靠的方法。当受害者访问恶意域时,HTTP 请求会通过恶意站点在受害者的浏览器和真实站点之间传递。当恶意站点收到 HTTP 请求时,它会将此请求转发到它所模拟的合法站点,接收响应,然后将其转发给受害者。
演示此方法的开源工具包括 Modlishka、Muraena 和广受欢迎的 Evilginx。在犯罪领域,也有类似的私有工具集可用,这些工具集过去曾被用于许多违规行为。
比特:
这种技术不是充当反向 Web 代理,而是诱骗目标使用 VNC 和 RDP 等桌面屏幕共享和控制方法直接远程控制攻击者自己的浏览器。这使攻击者不仅可以获取用户名和密码,还可以获取与登录相关的所有其他关联密钥和令牌。
在这种情况下,受害者没有与虚假网站克隆或代理交互。他们实际上是在远程控制攻击者的浏览器以登录合法应用程序,而无需意识到。这实际上相当于攻击者将他们的笔记本电脑交给受害者,要求他们为他们登录 Okta,然后取回他们的笔记本电脑。 非常感谢!
实际上,实现此技术的最常见方法是使用开源项目 noVNC,这是一个基于 JavaScript 的 VNC 客户端,允许在浏览器中使用 VNC。实现此目的的攻击性工具最著名的示例可能是 EvilnoVNC,它启动 VNC 的 Docker 实例并代理访问它们,同时还记录击键和 cookie 以促进帐户泄露。
如果您想了解有关 SaaS 原生攻击技术的更多信息,请查看此博客文章。
网络钓鱼并不是什么新鲜事 – 那么发生了什么变化呢?
网络钓鱼是组织面临的最古老的网络安全挑战之一,至少自 2013 年以来,身份/网络钓鱼攻击的一些描述一直是主要攻击媒介。但是,网络钓鱼工具的功能及其在当今攻击方式中的作用都发生了重大变化。
正如我们已经提到的,AitM 工具包主要是攻击者绕过 MFA 等控制措施来接管员工身份的一种方式,从而授予对通过互联网访问的大量业务应用程序和服务的访问权限。
现实情况是,我们现在处于网络安全的新时代,身份是新的边界。这意味着身份是攻击者在寻找潜在受害者的方法时最容易抓住的果实。
攻击者正在投资高级网络钓鱼工具包的开发和商业化,这一事实有力地表明了身份攻击存在的机会。数据支持这一点,因为:
- 如今,80% 的攻击涉及身份和泄露的凭据 (CrowdStrike)。
- 79% 的 Web 应用程序泄露是由于凭据泄露 (Verizon) 造成的。
- 2023 年 75% 的攻击是无恶意软件的,“云意识”攻击增加了 110% (CrowdStrike)。
但是,我们只需要看看最近备受瞩目的数据泄露事件向我们展示了攻击者想方设法接管员工身份以访问基于 Web 的业务应用程序是多么有利可图——最近的 Snowflake 攻击已成为历史上最大的数据泄露事件之一,是房间里的大象。
攻击者现在有很多机会以比以前少得多的努力造成重大损害。例如,如果目标是破坏 Snowflake 等应用程序并从中转储数据,那么杀伤链比传统的基于网络的攻击要短得多。随着 Okta 等 SSO 平台的日益普及,身份泄露可以迅速传播到应用程序和帐户中,从而增加潜在的爆炸半径。这意味着当涉及到 AitM 网络钓鱼等身份攻击时,几乎没有犯错的余地——而且您不能依赖您的终端节点和网络控制来稍后捕获它们。
在这个新世界中,攻击甚至不必触及旧边界,因为他们可能需要的所有数据和功能都存在于公共互联网上。因此,我们看到越来越多的针对 SaaS 应用程序的攻击,整个攻击链都在客户网络之外结束,不触及任何传统的端点或网络。
AitM 网络钓鱼工具包实际上相当于 C2 框架的身份。 在端点和网络攻击的世界中,Metasploit 和 Cobalt Strike 等工具集越来越专注于漏洞利用后和自动化,以实现更复杂的入侵。我们已经看到这一点,例如 Evilginx 与 GoPhish 集成以实现网络钓鱼活动自动化和编排。
攻击者可以轻松绕过现有控制
现有的网络钓鱼预防解决方案试图通过保护电子邮件收件箱(一种常见(但不是唯一的)攻击媒介)和阻止已知不良域的列表来解决问题。
网络钓鱼长期以来一直是一个问题的事实足以证明这些方法不起作用(老实说,它们从来没有)。
主要的网络钓鱼防护是阻止已知的恶意 URL、IP 和域名。这里的主要限制是,要让防御者知道某件事是坏的,需要先报告它。何时报告情况?通常只有在被用于攻击之后——所以不幸的是,总是有人受伤,而防御者总是落后攻击者一步。
即使它们被报告,攻击者也很容易混淆或更改这些组件:
- 您可以在电子邮件中查找已知错误的 URL,但每个网络钓鱼活动的 URL 都会发生变化。在现代攻击中,每个目标都可以收到唯一的电子邮件和链接。使用 URL 缩短器或共享包含其他恶意 URL 的文档的链接可以绕过此问题。它相当于恶意软件哈希值 – 更改起来很简单,因此不是固定检测结果的好办法。
- 您可以查看用户连接到哪个 IP 地址,但现在攻击者很容易将新 IP 添加到他们的云托管服务器。
- 如果域被标记为已知不良,攻击者只需注册一个新域,或破坏已受信任域上的 WordPress 服务器。这两件事都在大规模发生,因为攻击者预先计划了他们的域名将在某个时候被烧毁的事实,提前几年批量购买域名,以确保高代表域名的持续管道。攻击者非常乐意在每个新域花费 10 到 20 美元,以潜在犯罪收益为宏伟计划。
- 攻击者的网站不需要将每个访问者发送到同一个网站。它可以根据访问者的来源动态变化——这意味着解析链接去向以分析它们的检测工具可能不会提供给网络钓鱼页面。
例如,最近对 NakedPages 网络钓鱼工具包的研究发现,攻击者使用 9 个单独的步骤来混淆网络钓鱼网站并掩盖其恶意活动:
- 使用 Cloudflare Workers 为站点提供合法域。
- 使用 Cloudflare Turnstile 阻止机器人访问该网站。
- 需要某些 URL 参数和标头才能使 HTTP(S) 请求正常工作。
- 要求 JavaScript 执行从静态分析工具进行混淆。
- 如果不满足条件,则重定向到合法域。
- 屏蔽 HTTP referer 标头以匿名执行重定向。
- 重定向到 URL 池以保持恶意链接处于活动状态。
- 破解简单的登录页面签名。
- 仅触发 Microsoft 工作帐户,而不是个人帐户。
那又怎样?好吧,很明显,如果要在认领受害者之前可靠地检测到 AitM 网络钓鱼网站,则需要一种不同的方法。
使用 Pyramid of Pain 构建更好的检测
那么,您如何构建控件,以便在网络钓鱼网站首次使用时对其进行检测和阻止呢?
答案是找到攻击者更难更改的指标。十多年来,Blue Teamers 一直使用痛苦金字塔的概念来指导他们进行此类检测。
为了将金字塔攀向顶端,您需要找到方法来检测攻击技术中越来越通用的部分。因此,您需要避免特定恶意软件的代码是什么样子,或者它连接回哪里。但是恶意软件的作用或运行时发生的情况更加通用,因此对防御者来说更有趣。
从静态代码签名和模糊哈希到动态分析代码在实时系统上的作用,是 EDR 在十年前扼杀防病毒软件的核心原因。它大规模地证明了将检测向上移动的价值。
最好的起点是查看用户成功网络钓鱼需要发生什么:
- 第一阶段: 必须引诱受害者访问网站。
- 第 2 阶段: 该网站必须以某种方式欺骗或说服用户它是合法且值得信赖的,例如通过模仿合法网站。
- 第 3 阶段:用户必须在该网站中输入其实际凭据。
我们已经确定,攻击者可以通过更改这些指标来轻松绕过基于前两个阶段的检测。
要使网络钓鱼攻击成功,受害者必须在网页中输入他们的实际凭据。因此,如果您可以阻止用户输入其真实密码,则不会受到攻击。
但是,如何阻止用户在网络钓鱼网站中输入密码呢?
利用基于浏览器的安全控制
为了能够构建可以打击攻击者的控制类型,需要一个新的检测和控制实施表面 – 相当于身份的 EDR。
浏览器是实现这一目标的主要候选者是有明显的原因。在许多方面,浏览器是新的操作系统,是现代工作发生的地方 – 员工每天使用的基于 Web 的应用程序和服务的门户,业务活动也依赖这些应用程序和服务。
从技术角度来看,该浏览器提供了比其他身份遥测源更好的替代方案:
在浏览器中,您可以动态地与 DOM 或呈现的 Web 应用程序交互,包括其 JS 代码。这样就可以轻松查找用户名和密码的输入字段等。您可以查看用户输入了哪些信息以及输入了什么位置,而无需弄清楚数据是如何编码并发送回应用程序的。这些是相当通用的字段,可以在您的应用程序套件中识别,而无需复杂的自定义代码。理想的可见性,可围绕用户输入密码的行为构建检测。
浏览器还有一个额外的好处,那就是它是一个自然的执行点。您可以动态收集和分析数据,并立即做出响应,而不是带走信息,进行分析,然后在几分钟或几小时后返回检测结果(并可能提示手动响应)。
因此,很可能能够在影响点(即在网络钓鱼网站的输入字段中输入密码的阶段)拦截用户,从而在攻击发生之前阻止攻击。
因此,将检测和响应功能引入浏览器以阻止身份攻击对安全团队来说是一个巨大的优势。EDR 的出现有明显的相似之处,EDR 的出现是因为现有的端点日志源和控制不够。今天,我们做梦也想不到在没有 EDR 的情况下检测和响应基于端点的攻击 – 现在是时候开始以同样的方式考虑身份攻击和浏览器了。
AitM 和 BitM 攻击检测 demo
观看下面的视频,观看 Evilginx 和 EvilNoVNC 网络钓鱼工具包的演示,以及如何使用基于浏览器的安全控制在网络钓鱼攻击完成之前检测和阻止它们。