双隧道协助困境中的同事
场景描述
当你正在办公室埋头处理报告时,接到现场同事的求助电话:他遇到了一台难以攻破的机器,需要你的帮助。虽然同事拥有出站互联网访问权限,但典型的网络环境限制导致无法直接访问他的机器。此时,通过SSH隧道技术直接连接他的设备进行演示将成为最佳解决方案。
配置步骤
建立反向SSH隧道
首先需要确保你的防火墙设置了端口转发规则,将外部端口映射到你的机器。同事通过以下命令建立连接:
|
|
此命令实现从他的机器SSH到你的机器,并将其22端口转发到你机器的2222端口。选择2222端口的原因:非root用户无法打开1025以下端口,且22端口通常已被本地SSH服务占用。
连接同事机器
现在你可以通过本地2222端口SSH到同事的机器:
|
|
此时你已以他的身份连接到目标机器。使用screen
命令(可通过Hak5了解基础用法)配合-x
参数,可实现双方共享同一终端会话的协同工作模式。
Web应用浏览方案
方案一:反向隧道转发
若同事发现需要检查的Web应用(位于10.1.1.2),可通过新建隧道转发80端口:
|
|
方案二:本地端口转发
Alternatively, 通过建立到同事的新连接实现本地端口转发:
|
|
两种方案均可通过访问localhost:8000
查看Web应用。若Web服务器使用虚拟主机,只需在/etc/hosts
中添加域名映射到127.0.0.1,即可通过vhost.name:8000
访问。
该方法同样适用于转发远程桌面、数据库等任意端口。
技术总结
这种双隧道方案有效实现了外部用户到内部网络的权限映射。虽然存在其他实现方式,但该方法在理解端口映射关系后操作简单,且所有数据传输均加密,提供了安全的工作通道。
注意:若出站22端口被阻断,可将SSH服务改为监听80或443端口。仅检查端口号的出站规则通常会放行此类流量,但深度包检测可能仍会阻断连接。
致谢
感谢Gavin提供本文灵感并协助测试验证方案可行性。