君子藏器于身待时而动,安全不露圭角覆盂之安。
——AnonySec
SocksOverRDP
工具地址
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 |
- 在 RDP Client 中启动
mstsc.exe
时看到如下提示:
(默认情况下,客户端组件*.dll* 配置为仅在 localhost 上侦听)
- 更改默认监听的IP
注册表位置:HKEY_CURRENT_USER\SOFTWARE\Microsoft\Terminal Server Client\Default\AddIns\SocksOverRDP-Plugin
(由 .dll 在注册时自行安装,或者需要从SocksOverRDP-Plugin.reg导入)
启用:0禁用,1启用默认 (默认情况下,处于启用状态,每次启动连接时都会在弹出消息框)
ip : 要连接或绑定到的IP
port : 连接或绑定到的端口
服务端
IP:172.16.54.9
- 输入口令,成功连接RDP,之后在Server中运行SocksOverRDP-Server.exe。
- 利用Proxifier测试RDP隧道状态。
利用场景
只有 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" |
利用上述方法执行命令后,所执行命令会隐藏在 RDP 协议中。
【注:使用 SharpRDP 成功执行命令后,目标机会出现锁屏状态 】
利用场景
在不使用传统的 RDP 客户端 GUI 情况下,利用RDP进行横向移动,且目标只有 3389 端口可以进行通信时。其次,可以在没有系统本地管理权限但拥有该系统的 RDP 权限时使用该工具。