文章前言
管理员在内部网络中广泛使用远程桌面协议(rdp),这允许系统所有者和管理员远程管理windows环境,然而RDP可以给攻击者提供各种机会来实施攻击,这些攻击可以用于红队场景中的横向移动,下面的攻击可以让RedTeam获得凭据,劫持其他用户的RDP会话,并对远程系统执行任意代码,这些远程系统将使用RDP作为受感染工作站的身份验证机制。
RDP劫持
实施中间人攻击通常会导致凭据捕获,它正在对RDP会话执行这种攻击,这将允许攻击者为了横向移动的目的而轻易地获得域帐户的纯文本密码,seth是一个工具,无论是否启用网络级身份验证(nla),它都可以自动执行RDP中间人攻击,实施这种攻击需要四个参数:
-
以太网接口
-
攻击者的ip
-
受害主机的ip
-
目标rdp主机的ip
./seth.sh eth0 10.0.0.2 10.0.0.3 10.0.0.1
在执行时,该工具将在后台执行一系列步骤,以确保成功实施攻击:
-
ARP欺骗
-
允许转发ipv4流量,将流量从受害主机重定向到攻击者计算机,然后重定向到目标rdp服务器
-
配置iptable规则来拒绝syn数据包,以防止直接rdp身份验证
-
捕获目的主机的syn数据包
-
ssl证书的克隆
-
重新配置iptables规则,将流量从受害工作站路由到目标rdp主机
-
阻止到端口88的流量,以将kerberos身份验证降级到ntlm
步骤1-3将在受害者认证之前执行,试图通过rdp向目标服务器进行身份验证的用户将收到以下消息:
当用户建立连接时,凭据将以纯文本形式显示给攻击者
PS:该方法笔者在本地未实验成功,因为有SSL强校验,在实战中建议慎用~
RDP Inception
mdsec发现了一种技术,该技术允许攻击者在启动时执行任意代码并通过RDP连接传播,从而在网络内部执行横向移动,整个思路大致如下:
而在渗透测试中,如果我们获得某台服务器C的控制权,而最终目标是PC X,但由于对方高度安全的网络环境限制,我们只有采取RDPInception攻击方式,通过对接入C的服务器B进行攻击控制,之后,对接入B的服务器A进行攻击控制,最终,对接入A的PC X形成攻击控制,整个攻击链如下:
PC X RDP ————> Server A
Server A RDP ————> Server B
Server B RDP ————> Server C
为了促进这种攻击,mdsec开发了一个批处理脚本(https://github.com/mdsecactivebreach/RDPInception)来实现概念验证,不过该技术在利用时有一个先决条件就是内网其他主机远程连接受感染主机时"本地资源"选项中设置了加载C盘:
之后攻击者可以在已经获得访问权限的主机上执行批处理脚本将获得一个shell
该脚本执行之后将会在已经获得访问权限的WIndow 7主机上和远程连接的主机上同时创建启动项:
文章内容过多,不想再复制一遍了,更多内容请访问一下原文链接进行查看:
横向移动之RDP&Desktop Session Hijack
未知攻,焉知防,以攻促防,共筑安全~
个人知乎:https://www.zhihu.com/people/flypeng-56
个人CSDN:https://blog.csdn.net/Fly_hps
个人GitHub:https://github.com/Al1ex
个人云+社区:https://cloud.tencent.com/developer/user/8423247
安全团队公众号:七芒星实验室
欢迎关注微信公众号"七芒星实验室"获取最新安全动态~