搜索
查看: 448|回复: 1

如何使用RDP中间人攻击进行横向渗透

[复制链接]

1839

主题

2255

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
11913
发表于 2018-5-3 21:48:38 | 显示全部楼层 |阅读模式
原文链接:http://www.4hou.com/penetration/11236.html

远程桌面协议(RDP)被管理员广泛地用于内部网络。RDP允许系统所有者和管理员远程管理Windows环境。然而,RDP同样也可以给攻击者提供各种机会进行攻击,这些攻击可以用于red团队场景中的横向渗透。下面的攻击可以让red团队获得凭证,以劫持其他用户的RDP会话,并向远程系统执行任意代码,这些远程系统将使用RDP作为被感染工作站的身份验证机制。

RDP中间人

实现中间人攻击通常会导致凭据捕获。中间人在对RDP会话进行攻击的同时,攻击者可以获得一个用于横向渗透的域名帐户的明文密码。Seth是一种可以使RDP中间人攻击自动化的工具,而不管网络级别的身份验证(NLA)是否启用。这次攻击的实施需要四个参数:

· 以太网接口

· 攻击者的IP

· 受害者工作站的IP(客户端)

· 目标RDP主机的IP(服务器)



  1. ./seth.sh eth0 10.0.0.2 10.0.0.3 10.0.0.1
复制代码

Seth-中间人

在执行时,该工具将在后台执行一系列步骤,以确保成功地实现攻击。这些步骤是:

  • 欺骗ARP应答

  • 启用IPv4流量的转发,将来自受害者主机的流量重定向到实施攻击的机器,然后再转发到目标RDP服务器。

  • 配置一个iptable规则来拒绝SYN包,以防止直接RDP身份验证。

  • 捕获目标主机的SYN包。

  • SSL证书的克隆。

  • 重新配置iptables规则,将来自受害者工作站的通信路由到目标RDP主机上。

  • 阻塞到端口88的通信,以将Kerberos身份验证降级为NTLM。


步骤1-3将在受害者身份验证之前执行。尝试通过RDP对目标服务器进行身份验证的用户将收到以下消息:

远程桌面连接-证书错误。

当用户建立连接时,凭证将以明文形式展现给攻击者。

Seth – RDP明文密码

RDP启动

MDSec发现了一种技术,它允许攻击者通过启动时执行任意代码,在网络中实现横向渗透,并且该技术通过RDP连接进行传播。为了便于攻击,MDSec开发了一个批处理脚本,以实现概念验证和深度攻击脚本。在一个攻击者已经获得访问的工作站中执行批处理脚本将会产生一个shell。

RDP启动-执行BAT文件

如果一个高级用户(管理员或域名管理员)试图通过RDP对已经被感染的主机进行身份验证,那么该批处理脚本将会被复制并在其他用户的系统上复制。

RDP启动-管理员通过RDP连接到工作站

每次工作站启动时,都将执行批处理脚本以实现持久性。

RDP启动-代码传播

当通过RDP向被感染的主机认证的高权限用户重新启动他的机器时,代码将被执行。

RDP启动- DC上的Meterpreter

活动的Meterpreter会话列表将验证攻击者在这两个系统上是否都有访问权限。

RDP启动- Meterpreter活动会话

RDP会话劫持

如果在目标系统上获得了本地管理员访问,攻击者则可能会劫持另一个用户的RDP会话。这使得攻击者不需要再获取该用户的凭证。该技术最初是由Alexander Korzniko发现的,在他的博客中也有描述。

可以被利用的可用会话列表,可以从“用户”选项卡的Windows任务管理器中检索。

RDP会话Gui

可以从命令提示符获得相同的信息。

  1. query user
复制代码

RDP会话终端

创建具有系统级别特权的tscon服务将劫持具有3作为ID的会话。

  1. sc create sesshijack binpath= "cmd.exe /k tscon 3 /dest:rdp-tcp#0"
  2. net start sesshijack
复制代码

通过服务劫持的RDP会话

当服务启动时,用户“测试”可以在不知道密码的情况下使用netbiosX会话。

RDP会话通过服务进行劫持——netbiosX用户

Mimikatz也支持这种技术。第一步是检索终端服务会话列表。

  1. ts::sessions
复制代码

Mimikatz -终端服务会话

由于Mimikatz没有作为SYSTEM被执行,所以直接使用会话1的尝试将失败。因此,下面的命令将把单点登录权限从本地管理员提升到SYSTEM,以便在不需要知道用户密码的情况下使用另一个会话。

  1. ts::remote /id:1
  2. privilege::debug
  3. token::elevate
复制代码

Mimikatz – RDP会话劫持

再次执行以下命令将劫持netbiosX用户的会话。

  1. ts::remote /id:1
复制代码

Mimikatz – netbiosX的RDP会话

本文翻译自:https://pentestlab.blog/2018/04/24/lateral-movement-rdp/


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?Join BUC

x
过段时间可能会取消签到功能了

1839

主题

2255

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
11913
 楼主| 发表于 2018-5-5 17:28:22 | 显示全部楼层
更新:有些人不喜欢产生执行警告的提示。在IDA中使用语法高亮来表示这部分内容被选中,然后可以进行复制和粘贴操作,同时由于IDA中用户默认安装了python,可以使用.py文件绕过警告对话框并直接从SMB共享中运行。所以,对于这种没有执行警告的地方我们需要格外小心。

在使用IDA 6.5时,我注意它对于一些字符串的处理方式显得很奇怪。在某些情况下,它实际上会遵守协议处理程序。比方说

过段时间可能会取消签到功能了
您需要登录后才可以回帖 登录 | Join BUC

本版积分规则

Powered by Discuz!

© 2012-2015 Baiker Union of China.

快速回复 返回顶部 返回列表