记录黑客技术中优秀的内容, 传播黑客文化,分享黑客技术精华

介绍一种密码重置的中间人攻击(上)

2017-06-06 01:45

摘要

今天给大家介绍一种密码重置的MitM (PRMitM)攻击,使用它可以完美的接管目标用户的账户。

PRMitM攻击是一种利用了注册和密码重置的环节的应用层攻击。攻击者启动A网站的一个密码重置过程,并转发一个挑战/应答给受害人(希望在B网站注册或访问上面特定的资源)。

这种攻击有几个变体,包括利用密码重置流程需要依赖受害人的手机(短信或通话),对Google和Facebook的用户进行了PRMitM的攻击,实验结果表明这些用户在密码重置过程中很容易受到PRMitM攻击的影响,其它的网站和一些流行的移动端应用程序在这方面也很脆弱。

在某些情况下,解决访问似乎是微不足道的,我们的实验也表明,简单的解决方案没有预期中的那么有效。我们设计和评估了两种安全的密码重置过程,并使用他们再次对Google和Facebook的用户进行实验评估,研究结果表明,在安全性方面又了显著的改善。

鉴于目前数以百万计的账户可能遭受PRMitM攻击,我们还提出了关于密码重置过程的实施和审计的建议,并附以列表。

1. 引言

密码是账户保护主要的也是最流行的机制。Web服务的用户大多数都使用密码,以防止未授权的访问,更好的保护用户的账户信息。几十年来,密码由于其在安全世界里的关键地址,一直都吸引着众多黑客和安全研究人员的关注。

第一台计算机不需要密码,物理隔离是唯一的安全措施。密码是共享网络环境的崛起而产生的。最初,密码明文保存在文本中,但至从有了第一例密码盗窃,催生了其它的安全解决方案,如加密、散列和盐尽管改进了密码安全存储的技术,攻击者依然能够入侵数据库、获取用户信息和密码。攻击者会尝试使用暴力或字典攻击等方式进行各种密码破解。

而且,即使最安全的密码存储也不会帮助那些坚持选择使用弱口令的用户。不幸的是,许多用户都倾向于选择使用容易记住、也容易被猜解的密码。为了防止用户犯这样的错误,许多网站强迫它们的用户使用强密码,或者至少会给用户一个关于他们的密码强度的提示。有迹象表明,上述策略是有效的,除此之外,银行业务涉及到敏感操作的,往往迫使他们的客户经常性的改变密码。

选择一个强大的密码,并确保它被安全存储,对维护账户安全而言是很有必要的。但是,如果密码重置过程很容易受到攻击,那么上述这些努力都是没有价值的。

事实上,许多用户正是由于忘记了密码才会进入重置密码流程。矛盾的是,选择强密码和定期更换密码这些安全要求,都提高了用户忘记密码的概率。

目前,市面上大多数网站的账户登录系统都允许用户重置密码。

密码重置是一个具有挑战性的过程。网站需要确保用户可以证明自己的真实身份,在没有密码的情况下。大多数网站依赖受害者的电子邮件地址,比如通过发送一个重置密码链接到用户注册时用的电子邮件地址。然而,重要网站提供电子邮件服务而言,更具有挑战性。

无法通过电子邮件地址重置密码的网站,以及支持用户丢失注册电子邮件帐户的网站,需要提供重置密码的其它方法。这些网站使用安全问题或其它通信渠道(如手机)来验证用户的身份,在用户收到重置密码的页面之前。

本文的研究结果表明,目前许多流行网站使用的密码重置过程很容易受到攻击。我们把这种新型的攻击手法,称之为重置密码的中间人攻击(password reset man-in-the-middle
,PRMitM)。

一个基本的PRMitM攻击流程是,用户访问攻击者的网络寻求某个资源(比如,免费软件),攻击者需要用户免费注册登录,以便获得访问资源的权限。在注册过程中,或通过其它跨站点攻击,攻击者得到受害者的电子邮箱地址,然后,在服务器端,攻击者访问电子邮件服务提供商网站并启动一个密码重置过程。攻击者将从电子邮件服务提供商处获取的挑战应答转发给正在注册中的受害人。

在另一方面,以为自己正在注册的受害人输入的每一个“回答”被转发给电子邮件服务提供商,这样,跨站点攻击者实际上就完成了一个重置密码的中间人攻击。

Figure1展示了一个基本的PRMitM攻击过程。

攻击者可能遇到的一些挑战

当攻击者试图重置密码时,需要面临图形验证码、完全问题和手机动态验证码的问题。

