Windows/Linux端口复用工具

华盟原创文章投稿奖励计划

工具简介

port_reuse是用golang实现的windows and linux 端口复用工具,主要是在项目中遇到以下问题时使用(以均不出网得场景下):

  • 外网打点遇到内网不出网,代理慢的一批,不管是rdp、ssh还是http等连接均卡得不行。

  • 内网环境遇到强隔离,双方只有个别端口能通无法做二层代理。使用Neo-reGeorg代理又太慢,尤其是正向加正向代理

我的解决思路是遇到jsp还好可以使用suo5(新版已支持.NET),遇到别的语言确实只能使用Neo-reGeorg。在网上也看到了端口分流的工具,但是依赖于防火墙进行流量转发,所以就衍生了以下工具。

https://github.com/zema1/suo5

工具实现

首先来看代码我们可以通过”golang.org/x/sys/windows”库来指定SO_REUSEADDR。

var lc = net.ListenConfig{ Control: func(network, address string, c syscall.RawConn) error { var opErr error if err := c.Control(func(fd uintptr) { opErr = windows.SetsockoptInt(windows.Handle(fd), windows.SOL_SOCKET, windows.SO_REUSEADDR, 1) }); err != nil { return err } return opErr },}

接着我们直接监听,运行测试以下

l, err := lc.Listen(context.Background(), "tcp", laddr)

自动草稿

我们可以看出以上不同的进程来监听同一个程序。那么端口复用到底又什么用的。我们可以进行以下实验。

首先我们80端口启动一个web服务,来模拟实战环境下内网不出网,同时只能访问web端口的情况。自动草稿

我们通过mstsc来连接80端口,正常情况下是肯定连接不通的。自动草稿

当我们开启端口复用的时候同时来复用3389端口来看看。可以看出我们通过连接192.168.255.128:80也能跟3389建立连接。自动草稿

同时也不影响web端口的正常服务使用自动草稿

下载地址

https://github.com/p1d3er/port_reuse

文章来源:Hack分享吧

黑白之道发布、转载的文章中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途及盈利等目的,否则后果自行承担!

如侵权请私聊我们删文


END

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容