socks5基础

文章目录

一、什么是socks5

socks是”SocketS”的缩写,因此socks5也叫sockets5。

socks是一种网络传输协议,主要用于客户端与外网服务器之间通讯的中间传递。根据OSI七层模型来划分,SOCKS属于会话层协议,位于表示层与传输层之间。

当防火墙后的客户端要访问外部的服务器时,就跟socks代理服务器连接。该协议设计之初是为了让有权限的用户可以穿过过防火墙的限制,使得高权限用户可以访问外部资源。经过10余年的时间,大量的网络应用程序都支持socks5代理

这个协议最初由David Koblas开发,而后由NEC的Ying-Da Lee将其扩展到版本4,最新协议是版本5,与前一版本相比,socks5做了以下增强:

增加对UDP协议的支持;

  • 支持多种用户身份验证方式和通信加密方式;
  • 修改了socks服务器进行域名解析的方法,使其更加优雅;

二、socks5协议

[推荐-写的全面仔细]SOCKS5代理原理探索
参考URL: https://blog.csdn.net/cszhouwei/article/details/74362427
[推荐]socks5协议理解(TCP/UDP)
参考URL: https://www.jianshu.com/p/6fc3fd5dd5ea

官方参考: https://www.ietf.org/rfc/rfc1928.txt
RFC地址:
rfc1928
rfc1929

SOCKS 服务端缺省侦听在 TCP 1080 端口。

客户端发起连接之后,首先需要和服务端协商认证方法
认证协商完成以后,客户端开始发送具体的请求
服务端收到请求后,处理后返回

至此,客户端和服务端的连接已经建立完成,后续客户端可以通过 SOCKS5 服务端与目的地址进行数据传输。

三、应用场景

设计SOCKS协议的初衷是在保证网络隔离的情况下,提高部分人员的网络访问权限,但是国内似乎很少有组织机构这样使用。一般情况下,大家都会使用更新的网络安全技术来达到相同的目的。

目前来说,人们利用SOCKS协议的主要是为了:突破网络通信限制,这和该协议的初衷实际上正好相反。

Socks在渗透测试中使用特别广泛,能够很方便让我们与目标内网计算机之间通信,避免了一次又一次使用端口转发的麻烦。

在实际渗透测试过程中,当我们成功的拿下第一台堡垒机后,此时我们又想对目标内网进一步渗透测试时,socks能够帮助我们更加快速的,方便的访问目标内网的各种资源,比传统的端口转发更加实用。

1. 突破内网只容许访问80端口的限制

一些场景下,防火墙仅允许部分端口(如http的80端口)通信,那么可以利用SOCKS5协议和一个打开80端口监听的SOCKS5服务器连接,从而可以连接公网上其他端口的服务器。

2. ftp通过socks5代理访问

四、常见的Socks5服务工具

  1. Earthworm 工具网址:http://rootkiter.com/EarthWorm

EW 是一套便携式的网络穿透工具,具有 SOCKS v5服务架设和端口转发两大核心功能,可在复杂网络环境下完成网络穿透。该工具能够以“正向”、“反向”、“多级级联”等方式打通一条网络隧道,直达网络深处,用蚯蚓独有的手段突破网络限制,给防火墙松土。工具包中提供了多种可执行文件,以适用不同的操作系统,Linux、Windows、MacOS、Arm-Linux 均被包括其内,强烈推荐使用。

目前已经有了最新版Termite,工具网址:http://rootkiter.com/Termite/

2.reGeorg 工具网址:https://github.com/NoneNotNull/reGeorg

reGeorg是reDuh的升级版,主要是把内网服务器的端口通过http/https隧道转发到本机,形成一个回路。用于目标服务器在内网或做了端口策略的情况下连接目标服务器内部开放端口。它利用webshell建立一个socks代理进行内网穿透,服务器必须支持aspx、php或jsp这些web程序中的一种。

3.sSocks 工具网址:http://sourceforge.net/projects/ssocks/

sSocks是一个socks代理工具套装,可用来开启socks代理服务,支持socks5验证,支持IPV6和UDP,并提供反向socks代理服务,即将远程计算机作为socks代理服务端,反弹回本地,极大方便内网的渗透测试,其最新版为0.0.13。

4.SocksCap64 工具网址:http://www.sockscap64.com (需*)

SocksCap64是一款在windows下相当好使的全局代理软件。SocksCap64可以使Windows应用程序通过SOCKS代理服务器来访问网络而不需要对这些应用程序做任何修改, 即使某些本身不支持SOCKS代理的应用程序通过SocksCap64之后都可以完美的实现代理访问。

1. EarthWorm

内网穿透大杀器–EarthWorm
参考URL: https://blog.csdn.net/nzjdsds/article/details/82025651

EarthWorm,(简称EW)是一套轻量便携且功能强大的网络穿透工具,基于标准C开发,具有socks5代理、端口转发和端口映射三大功能。
支持多平台间的转接通讯,Linux、Windows、MacOS、Arm-Linux均支持。

2. ProxyChains

