0x00 前言

当防火墙规则配置为:只有 tcp/udp 3389 端口可以进行通信时,可以利用 RDP 协议,建立 Socks 通道。应用场景较为极端。

SocksOverRDP 可以将 SOCKS 代理的功能添加到远程桌面服务,它使用动态虚拟通道,使我们能够通过开放的 RDP 连接进行通信,而无需在防火墙上打开新的套接字、连接或端口。此工具在 RDP 协议的基础上实现了 SOCKS 代理功能,就像 SSH 的-D参数一样,在建立远程连接后,即可利用 RDP 协议实现代理功能。

0x01 通过 SocksOverRDP 搭建 SOCKS5 代理

image-20221121221807279

win7 是一个 Web 服务器,有两个网卡,分别连通内外网。假设此时攻击者已经通过渗透手段拿下了这台 Web 服务器,需要设置代理进入内网继续对内网进行横向渗透。但是由于防火墙的规则等原因,只允许 TCP/UDP 3389 端口可以进行通信,所以我们只能尝试利用用 RDP 协议来建立通讯隧道。

在攻击机winserver2012上需要安装注册 SocksOverRDP-Plugin.dll。首先我们将 SocksOverRDP-Plugin.dll 放置到攻击机的任何目录中,但是为了方便我们可以将其放置到%SYSROOT%\system32\%SYSROOT%\SysWoW64\目录下。

然后使用以下命令对 SocksOverRDP-Plugin.dll 进行安装注册:

1
2
regsvr32.exe SocksOverRDP-Plugin.dll   #注册
regsvr32.exe /u SocksOverRDP-Plugin.dll #取消注册
image-20221121215211630

如上图所示,注册成功。 SocksOverRDP 建立的 SOCKS5 代理是默认监听在 127.0.0.1:1080 上。

为了让攻击者的 Kali 也能使用搭建在攻击机 Windows 10 上的 SOCKS5 代理,我们需要修改其注册表,将 IP 从 127.0.0.1 改为 0.0.0.0。注册表的位置为:

1
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Terminal Server Client\Default\AddIns\SocksOverRDP-Plugin
image-20221121222954623

rdp连接192.168.0.106,远程桌面连接成功后,将服务端组件 SocksOverRDP-Server.exe 上传到win7上,运行

image-20221121222528769 image-20221121220124851

此时便成功搭建了一个 SOCKS5 代理隧道,查看攻击机 Winserver2012的端口连接状态发现已经建立连接

image-20221121222641710

然后在攻击机 Kali 上配置好 proxychains:

image-20221121223224530

此时便可以通过代理访问到内网的主机 DC 了。

1
proxychains4 rdesktop 10.1.1.2