*本文原创作者:tahf,本文属FrBuf原创奖励计划,未经许可禁止转载
之前在Frbuf上学习过很多大牛写的关于Tunnl、SOCKS代理、科学上网等文章,很受启发。
作为一个小白,近期心血来潮,搜集并测试了一些Windows平台下的SOCKS代理工具,下面我想用自己简单搭建的一套模拟环境来展示SOCKS代理在内网漫游时的使用姿势并推荐几款Windows平台下实用的SOCKS代理工具。花了不少时间在制图上^0^。
0×00引言
很久很久以前,突然有一天,出现了GFW,不得已需要科学上网。
早期我们可能会采用HTTPProxy代理,在浏览器上设置下代理服务器的IP、端口、认证账户和密码。但有些软件的网络通信数据并不是HTTP协议,就需要寻找其它方法。
SOCKS代理是个不错的解决方案,不管应用层是什么协议,只要是传输层是TCP协议就可以代理。SOCKS代理中最新的协议是SOCKS5。相对SOCKS4作了大幅度的增强。
首先,它增加了对UDP协议的支持;其次,可支持多种用户身份验证方式和通信加密方式;最后,修改了SOCKS服务器进行域名解析的方法,使其更加优雅。
经过这次脱胎换骨的升级,SOCKS5于年被IETF确认为标准通信协议,RFC编号为。经过10余年的时间,大量的网络应用程序都支持SOCKS5代理。
关于SOCKS代理的更多资料感兴趣的可以自行搜索。让我们把科学上网的思路转变下,如果把SOCKS代理服务架设到内网中,并从外网访问内网的SOCKS代理服务,是否可以访问到内网中开放的各种资源,实现内网漫游呢?
0×01转变SOCKS使用思路
我搭建了一个比较简单的模拟环境来验证这种想法,该过程主要演示SOCKS代理在内网漫游时发挥的重要作用。
左侧是我们的个人电脑和一台具有公网IP的VPS,MyPC通过NAT连接互联网。右侧模拟的是一个小型网络。假设我们获得了一台Wb服务器的控制权限,该服务器配有两块网卡,10.0.27.连通互联网,..5.可与内部网络连通。
经过信息收集和端口扫描,小型网络结构如下图所示,由四台服务器和两台嵌入式设备组成。其中我们控制的Wb服务器是连通互联网和内部网络的关键节点,其余服务器均不能直接连通互联网。
想要在内网中漫游,我们希望能够访问服务器和设备提供的各种资源,因此需要通过某种方式使MyPC上安装的浏览器及其它客户端等软件能够访问右侧内部网络中所有开放的端口。传统方法是利用lcx等工具,进行端口映射。比如要映射..5.的80端口:
1、在VPS上执行
lcx.x–listn
2、在wb服务器上执行
lcx.x–slavX.X.X.X80..5.80
3、在左侧的MyPC机上打开浏览器并输入