SocksOverRDP
0x00 前言
当防火墙规则配置为:只有 tcp/udp 3389 端口可以进行通信时,可以利用 RDP 协议,建立 Socks 通道。应用场景较为极端。
SocksOverRDP 可以将 SOCKS 代理的功能添加到远程桌面服务,它使用动态虚拟通道,使我们能够通过开放的 RDP 连接进行通信,而无需在防火墙上打开新的套接字、连接或端口。此工具在 RDP 协议的基础上实现了 SOCKS 代理功能,就像 SSH 的-D
参数一样,在建立远程连接后,即可利用 RDP 协议实现代理功能。
0x01 通过 SocksOverRDP 搭建 SOCKS5 代理
win7 是一个 Web 服务器,有两个网卡,分别连通内外网。假设此时攻击者已经通过渗透手段拿下了这台 Web 服务器,需要设置代理进入内网继续对内网进行横向渗透。但是由于防火墙的规则等原因,只允许 TCP/UDP 3389 端口可以进行通信,所以我们只能尝试利用用 RDP 协议来建立通讯隧道。
在攻击机winserver2012上需要安装注册 SocksOverRDP-Plugin.dll。首先我们将 SocksOverRDP-Plugin.dll 放置到攻击机的任何目录中,但是为了方便我们可以将其放置到%SYSROOT%\system32\
或%SYSROOT%\SysWoW64\
目录下。
然后使用以下命令对 SocksOverRDP-Plugin.dll 进行安装注册:
1 | regsvr32.exe SocksOverRDP-Plugin.dll #注册 |
如上图所示,注册成功。 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 |
rdp连接192.168.0.106,远程桌面连接成功后,将服务端组件 SocksOverRDP-Server.exe 上传到win7上,运行
此时便成功搭建了一个 SOCKS5 代理隧道,查看攻击机 Winserver2012的端口连接状态发现已经建立连接
然后在攻击机 Kali 上配置好 proxychains:
此时便可以通过代理访问到内网的主机 DC 了。
1 | proxychains4 rdesktop 10.1.1.2 |