github地址:https://github.com/rofl0r/proxychains-ng
[讲解具体如何使用]ProxyChains 实现自动添加代理逃避检测
参考URL: https://www.freebuf.com/articles/network/159199.html

ProxyChains是一个开源代理工具,能够强制使任何应用的TCP连接使用SOCKS4,SOCKS或者HTTP(S)代理进行连接。

ProxyChains是Linux和其他Unices下的代理工具。 它可以使任何程序通过代理上网, 允许TCP和DNS通过代理隧道, 支持HTTP、 SOCKS4和SOCKS5类型的代理服务器, 并且可配置多个代理。 ProxyChains通过一个用户定义的代理列表强制连接指定的应用程序, 直接断开接收方和发送方的连接。

ProxyChains 是一个强制应用的 TCP 连接通过代理的工具,支持 Tor、HTTP、与 Socks 代理。与 sshuttle 不同的是,ProxyChains 只会将当前应用的 TCP 连接转发至代理,而非全局代理。

proxychains 只会代理 TCP 连接,而 ping 使用的是 ICMP。

proxychain和 proxifier很类似,proxychain相当于linux下的proxifier (Proxifier是一款功能非常强大的socks5客户端,可以让不支持通过代理服务器工作的网络程序能通过HTTPS或SOCKS代理或代理链。)

proxyChains使用

oxyChains运行的所有配置都在/etc/proxychains.conf中。
在[ProxyList]下面添加代理IP和端口,可以任意添加代理,一行一个记录。

各配置项用法如下:

dynamic_chain:该配置项能够通过ProxyList中的每个代理运行流量,如果其中一个代理关闭或者没有响应,它能够自动选择ProxyList中的下一个代理;

strict_chain:改配置为ProxyChains的默认配置,不同于dynamic_chain,也能够通过ProxyList中的每个代理运行流量,但是如果ProxyList中的代理出现故障,不会自动切换到下一个。

random_chain:该配置项会从ProxyList中随机选择代理IP来运行流量,如果ProxyList中有多个代理IP,在使用proxychains的时候会使用不同的代理访问目标主机,从而使主机端探测流量更加困难。

大致了解了proxychains的配置项之后,可以测试一下proxychains使用代理访问的情况,proxychains使用起来也非常简单,命令形式为:

proxychains <运行的命令> <命令参数>

socks5基础

五、常见socks5客户端工具

socks5代理IP如何使用,请看这几款常用软件
参考URL: https://www.jianshu.com/p/d77a899f973a

Simple C code with iptables make this tool proxifier which tunnels whole system traffic through proxy server ,with out configuring individual application
带有iptables的简单C代码使该工具成为代理程序,它通过代理服务器传输整个系统流量,不配置单个应用程序。

1. Proxifier

Proxifier是一款功能非常强大的socks5客户端,可以让不支持通过代理服务器工作的网络程序能通过HTTPS或SOCKS代理或代理链。

Proxifier是一款功能非常强大的socks5客户端,可以让不支持通过代理服务器工作的网络程序能通过HTTPS或SOCKS代理或代理链。支持 64位系统,支持Xp,Vista,Win7,MAC OS ,支持socks4,socks5,http代理协议,支持TCP,UDP协议,可以指定端口,指定IP,指定域名,指定程序等运行模式,兼容性非常好。有点类似SOCKSCAP。

这个软件是windows下软件。

2. sockscap64

巧用SocksCap64打开Google听语音
参考URL: https://jingyan.baidu.com/article/2c8c281dd62db60008252a25.html

Sockscap64是一款由Taro开发的免费的应用程序外壳。 Sockscap64可以使Windows网络应用程序来访问网络而不需要对这些应用程序做任何修改(即使某些本身不支持SOCKS代理的应用程序通过Sockscap64之后都可以完美的实现代理访问), 例如: Web Browsers IM程序, FTP Clients, e-mail programs or games。 Sockscap64当前只支持Socks4/5代理协议, 目前仅支持TCP链接( 接下来的版本中会支持UDP协议 )。

Windows下使用sockscap64,有图形化界面,简单易用。

SocksCap是目前对网络游戏兼容性最好的代理工具之一。

SocksCap32 软件是由美国 NEC USA, Inc. 公司出品的代理服务器第三方支持软件。拥有功能强大的 SOCKS 调度,使用它就可以让 169 用户达到使用 163 代理的要求,通过它几乎可以让所有基于 TCP/IP 协议的软件象 ICQ、MUD、FTP、IE、NEWS……都能通过 Socks 代理服务器连接到Ineternet,甚至是代理猎手还可以通过它去搜索 163 的代理服务器,是 169 用户的理想工具。

六、参考

【技术分享】内网漫游之SOCKS代理大结局
参考URL: https://www.anquanke.com/post/id/85494
socks5代理IP如何使用,请看这几款常用软件
参考URL: https://www.jianshu.com/p/d77a899f973a
A software like Proxifier for linux? [closed]
参考URL: https://superuser.com/questions/424045/a-software-like-proxifier-for-linux

上一篇:windows10 设置 socks5 代理


下一篇:浏览器插件使用socks5代理