本文探讨了一种网络钓鱼技术,该技术在浏览器中模拟浏览器窗口以欺骗合法域。
介绍
对于安全专家来说,URL 通常是域中最受信任的方面。是的,像IDN Homograph和DNS 劫持这样的攻击可能会降低 URL 的可靠性,但不会降低到使 URL 不可靠的程度。
所有这些最终让我思考,是否有可能让“检查 URL”的建议变得不那么可靠?经过一周的头脑风暴,我决定答案是肯定的。
弹出登录窗口
很多时候,当我们通过 Google、Microsoft、Apple 等对网站进行身份验证时,我们会看到一个弹出窗口,要求我们进行身份验证。下图显示了当有人尝试使用其 Google 帐户登录 Canva 时出现的窗口。
复制窗口
对我们来说幸运的是,使用基本的 HTML/CSS 复制整个窗口设计非常简单。将窗口设计与指向托管网络钓鱼页面的恶意服务器的 iframe 结合起来,基本上无法区分。下图显示了假窗口与真实窗口的比较。很少有人会注意到两者之间的细微差别。
JavaScript 可以很容易地用于使窗口出现在链接或按钮单击、页面加载等上。当然,您可以通过 JQuery 等库中提供的动画使窗口以视觉上吸引人的方式出现。
演示
自定义 URL 悬停
当允许 JavaScript 时,将鼠标悬停在 URL 上以确定它是否合法并不是很有效。链接的 HTML 通常如下所示:
<span style="color:#222222"><span style="background-color:#ffffff"><span style="background-color:#f5f5f5"><span style="color:#414c5e"><code class="language-text"><a href="https://gmail.com">Google</a></code></span></span></span></span>
如果添加了返回 false 的 onclick 事件,则将鼠标悬停在链接上将继续在href
属性中显示网站,但当单击链接时,该href
属性将被忽略。我们可以利用这些知识使弹出窗口看起来更真实。
<span style="color:#222222"><span style="background-color:#ffffff"><span style="background-color:#f5f5f5"><span style="color:#414c5e"><code class="language-text"><a href="https://gmail.com" onclick="return launchWindow();">Google</a>
function launchWindow(){
// Launch the fake authentication window
return false; // This will make sure the href attribute is ignored
}</code></span></span></span></span>
可用模板
我为以下操作系统和浏览器创建了模板:
- Windows - Chrome(明暗模式)
- Mac OSX - Chrome(明暗模式)
这些模板可以在 Github 上找到。
结论
使用这种技术,我们现在能够升级我们的网络钓鱼游戏。目标用户仍需要登陆您的网站才能显示弹出窗口。但是一旦登陆攻击者拥有的网站,用户就会放心,因为他们在看似合法的网站上输入了他们的凭据(因为可信的 URL 是这样说的)。
转载:mr.d0x