背景
多因素身份认证,是一种验证用户身份的方式。当我们需要登录网络账户时,通常通过用户名和密码完成身份验证, 而多因素身份认证相对于传统的身份认证,需要两个或以上的身份验证因素,常见的如手机号验证、手机APP验证等。本文将以微软账号为例,从网络钓鱼攻击的角度探讨多因素认证的安全性。
01 AiTM网络钓鱼
AiTM Phish是微软起的,全称是adversary-in-the-middle Phish,如下图,简单理解就是通过“中间人”进行网络钓鱼。其中比较典型的是利用反向代理服务构建“中间人”,利用反向代理服务器的特性,攻击者可以搭建以假乱真的钓鱼网站。当受害者成功登录后,攻击者能通过“中间人”钓鱼网站,获取登录过程中的会话信息从而绕过多因素认证。
图 AiTM Phish拦截身份验证过程
在开源社区中已有相当成熟的反向代理钓鱼利用工具包,其中较为著名的是Evilginx2,这类工具包功能强大的同时也易于部署,也让攻击成本更低廉、并且更加自动化。下面的例子中使用Evilginx2尝试搭建百度网盘的钓鱼网站,验证后成功登录百度网盘,并在后台捕获到百度网盘的会话日志。
图 反向代理百度网盘登录页面
图 捕获百度网盘登录会话日志
但是当我代理并访问live.com时,发现无法正常打开微软账号登录页面,明显是微软对该类型的攻击采取了安全措施。除此之外还可以利用“间接反向代理”,区别于“传统反向代理”,如下图“间接反向代理”并不是直接转发受害者和目标网站之间的流量,而是通过构建单独的登录页面和MFA请求页面诱导受害者进行身份验证,在捕获到受害者凭据的同时进行目标网站模拟登录,然后向受害者提供伪造的多因素验证界面,当受害者通过多因素认证后再自动向目标网站提交额外的验证代码,最终攻击者成功截获会话Cookie并将受害者重定向到其他页面。
图 “间接反向代理”拦截身份验证过程
该方式相比传统的反向代理钓鱼,由于需要提交凭据和多因素认证自动登录目标网站,所以无法做到同时适配多个网络钓鱼,但是在针对某个网站进行定向钓鱼时,极难被安全措施阻止,下图是针对微软账户的“间接反向代理”网络钓鱼。
图 针对微软账户的“间接反向代理”网络钓鱼
02 OAUTH协议利用
OAUTH(Open Authorization)协议为用户身份认证授权提供了一个安全的、开放而又简易的标准。很多大公司都提供了OAUTH认证服务。OAuth授权有如下几个阶段,如图:
图 qq oauth协议授权过程
攻击者通过注册合法的第三方OAUTH服务器,通过发送正常的授权url,诱导受害者点击允许后攻击者将获得相关访问权限。如图,为微软账号的OAUTH授权页面,受害者点击允许后,攻击者会获得授权码,进而接管账户权限。
图 微软oauth授权认证页面
03 WebView2技术利用
WebView2是一种将Web技术(HTML,CSS和JavaScript)嵌入到本机应用程序中的技术。WebView2 技术可用于创建可执行文件,该可执行文件可以像浏览器一样与 Web 应用程序进行通信。
攻击者可以使用WebView2技术将任意网站封装成看似正常的应用程序,在用户进行身份验证后提取 Cookie,最终绕过MFA的防护。如下图,攻击者将office.com封装进了WebView2应用程序,当受害者双击运行该WebView2应用程序登录自己的office账户时,攻击者利用WebView2的特性盗取了用户的Cookie。
攻击者利用WebView2还可以盗取浏览器保存的所有认证数据,只需要给Webview2指定在UDF下启动,并在双击启动后把保存cookie的文件传输回攻击者服务器,UDF保存了浏览器的密码、cookie、会话、书签等。如:chrome浏览器的默认UDF是C:Users\AppDataLocalGoogleChromeUser Data,当 WebView2 程序使用此配置文件启动时,即可盗取chrome浏览器保存的所有网页认证数据,最终导致所有相关网站的MFA防护被绕过。
图 WebView2应用程序登录过程的会话被盗取
04 基于Web的桌面共享利用
简单来讲,攻击者通过利用基于Web的远程桌面协议(例如:noVNC/teamviewer等),将自己的服务器桌面通过链接的形式共享出去,受害者访问链接就会访问到攻击者的服务器桌面,如下图。
图 访问通过noVNC共享的远程桌面
此时只需要在远程桌面会话中启动微软账户登录页面,然后将页面全屏,让受害者误以为访问链接后进入了微软账户登录页面即可,如下图。一旦受害者进行登录操作,就等同于在亲自在攻击者的电脑上登录了自己的账户。攻击者可以在其认证成功后断掉vnc连接,也可以在浏览器中盗取Cookie或者键盘记录等等……
当然攻击者还可以进一步优化攻击过程,比如:修改浏览器访问vnc的显示样式、注册高仿域名、搭配浏览器的Kiosk模式,完全可以达到以假乱真的效果。
图 通过noVNC共享的微软登录页面
05 写在最后
文中的几种方法多是对正规技术的恶意利用,所以无法从技术方法上形成有效的拦截,而这也是社会工程学攻防的魅力所在。但这并不意味着多因素身份认证毫无用处,相反多因素身份认证(MFA)的广泛应用,极大的减少了因账号密码失窃导致的风险,但是过分依靠MFA机制显然是不可取的,随着网络技术迭代,多因素身份认证可能也将面临新的挑战。
绿盟科技天元实验室专注于新型实战化攻防对抗技术研究。
研究目标包括:漏洞利用技术、防御绕过技术、攻击隐匿技术、攻击持久化技术等蓝军技术,以及攻击技战术、攻击框架的研究。涵盖Web安全、终端安全、AD安全、云安全等多个技术领域的攻击技术研究,以及工业互联网、车联网等业务场景的攻击技术研究。通过研究攻击对抗技术,从攻击视角提供识别风险的方法和手段,为威胁对抗提供决策支撑。
M01N Team公众号
聚焦高级攻防对抗热点技术
绿盟科技蓝军技术研究战队
官方攻防交流群
网络安全一手资讯
攻防技术答疑解惑
扫码加好友即可拉群
原文始发于微信公众号(M01N Team):钓鱼手法鉴赏 | 绕过微软账号的多因素认证