freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

钓鱼手法鉴赏 | 绕过微软账号的多因素认证
2023-07-11 17:05:09
所属地 北京

0x00 背景

多因素身份认证,是一种验证用户身份的方式。当我们需要登录网络账户时,通常通过用户名和密码完成身份验证, 而多因素身份认证相对于传统的身份认证,需要两个或以上的身份验证因素,常见的如手机号验证、手机APP验证等。

本文将以微软账号为例,从网络钓鱼攻击的角度探讨多因素认证的安全性。

0x01 AiTM网络钓鱼

AiTM Phish是微软起的,全称是adversary-in-the-middle Phish,如下图,简单理解就是通过“中间人”进行网络钓鱼。其中比较典型的是利用反向代理服务构建“中间人”,利用反向代理服务器的特性,攻击者可以搭建以假乱真的钓鱼网站。当受害者成功登录后,攻击者能通过“中间人”钓鱼网站,获取登录过程中的会话信息从而绕过多因素认证。

图:AiTM Phish拦截身份验证过程

在开源社区中已有相当成熟的反向代理钓鱼利用工具包,其中较为著名的是Evilginx2,这类工具包功能强大的同时也易于部署,也让攻击成本更低廉、并且更加自动化。下面的例子中使用Evilginx2尝试搭建百度网盘的钓鱼网站,验证后成功登录百度网盘,并在后台捕获到百度网盘的会话日志。

图:反向代理百度网盘登录页面

图:捕获百度网盘登录会话日志

但是当我代理并访问live.com时,发现无法正常打开微软账号登录页面,明显是微软对该类型的攻击采取了安全措施。除此之外还可以利用“间接反向代理”,区别于“传统反向代理”,如下图“间接反向代理”并不是直接转发受害者和目标网站之间的流量,而是通过构建单独的登录页面和MFA请求页面诱导受害者进行身份验证,在捕获到受害者凭据的同时进行目标网站模拟登录,然后向受害者提供伪造的多因素验证界面,当受害者通过多因素认证后再自动向目标网站提交额外的验证代码,最终攻击者成功截获会话Cookie并将受害者重定向到其他页面。

图:“间接反向代理”拦截身份验证过程

该方式相比传统的反向代理钓鱼,由于需要提交凭据和多因素认证自动登录目标网站,所以无法做到同时适配多个网络钓鱼,但是在针对某个网站进行定向钓鱼时,极难被安全措施阻止,下图是针对微软账户的“间接反向代理”网络钓鱼。

图:针对微软账户的“间接反向代理”网络钓鱼

0x02 OAUTH协议利用

OAUTH(Open Authorization)协议为用户身份认证授权提供了一个安全的、开放而又简易的标准。很多大公司都提供了OAUTH认证服务。OAuth授权有如下几个阶段,如图:

图:qq oauth协议授权过程

攻击者通过注册合法的第三方OAUTH服务器,通过发送正常的授权url,诱导受害者点击允许后攻击者将获得相关访问权限。如图,为微软账号的OAUTH授权页面,受害者点击允许后,攻击者会获得授权码,进而接管账户权限。

图:微软oauth授权认证页面

0x03 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\\AppData\Local\Google\Chrome\User Data,当 WebView2 程序使用此配置文件启动时,即可盗取chrome浏览器保存的所有网页认证数据,最终导致所有相关网站的MFA防护被绕过。

图:WebView2应用程序登录过程的会话被盗取

0x04 基于Web的桌面共享利用

简单来讲,攻击者通过利用基于Web的远程桌面协议(例如:noVNC/teamviewer等),将自己的服务器桌面通过链接的形式共享出去,受害者访问链接就会访问到攻击者的服务器桌面,如下图。

图:访问通过noVNC共享的远程桌面

此时只需要在远程桌面会话中启动微软账户登录页面,然后将页面全屏,让受害者误以为访问链接后进入了微软账户登录页面即可,如下图。一旦受害者进行登录操作,就等同于在亲自在攻击者的电脑上登录了自己的账户。攻击者可以在其认证成功后断掉vnc连接,也可以在浏览器中盗取Cookie或者键盘记录等等......

当然攻击者还可以进一步优化攻击过程,比如:修改浏览器访问vnc的显示样式、注册高仿域名、搭配浏览器的Kiosk模式,完全可以达到以假乱真的效果。

图:访问通过noVNC共享的微软登录页面

0x05 写在最后

文中的几种方法多是对正规技术的恶意利用,所以无法从技术方法上形成有效的拦截,而这也是社会工程学攻防的魅力所在。但这并不意味着多因素身份认证毫无用处,相反多因素身份认证(MFA)的广泛应用,极大的减少了因账号密码失窃导致的风险,但是过分依靠MFA机制显然是不可取的,随着网络技术迭代,多因素身份认证可能也将面临新的挑战。

# 网络钓鱼 # 钓鱼技术 # 网络钓鱼攻击
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录