连接多层内网redis

今天我的团队的hxd在打多层内网(有授权),有内网的redis密码,但是层数太多,所以探讨怎么连接过去,作为优秀的社会主义新青年,我立马给了俩方案:

  1. socks代理过去连接
  2. 端口转发,直接连接外网ip

分析思路如下:

首先我们要知道Redis底层网络通信协议其实是通过TCP来完成的,下面是一堆废话,可看可不看

  • 状态回复(status reply)的第一个字节是 "+"
  • 错误回复(error reply)的第一个字节是 "-"
  • 整数回复(integer reply)的第一个字节是 ":"
  • 批量回复(bulk reply)的第一个字节是 "$"
  • 多条批量回复(multi bulk reply)的第一个字节是 "*"

继续,既然是基于TCP协议,那就两个思路,一个是socks直接代理进去,另一个是端口转发,windows自带了个netsh,这玩意做端口转发还是挺香的,下面依旧是废话,可看可不看

添加一条转发:

netsh interface portproxyadd v4tov4 listenport=监听端口 listenaddress=监听地址 connectport=目标端口 connectaddress=目标地址

查看转发:

`netsh interface portproxyshow all`

删除转发:

`netsh interface portproxy delete v4tov4 listenport=3340 listenaddress=192.168.204.150`

继续,模拟的测试环境拓扑大概是这样的(别问我为啥没画专业的拓扑图,麻烦):

img

我的主机可以直连192.168.169.239,通过这个主机做netsh端口转发:

`netsh interface portproxyadd v4tov4 listenport=3340 listenaddress=0.0.0.0 connectport=6379 connectaddress=169.2 54.43.139`

redis服务器起个redis服务:

redis-server.exe --protected-mode no  //--protected-mode no 这个是用来禁用受保护模式,省的以后被人入侵,所以用这个只是关闭一次

本地连接192.169.169.239的监听端口:

redis-cli.exe -h 192.168.169.239 -p 3340

结果:

img

这个都好使了,那个应该也是好使的,我就不测试了,请原谅我是一个懒比,不原谅也无所谓,我不在乎

img

Comments