初衷
内网穿透已经有很多工具了,例如FRP,Cloudflare Tunnel,但是这些都是针对于固定的内网机器,需要预先配置(网页/配置文件)才能使用。我需要的是即插即用的穿透,以用于:
- 解客户端的 CF 验证码
- 快速使用客户端 IP 访问网络
- 渗透测试
WSSocks
因此,我首先开发了 wssocks 套件: zetxtech/wssocks。
这个套件分为服务器、网络提供端和访问端,可以实现访问端->服务器->提供端的网络连接,同时提供端和访问端都可以在内网中。中间过程完全使用 Websocket 连接,可以使用防火墙(Cloudflare)保证服务器 IP 不泄露。
Pywssocks
随后,我实现了 wssocks 的 Python 版本,以嵌入其他的 Python 程序中: zetxtech/pywssocks
Python 版本完全还原了 Golang 版本的功能,但是性能可能较低,推荐作为客户端使用。
WSSocks.js
随后,我将服务端迁移为 Cloudflare Worker 版本,这样就不需要服务器了,而且 Cloudflare Worker 在全球都有服务器,保证各地都能低延迟访问: zetxtech/wssocks.js。
也可以用我部署的公共服务器:https://wssocks.zetx.tech
WSTerm
既然如此,可以开发一些额外的应用,例如一键连接内网 Shell,以用于渗透测试,因此我开发了基于 Websocket 的终端传递工具: zetxtech/wsterm
这样,在靶机上:
wsterm server -t YOUR_TOKEN
在主控机上:
wsterm client -t YOUR_TOKEN
即可连接,无需预先设置,无视靶机内网和防火墙,使用 Cloudflare 实现低延迟(国内可能会慢点)
总结
- Golang 好用又难用
- Cloudflare 大善人
- AI 编程好笨,经常被气死
- 我又在摸鱼搞这些,真该死啊