标题:一个奇怪(而又危险)的想法 出处:Felix021 时间:Fri, 01 Sep 2023 00:28:34 +0000 作者:felix021 地址:https://www.felix021.com/blog/read.php?2245 内容: 2009年在 B 厂实习的时候,人手发一个硬件 token,它有个屏幕,实时显示 6 位 TOTP ,用于登录 relay 机器,再通过 relay 机器登录生产环境的机器。 由于 relay 机器禁用了端口转发等各种 fancy 的能力,所以除了 shell 上的输入和输出外无法实现额外的通信。 好在 SecureCRT 默认支持 zmodem 协议,大家都用 sz/rz 来上传/下载文件,也还算方便。 sz 是基于 zmodem 协议实现的,这个功能在早期的 BBS 上非常实用。 简单说就是,通过发送一个特殊的控制串,告诉 terminal 它想要发送一个文件,支持 zmodem 协议的 terminal 会将后续发送的数据保存到本地文件中。 当然具体的协议细节比较复杂,不是本文重点,就不展开了,详情可参考知乎这位老哥的整理 https://zhuanlan.zhihu.com/p/579720546 。 继续发散,我们可以想象一下,如果我们实现 2 个程序 A、B: 1. A 通过 ssh 连接到目标机器,打开 B 2. 用 B 的 stdin/stdout 来「模拟」一个 tcp 连接 3. 在这个「tcp 连接」上用 xtaci/smux 实现多路复用 4. 在 A 实现 socks5 的前端(监听),在 B 实现 socks5 的后端(转发) 这样我们就实现了一个穿透了 relay 的代理。 领导:明天去财务处结一下工资,后天不用来了。 Generated by Bo-blog 2.1.0