遇到了存在 a 、b、c 三台机器,a 、b 之间可以互相连接,b、c之间也可以连接,a、c 直接不能互相连接。a 、c 可以完全自由控制,b 不能控制,但是机器上存在一个只有 c 可以访问的代理端口,所以目前是 c 可以走代理访问到 a,我现在需要 a 能够访问 c,所以想要做内网穿透
利用 frp + proxychains + socat
frp 是内网穿透工具,但是 frpc 没有走代理的功能,所以需要用到 proxychains
但是 proxychains 是原理是 hook libc,而 frp 是 go 编写的,所以需要用 socat 来转发流量
假设 192.168.25.129 是 a 机器
物理机 192.168.25.1 开启了 1080 代理的是 b 机器
以及 c 机器 kali
将 frps 放到 a 机器
frsp.toml 配置如下
1 | bindPort = 7000 |
将 frpc 放到 b 机器,这里我是为了能够让 gdbserver 使用才用的内网穿透,所以只映射 1234 端口,frps ip 则是本地
1 | serverAddr = "127.0.0.1" |
接下来修改 /etc/proxychains.conf 中的 代理 ip 和 port
接着就可以在 kali 中利用 socat 转发流量
1 | proxychains socat TCP4-LISTEN:7000,reuseaddr,fork TCP4:192.168.25.129:7000 |
可以将 frpc 连接到本地 7000 端口的流量通过代理发送到真正运行 frps 的 b 机器上,接着就是正常运行 frps 和 frpc
就能看到是通过 b 机器的代理访问的 frps,成功连接
就是这环境太折磨人了,走了代理后的流量,gdbserver 调试个东西特卡,一个指令跑几秒
参考链接:
https://oldblog.mcfx.us/archives/277/
https://blog.csdn.net/laoxiaa/article/details/140474630