写在前面的话
通常,在执行渗透测试时,一般通过远程桌面协议(RDP)连接到系统。我通常使用rdesktop或xfreerdp连接到主机,一旦获得凭据就可以为所欲为了。我最近碰到一件很操蛋的事就是一个我的客户端使用Duo保护对Windows上的RDP的访问。特别是当3389是唯一打开端口,上次发生这种情况时,我在Pen Test Partners上找到了Alex Lomas的一篇文章,详细的介绍了用来绕过这种情况的方法。
这些攻击方法是有效的,前提是目标已经将它们的Duo配置为“fail open”
。这实际上很常见,因为它默认设置为关闭。 在这篇文章我将通过两种方式演示如何绕过:
1.假设:您可以在系统上获得shell将使用本地bypass
2.假设:您无法访问系统将使用网络攻击。
本地bypass
关于如何获得shell的方法。我通常使用CrackMapExec + Metasploit或wmiexec.py,但有很多选择。通过不需要2FA的方法进入目标后,运行下面命令:ipconfig /displaydns
我通常会把它导入到一个文件中,以防它体积太大,然后需要解析它并以找到Duo API DNS条目。每个Duo安装都会有一个与之对话的不同API端点。
如果由于某种原因DNS缓存中没有内容,则可能需要身份验证。如果一定要这样做,请避免使用您知道已注册Duo的帐户,因为这可能会向其手机发送推送消息,短信或电子邮件。下一步是编辑系统上的hosts文件。这需要管理员访问。
继续并备份原始主机文件。完成后,修改当前主机文件。可以通过将单个条目附加到Duo API端点映射到localhost来完成。现在,如果Duo设置为"fail open",您现在可以使用用户名和密码进入系统。完成后恢复hosts文件。
网络bypass
如果您没有管理员凭据或SMB/WMI/etc
,则可以使用中间人(MITM)攻击来访问Duo API。要执行这个操作,可以使用Bettercap。我们将使用它执行ARP欺骗攻击和DNS欺骗攻击。第一步是执行ARP欺骗。目标需要设置为我们试图访问的IP。Bettercap会欺骗主机相信我们是默认网关。要执行此攻击,攻击者必须与受害者位于同一广播域中。安装运行Bettercap后,输入:
>set arp.spoof.targets [VICTIM IP]
>arp.spoof on
Bettercap将自动启用转发功能。注意:您必须以root身份运行Bettercap才能启用转发:
在ARP欺骗工作之后,您将需要执行DNS欺骗。在Bettercap中输入:
>set dns.spoof.domains *.duosecurity.com
>dns.spoof on
这将修改对Duo security子域的DNS查询。它将使用攻击者的IP地址进行响应。
在运行中,攻击者现在可以通过RDP登录系统,而无需使用2FA。登录后,退出Bettercap。Bettercap将重新ARP欺骗目标,但可能需要几分钟才能进入DNS条目。
*参考来源n00py,由周大涛编译,转载请注明来自FreeBuf.COM