探索 WebView2 应用程序以及如何将它们用于凭据和 Cookie 盗窃。
根据微软的说法,“Microsoft Edge WebView2控件允许您将Web技术(html,css和JAVAScript)嵌入到本机应用程序中”。从本质上讲,WebView2 技术可用于创建可执行文件,该可执行文件可以像浏览器一样与 Web 应用程序进行通信。这是为了改进桌面应用程序,并为它们提供与 Web 应用程序交互的附加功能。下图是在合法的 Microsoft office 应用程序中使用的 WebView2 的示例。
攻击者使用 WebView2 的主要优点是它在网络钓鱼凭据和会话时提供的丰富功能。在这篇文章中,我将讨论并展示攻击者如何创建 WebView2 应用程序并将其用于多种目的。我的代码使用Microsoft 的 WebView2 示例存储库的修改版本。这项研究既困难又耗时,因为我必须阅读大量文档并进行大量调试才能了解 WebView2 的内部工作原理。
使用内置的WebView2函数,JavaScript可以很容易地注入到任何网站中。这意味着您可以加载目标网站并注入恶意JavaScript(例如键盘记录器)。
在下面的示例中,我使用了一个定制的 WebView2 应用程序,该应用程序加载了一个注入的 JavaScript 键盘记录器。login.microsoftonline.com
下图显示了键盘记录器成功获取击键。
WebView2 还提供了提取 Cookie 的内置功能。这允许攻击者在用户对合法网站进行身份验证后提取 Cookie。这种技术消除了必须启动Evilginx2或Modlishka的需要,但明显的权衡是用户必须执行二进制文件并进行身份验证。
下图显示了在用户遍历后如何以 base64 格式提取 Cookie。https://mrd0x.com
解码 base64 blob 后,会显示 cookie。
WebView2 可用于窃取当前用户的所有可用 Cookie。这已在Chrome上成功测试。
WebView2 允许您使用现有的用户数据文件夹 (UDF) 启动,而不是创建一个新的文件夹。UDF 包含所有密码、会话、书签等。Chrome的UDF位于。我们可以简单地告诉 WebView2 使用此配置文件启动实例,并在启动时提取所有 cookie 并将它们传输到攻击者的服务器。C:Users\AppDataLocalgoogleChromeUser Data
唯一的问题是 WebView2 会查找一个名为 而不是(不确定为什么)的文件夹。创建文件夹的副本并将其重命名为。EBWebViewUser DataUser DataEBWebView
下图显示了我如何加载我的 Chrome UDF 并提取所有 cookie。此功能未在上传到我的 Github 存储库的代码中实现,但实现起来很简单,GitHub 自述文件解释了需要修改哪些内容才能使此功能正常工作。
我上传了一个 O365 WebView2 应用程序的代码,该应用程序加载执行并在用户成功进行身份验证后,base64 编码的 cookie 通过 HTTP GET 请求发送给攻击者。www.office.com/loginwww.office.com
下面的演示显示了 WebView2 二进制文件的执行。
下面的演示显示了用户如何与应用程序交互,以及攻击者如何使用被盗的 cookie 登录。
代码已上传到我的Github。您可以在将来的活动中随意使用它或根据需要对其进行修改。自述文件解释了所有内容,以防您想针对其他用例对其进行修改。
这种技术有其优点和缺点。明确的权衡是必须在主机上执行二进制文件,并且用户必须在应用程序中输入凭据。有人可能会问,如果需要执行应用程序,为什么不简单地执行shellcode并获得远程访问呢?当然可以。但根据某人的需求,他们可能需要远程访问之外的东西,例如在目标网站上执行JavaScript。
您可以将该功能扩展到现有的 WebView2 应用程序,以便获得远程访问。但目前二进制文件仅利用微软提供的合法功能。这可能会使安全解决方案更难标记。