站点图标 Linux-技术共享

如何使用Socat用来端口做VPS转发,拯救您的服务器和IP

前面我们已经学习了ssh端口转发、防火墙端口转发、rinetd端口转发、nc端口转发,今天我们来看一个增强版的nc端口转发,socat 这个工具和nc 有一点渊源,都是cat,都是网络相关的,都可以做端口转发、文件传输,这些功能都是冰山一角,有时间可以继续深入挖掘,今天先看端口转发,文章末尾有彩蛋~

nc是net cat , socat 是socket cat,名字相似,功能相似

v2-b15fa15a4bfb9d154487bb4455dcf3ab_720w
ailx10
1075 次咨询
4.9
网络安全优秀回答者
网络安全硕士
去咨询

实验环境:

  • macos:192.168.199.206
  • kali:192.168.199.247
  • centos:192.168.199.236

实验一:本地转发

socat TCP-LISTEN:8888,reuseaddr,fork TCP:127.0.0.1:22

从黑客视角看一看抓包

再从受害者角度看一看流量,怎么感觉和其他端口转发都一样啊

实验二:远程端口转发,换个IP地址即可

socat TCP-LISTEN:7777,reuseaddr,fork TCP:192.168.199.236:22
  • 看看黑客视角的流量,一样,不贴图了
  • 看看跳板机视角的流量,一样,不贴了

网络安全任重道远,洗洗睡吧~

 

彩蛋:使用socat 将一个小文件从macos传递到kali

1、在macos上操作

socat -u open:黑客0717.png tcp-listen:7777,reuseaddr

2、在kali上操作

socat -u tcp:192.168.199.206:7777 open:黑客0717.png,create

3、检查,成功拿到「“黑客0717”这张图片」

 

之前曾介绍过有关如何用SSH实现端口转发的方法,既可以用于ipv4,也可用于ipv6,感兴趣的朋友可以戳这里 ,本文介绍另一种可以实现端口转发效果的方法——socat,并且在某些方面要优于SSH。

什么是socat

socat是一种TCP或UDP流量转发工具,可以本机转发给本机,也可以本机转发给内网的机器,也可以转发给外网。利用socat可以实现很多有趣的功能。官方网站是这里

如何实现端口转发

例如将发往本机22端口的TCP流量,转移至ipv6地址[CDCD:910A:2222:5498:8475:1111:3900:2020]的3389端口,需要用如下命令:

nohup socat TCP4-LISTEN:22,reuseaddr,fork TCP6:[CDCD:910A:2222:5498:8475:1111:3900:2020]:3389

其中

nohup 是为了让socat后台运行,最后的&也是后台运行,熟悉linux的人对他们很熟了。

TCP4-LISTEN指明了ipv4的本机监听端口,

reuseaddr的意义是“Allows other sockets to bind to an address even if parts of it (e.g. the local port) are already in use by socat (example).”

fork意义是“After establishing a connection, handles its channel in a child process and keeps the parent process attempting to produce more connections, either by listening or by connecting in a loop”

TCP6指明转发的ipv6地址

与SSH做比较

笔者所处的网络环境并非太好,经常会网速较低。实测用SSH进行端口转发不如socat稳定。(尚未定量测试,目前主观感觉是这样的)

总结

socat从本质上来说,是将TCP或UDP流量直接转发给了另外的ip,在稳定性上略胜一筹,安全性有所折扣。

退出移动版