过度信任致使2FA可被绕过
开始之前,循例报告一下最近的动向吧,终于熬过了这学期节节课点名、破实验 作业满天飞的噩梦(,我也即将为我进入的第一家安全企业绿盟所服务(实习),学点习,做点贡献。后面的行程我已加入大师计划4.0并迭代至4.1以供我自己参考
前言
这个安全问题始于文章发布日的前一晚,正兴高采烈准备登录htb想进入学院为自己安排学习任务,但这个时候出现了与前段时间的发现微软漏洞类似的剧本,我的htb 2fa code莫名其妙失效,2fa code生成app所生成的2fa code全部失效(仅仅只有htb的失效),这让我无法登录我的htb账号。
于是顺其自然,与之前一样的剧本,发现了绕过2fa的小办法,成功登录我的htb账号,登录上去后我立马重启了htb 2fa功能,一切恢复正常
由于比较简单,所以我额外添加了其他内容
1.第三方平台账户关联(绑定)引发过度信任的安全问题(htb绕过2fa小办法)2.htb平台与epic(bind steam)平台的对比3.攻击面的变化4.平台后阶段集成统一身份认证系统带来的安全问题(额外)
第三方平台账户关联(绑定)引发过度信任的安全问题(htb绕过2fa小办法)
一些XX平台中,我们会时常看到允许使用第三方账户登录、允许为XX平台账户授权绑定第三方平台账户 如:QQ、微信、Google、github、discord等等。这样的行为其中一种用途就是允许用户通过第三方平台账户登录XX平台的账户
其实这非常的正常没有任何问题
但,我们加入2fa code呢,我们简单列举一下使用XX平台账户登录和使用绑定的第三方平台账户登录的两种成功登录阶段:
1. 直接使用XX平台账户和密码 登录XX平台 -> 验证XX平台的2fa code -> 登录成功
2. XX平台跳转到第三方平台 -> 使用第三方平台账户和密码登录第三方平台 -> (该阶段可有可无)验证第三方平台的2fa code -> 跳转回XX平台验证 -> 验证XX平台的2fa code -> 登录成功
而我所提到的信任危机就发生在 跳转回XX平台,XX平台使用第三方平台账户的会话进行XX平台认证时,
这个时候XX平台应不应该验证XX平台的2fa code???
hackthebox截止至本文发布时的第一次回答是:不需要
而我的回答则是:
随即我录制了新的复现视频上传给他们,希望他们可以考虑这个问题
他们不认为这是一个漏洞,当然我本人也不认为这是一个漏洞,它更像是一个小安全风险bug,所以本文一直没有提及“漏洞”两字,鉴于不算是直接的安全漏洞且不好利用,所以本文发布于hackthebox第二次调查结果之前,如果有后续我会发在评论区
而我的调查结果是:即使我使用一个没有启用2fa的第三方账户登录一个htb启用了2fa的账户,htb会不需要验证htb的2fa code从而直接登录成功
htb平台与epic(bind steam)平台的对比
而我所说的绕过htb 2fa的技巧也显而易见,就是恰好我的htb账户绑定了我的github账户,所以我直接通过github账户登录了htb,由于存在这个安全缺陷,使我无需验证htb 2fa code登录成功,所以我的htb账户得救了,吗的笑死
Epic
随机抽一家平台测试,我们来看看EPIC的做法
我在我的Epic账户中绑定了steam账户
然鹅在通过steam登录到Epic账户时,它与hackthebox截然相反,Epic依然需要验证Epic的2fa code,请看GIF
攻击面的变化
这才是我最看重的一个问题,在某种环境下,这种缺陷可能会间接扩大威胁行为者的攻击面,假设威胁行为者的目标是XX平台(存在该安全缺陷),而XX平台允许YY平台、ZZ平台的账户登录到XX平台账户,那么威胁行为者想要抵达XX平台则会多了两种选择,他们不再需要死盯XX平台账户,而是转向其他支持的第三方平台账户
这样的操作不但增加了攻击路径,还降低了敏感程度,即使在攻击YY平台和ZZ平台被目标发现,他们也不太可能会认为我们的攻击目标是XX平台。
平台后阶段集成统一身份认证系统带来的安全问题
这就是额外的内容,我曾因这个思路搭配其他漏洞获取财务系统super admin,所以顺便水一水。
一些产品在初期的时候通常各有各的登录系统和账户策略,这其实没什么问题,但在后期甲方各种业务系统数量逐渐增多,每个系统都得登录一回可能会比较繁琐
所以后期可能会引入“统一身份认证”系统来统一管理各个业务系统的用户,但问题就可能会出现在这里,虽然不能以偏概全,但至少我认为当甲方需要统一身份认证时,乙方有可能只会按需完成任务,
所以,业务系统原有的登录系统以及原有的用户数据如何处理这个问题可能会被忽略或管控不当
第一种是该业务系统原登录系统的管理员(例)未被禁用,而我们使用普通账户通过统一身份认证系统登录到该业务系统,恰好我们在这个业务系统上发现了某种漏洞泄露了admin的密码,直接拿这组凭据去该业务系统原登录系统上登录就行
第二种情况更多,就是被禁用了,但其密码却是被用在了管理员的统一身份认证系统的账户上,所以可以直接登统一认证系统再跳转进业务系统,这也算是密码重用
另外的主要安全问题是:各个业务系统原登录系统的默认密码策略各不相同、参差不齐,部分还是公开、弱策略,这对攻击者而言那可太棒了,简单收集一些用户信息和密码策略,轻松干进去。
这可比那先进且监管力度超大的“统一身份认证系统”好打多了。
原文始发于微信公众号(APT250):过度信任致使2FA可被绕过
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论