Socks Over Rdp绕过校园网流量协议限制

Socks Over Rdp绕过校园网流量协议限制

最近学校又开始不当人了,校园网屏蔽了RDP协议的流量,这样我就没办法直接连远程桌面了。一开始我以为学校只是屏蔽了3389端口的流量,于是我把Windows Server的rdp端口从3389改成了22端口(假装自己是一台Linux哈哈)。但是发现行不通,看来学校是屏蔽了RDP协议的流量,经过一番折腾总算绕过才有了这篇文章。

直接用mstsc连接的时候就会提示这个,一开始我想着要不换个网络或者手机开个热点算了。但想着自己好歹也是搞安全的,什么防火墙,waf没绕过?怎么能被学校这种辣鸡网络给限制了!

我最先想到流量封装,就是什么icmp,ssh隧道什么的,只要是放行的协议就行。但是想着我又不是为了传输payload,何必整的这么麻烦呢。直接用socks协议转发流量不就好了?

因为rdp是应用层协议,而socks是在会话层的,理论上是可以封装的。经过一番谷歌后发现确实可以实现。这里用到了SocksCap这款代理工具。

sockscap64是一款免费的64位SOCKS代理软件,它可以使Windows网络应用程序通过SOCKS代理服务器来完美访问外部网络,从而达到隐藏真实身份(ip地址)和加速网络的目的,目前只支持Socks4/5代理协议。它可以使Windows应用程序通过SOCKS代理服务器来访问网络而不需要对这些应用程序做任何修改, 即使某些本身不支持SOCKS代理的应用程序通过SocksCap64之后都可以完美的实现代理访问。

这款工具大家就直接在网上搜索下载即可,下载安装之后先添加我们需要代理的程序。

这里我们就选择mstsc添加。

这里其实是要给绝对路径的,直接输mstsc是不行的。可以直接在cmd中where查看命令对应的可执行文件的路径。

接下来就是添加代理地址了,虽然SocksCap本身是一个代理工具,但我们依旧可以使用一个前置代理做额外的工作。比如这里我经常使用V2rayN作为客户端的科学上网工具,因为支持多种协议非常方便。我们将V2rayN作为前置socks代理监听在本地的1080端口。

这里我用了三种不同的协议如图来分别测试,然后运行代理后的mstsc。至于分别怎么搭建的,我就不在这里详述了,大家可以自行了解。

接下来添加本地的socks代理,也就是V2rayN。

然后运行即可。

这个在启动的时候会稍微慢一些,经过测试之后发现,直接说结论了。

vmess和shadowsocks协议都可以绕过防火墙的限制,原生的socks协议还是被拦截了。

其实原因很简单,因为前两者流量都是经过加密的,虽然里面是封装的RDP的流量,但防火墙根本没办法识别,就只能放行了。而socks是直接转发的,防火墙可以检测到rdp的报头,所以还是拦截了。

一番折腾之后又可以愉快地远程桌面了,不愧是我哈哈!

总结:对于校园网检测协议流量的这种情况,对流量进行加密封装转发就是最好不过的方式了,其实这里不仅限于RDP协议,所以应用层的协议都可以这样实现。想想当初shadowsocks的设计理念不就是这样的吗,通过加密流量对抗封锁,以及冰蝎的加密流量都是这样的。果然很多思想都是相通的!

赞赏

微信赞赏支付宝赞赏

Zgao

愿有一日,安全圈的师傅们都能用上Zgao写的工具。

6条评论

匿名 发布于8:05 下午 - 9月 3, 2021

提个小建议:用SSH隧道转发更有针对性,更轻量,而且(用私钥保护)安全性更好。现在Windows 10支持直接开启OpenSSH服务端了。

    Zgao 发布于10:34 上午 - 9月 6, 2021

    是的,思路都是相通的。

noth 发布于7:44 下午 - 6月 9, 2021

有想過用端口轉發嗎? Ngrok or LCX

情缘 发布于10:45 上午 - 4月 29, 2021

novnc也是一个方案哈哈

匿名 发布于2:48 下午 - 4月 5, 2021

估计没人开发那种拦截一切未知流量的防火墙吧。普通PC里的应用程序那么复杂,各种乱七八糟的私有协议那么多,万一客户买回去,隔三岔五上不了网,那可怎么办?感觉博主的办法在很长一段时间里都很管用。

匿名 发布于1:27 上午 - 1月 8, 2021

厉害

回复 匿名 取消回复