Sep
1
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 的代理。
领导:明天去财务处结一下工资,后天不用来了。
转载请注明出自 ,如是转载文则注明原出处,谢谢:)
RSS订阅地址: https://www.felix021.com/blog/feed.php 。
由于 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 的代理。
领导:明天去财务处结一下工资,后天不用来了。
欢迎扫码关注:
转载请注明出自 ,如是转载文则注明原出处,谢谢:)
RSS订阅地址: https://www.felix021.com/blog/feed.php 。
pursuit
2023-9-4 15:47
现在 B 厂不用 token 啦,除了 shell 的输入密码,还需要同步手机软件确认
whusnoopy
2023-9-1 17:36
还想去财务处领工资?不是现在立刻马上去看守所等着 251 么
felix021 回复于 2023-9-2 17:55
虽然我能get你的意思,但我实在不认为251这个梗好笑
snoopy
2023-9-1 09:25
还想去财务处领工资?不是现在立刻马上去看守所等着 251 么
分页: 1/1 1