如果网站仅靠发送手机验证码给用户来完成重置密码的认证,更容易受到攻击,这是因为攻击者甚至可以制作一个钓鱼网站来实施他们的PRMitM攻击。

2 攻击者模型

完成一个PRMitM攻击,攻击者只需要控制一个网站。攻击者在自己控制的网站上向受害者发起攻击,从而接管受害人在其它网站上的账户。这有点类似于XSS、CSRF或点击劫持,不过他们还是有差异的。

启动一个PRMitM攻击,攻击者需要知道一些基本信息,如用户名、电子邮件或电话号码。这些信息也可以在攻击者诱使用户在自己网站上注册时进行收集,当然也可以通过其它漏洞或技术来收集有关用户的详细信息。实际上大多数时候,用户为了获得资源,会同意输入个人信息,如电话号码。

PRMitM攻击利用的是密码重置过程的设计缺陷,它与跨站点攻击和钓鱼网站的比较,如下图所示:

3. PRMitM攻击的过程

这里重点讲述一下,PRMitM攻击过程中可能会遇到的挑战。

1)验证码

验证码不是为了防止PRMitM攻击,而是为了解决人机识别,因此攻击者需要让受害人把验证码信息提交上来,如果重置密码流程有验证码的话。

2)安全问题

在注册过程中,用户有时被要求回答个人问题,用于将来找回密码时识别用户身份。当攻击者在重置密码过程中收到安全问题时,他们可以将这些问题转发给当前在攻击者控制网站上进行注册的受害者。然后攻击者将用户的回答转发给被攻击的网站。

3)手机动态验证码

这里通常会使用短信或电话,但其实这些方式都可以遭到PRMitM攻击。

4)重置密码链接的电子邮件

最常见的防御措施时向受害者的电子邮箱发送重置密码的链接,如果网站只使用这一项重置密码的途径,那么要完成PRMitM攻击,攻击者需要能够访问受害者的邮箱账户。不过,实际情况中,这个选项通常与电子邮件服务本身无关,此外如果用户已经失去了电子邮箱账户,势必不能只此一项重置方式。

针对世界上最流行的几个网站,我们调查了它们在密码重置过程中使用的挑战方式。结果显示,10个最受欢迎的网站支持使用用户的电子邮件帐户来重置密码,其中大部分允许使用手机作为备选方案。

4. 通过短信实施PRMITM攻击

大多数网站会提供通过短信来重置密码的服务。不幸的是,在某些情况下,手机动态验证码依然会遭遇PRMITM攻击。攻击者获取到受害人的电话号码,营造一个可信的上下文场景,声称将发送一个代码到受害人的手机上,于此同时攻击者启动一个重置密码过程。

受害人收到预期的消息,并在攻击页面输入验证码。攻击者接收到之后,在另一边完成了密码重置过程。

攻击者甚至可以诱骗用户在更简单的条件下披露动态验证码,发送验证码到移动设备是一种合理的人机判断方式,攻击者可以要求用户在访问某个资源或下载某个文件之前发送一个手机验证码,并不局限在注册环节(与电子邮箱和安全问答不同)。

利用短信的重置密码的局限

短信有字数限制(每条最多160个ASCII字符),重置密码的短信内容至少要包括三条消息;1.发送的网站;2.关于代码含义的解释(重置密码);3.避免向其他人透露的一个告警信息。

大多数网站都意识到需要包括这三个元素,然而,长度显示和提示内容,限制了他们可以发送的最佳的信息。

发件人身份

短信欺骗过程中,设置的发件人信息,而不是始发的移动号码。发送方可以设置为另一个数字或字母文本。通常SMS消息是由用户不知道的数字发送的。使用短信诈骗,发送者可以给用户关于发件人的提示。然而我们注意到,大多数攻击都不会使用自己的名称,他们认为与信息内容相比,信息发送者的身份是次要的。

令牌有效期

当给定一个验证码时,用户只能在有限的时间内使用,这个时间长短不一,15分钟到24小时不等。PRMitM攻击中,这个时间段很重要,攻击者希望时间越长越好,最好时一个在中午发起的攻击,重置密码的代码到了晚上依然还能使用。

 

文章来源:《The Password Reset MitM attack》,转载请注明来自MottoIN

知识来源: www.mottoin.com/102512.html

阅读:109886 | 评论:0 | 标签:安全报告 PRMitM 中间人攻击 密码重置

想收藏或者和大家分享这篇好文章→复制链接地址

“介绍一种密码重置的中间人攻击(上)”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

公告

关注公众号hackdig,学习最新黑客技术

推广

工具

标签云