横向移动中RDP协议的利用

君子藏器于身待时而动,安全不露圭角覆盂之安。

——AnonySec

https://payloads.cn

SocksOverRDP

img

工具地址

https://github.com/nccgroup/SocksOverRDP ,此工具在 RDP 协议的基础上实现了 Socks 代理功能。

测试过程

客户端

IP:172.16.54.4

  • 配置 RDP Client

安装注册 DLL:

1
regsvr32.exe SocksOverRDP-Plugin.dll

取消注册:

1
regsvr32.exe /u SocksOverRDP-Plugin.dll
img
  • 在 RDP Client 中启动 mstsc.exe 时看到如下提示:

(默认情况下,客户端组件*.dll* 配置为仅在 localhost 上侦听)

img
  • 更改默认监听的IP

注册表位置:HKEY_CURRENT_USER\SOFTWARE\Microsoft\Terminal Server Client\Default\AddIns\SocksOverRDP-Plugin

(由 .dll 在注册时自行安装,或者需要从SocksOverRDP-Plugin.reg导入)

  1. 启用:0禁用,1启用默认 (默认情况下,处于启用状态,每次启动连接时都会在弹出消息框)

  2. ip : 要连接或绑定到的IP

  3. port : 连接或绑定到的端口

img

服务端

IP:172.16.54.9

  • 输入口令,成功连接RDP,之后在Server中运行SocksOverRDP-Server.exe。
img
  • 利用Proxifier测试RDP隧道状态。
img

利用场景

只有 tcp/udp 3389 端口可以进行通信时,可以利用 RDP 协议,建立 Socks 通道。

SharpRDP

在不通过 GUI 客户端和 Socks 代理的情况下,基于 RDP 协议进行横向移动。

Windows 中有一个库 mstscax.dll,可以执行任何 RDP 功能。此 DLL 是 Microsoft 终端服务的 ActiveX COM 库,通过利用此 DLL,可以创建控制台应用程序,该控制台应用程序通过 RDP 执行经过身份验证的远程命令执行,而无需 GUI 客户端或 SOCKS 代理。

工具地址

https://github.com/0xthirteen/SharpRDP ,下载后直接用 Visual Studio 编译运行即可。

测试过程

1
SharpRDP.exe computername=172.16.54.4 username=administrator password=admin@123 command="calc.exe"
img

利用上述方法执行命令后,所执行命令会隐藏在 RDP 协议中。
img

【注:使用 SharpRDP 成功执行命令后,目标机会出现锁屏状态 】

利用场景

在不使用传统的 RDP 客户端 GUI 情况下,利用RDP进行横向移动,且目标只有 3389 端口可以进行通信时。其次,可以在没有系统本地管理权限但拥有该系统的 RDP 权限时使用该工具。

Reference