双因素认证绕过的钓鱼工具

研究人员发布了两个工具——Muraen和NecroBrowser。它们能够自动绕过2FA进行钓鱼攻击,大多数防护措施都没法抵御它们。

双因素认证绕过的钓鱼工具双因素认证绕过的钓鱼工具

渗透测试人员和攻击者为他们的武器库添加了一个新的工具,这种工具能够绕过双因素身份验证(2FA) 自动化钓鱼攻击,而此过程不易被检测和阻止。该工具使此类攻击更容易部署,所以组织机构应该相应地调整其反钓鱼培训。
这个新工具包在上个月阿姆斯特丹举办的黑客大会 (Hack in the Box) 上发布,几天后在GitHub上发布。它有两个组件:一个被称为Muraena的透明反向代理和一个被称为NecroBrowser 的Docker容器(用于自动化无头Chromium实例)。web

中间人式攻击编程

大多数人所熟悉的传统网络钓鱼攻击是由虚假登陆页面组成的,这些页面在攻击者控制的web服务器上,并由与目标网站名称类似的自定义域名提供服务。然而,这种静态攻击对使用双因素身份验证的在线服务无效,由于没有与合法网站进行交互来触发生成一次性代码。没有这些代码,攻击者就没法使用钓鱼凭证登陆。
为了绕过2FA,攻击者须要让他们的钓鱼网站充当代理,表明受害者转发请求到合法网站,并实时回传。最终目标不只是为了获取用户名和密码,而是真正网站用来关联登陆帐号的活动会话令牌(也被称为会话cookie)。经过将这些会话cookie放在浏览器中,能够直接访问与它们关联的账户,而不须要进行身份验证。
这种基于代理的技术并不新鲜,人们一直知道它们的存在,可是进行这样的攻击须要技术知识,而且须要配置多个独立的工具,好比将NGINX web服务器当作反向代理使用。准备好工具后,攻击者须要在窃取的会话cookie过时以前手动使用它们。此外,有些网站使用子资源完整性 (Subresource Integrity, SRI) 和内容安全策略 (Content Security Policy, CSP) 等技术来防止代理,有些网站甚至会根据标题来屏蔽自动化的浏览器。
Muraena和NecroBrowser的出现是为了破解这些防护措施,并使大部分过程自动化。这意味着如今不少攻击者能够发起绕过2FA的钓鱼攻击。这些工具是由浏览器开发框架项目 (Browser Exploitation Framework Project , BeEF) 的前核心开发人员Michele Orru和Bettercap项目的成员Giuseppe Trotta共同开发的。浏览器

Muraena和NecroBrowser是如何工做的?安全

Muraena是用Go编程语言编写的,这意味着它能够在任何Go可用的平台上被编译和运行。一旦部署完成,攻击者就能够配置他们的钓鱼域名,并为其得到合法的证书——例如,经过非营利性的Let's Encrypt证书颁发机构。
该工具包含一个充当反向代理的小型web服务器和一个爬虫程序。该爬虫程序能够自动肯定从合法网站代理哪些资源。代理在传递来自受害者的请求以前重写这些请求。
爬虫程序会自动生成一个JSON配置文件,而后能够手动修改该文件来绕过更复杂网站上的各类防护机制。该软件包包括对谷歌、GitHub和Dropbox的示例配置文件。
一旦受害者登录一个由Muraena提供支持的钓鱼网站,登陆过程就会和真正的网站彻底同样。网站会要求用户输入他们的2FA验证码。当他们提供验证码并完成身份验证以后,代理会窃取会话cookie。
会话令牌一般由浏览器存储在一个文件中,并在后续请求中提供服务。这种方法可使网站自动向浏览器提供一段时间内不须要密码登录而(会话长度)访问账户的权限。Muraena能够自动将收集到的会话cookie传送给它的第二个组件NecroBrowser,而NecroBrowser能够当即开始滥用这些cookie。
NecroBrowser是一个能够经过API进行控制的微服务,进行配置之后能够经过在Docker容器内运行的Chromium无头实例执行操做。根据可用的服务器资源,攻击者能够同时生成数十个或数百个这样的容器,每一个容器都有一个从受害者那里窃取的会话cookie。
僵尸浏览器实例执行的操做能够彻底自动化。例如,根据帐户类型的不一样,能够对电子邮件进行截屏、启动密码重置、将恶意密钥上传到GitHub或者在邮箱添加恶意转发地址。浏览器实例还能够用来收集社交网络上联系人和朋友的信息,甚至能够经过相似蠕虫的攻击向这些朋友发送钓鱼信息。服务器

如何防范自动钓鱼攻击cookie

不幸的是,不多有技术解决方案可以彻底在服务器端阻止这种钓鱼攻击。Muraena的出现说明SRI和CSP等技术的效果有限,攻击者能够以自动化的方式绕过它们。此外,该工具代表2FA不是一个完美的解决方案。
然而基于代理钓鱼攻击没法突破某些2FA措施——那些使用支持通用第二因素 (Universal 2nd Factor, U2F) 标准的USB硬件令牌的企业。这是由于这些USB令牌经过浏览器创建了与合法网站的加密验证链接,而不是经过攻击者的反向代理。与此同时,基于短信验证码或移动验证软件的解决方案很容易受到攻击,由于受害者必须手动输入这些验证码,而他们可能会在钓鱼网站上作这些事情。
另外一种技术解决方案是为浏览器安装扩展,这种扩展程序能够检查用户是否在正确的网站上输入了他们的凭证。谷歌为Chrome开发了一个名为Password Alert的扩展,当用户试图在任何不属于谷歌的网站上输入谷歌凭证时,它会发出警告。
培养用户保持警戒,确保他们在正确的域名和正确的网站上进行身份验证很是重要。TLS/SSL和有效证书的存在不足以证实该网站是合法的,由于人们如今能够轻松免费得到证书,因此大多数钓鱼网站也可使用HTTPS。网络