什么是SSH隧道
SSH隧道是通过Secure Shell(SSH)协议在两个网络节点之间创建的加密通道。它可以用于安全地传输数据,绕过网络限制或保护数据免受窃听。通过SSH隧道,可以在两个网络之间建立安全的连接,例如在本地计算机和远程服务器之间传输数据,或者在两个远程服务器之间进行数据交换。SSH隧道通过SSH协议的加密功能,确保数据在传输过程中的机密性和完整性,是绕过防火墙限制的常用手段。
环境搭建
拓扑图:
Ubuntu (充当内网服务器) 仅主机模式:192.168.47.128
CentOS7(充当双网卡服务器)
仅主机模式192.168.47.129
NAT:192.168.121.152
Kali(充当VPS)
桥接模式:172.25.186.207
本机(攻击者)
关闭VM1(仅主机模式网卡)
开启VM8(NAT模式网卡)
需要修改Kali(VPS)和Centos7(双网卡服务器)的配置信息为允许端口转发
vim /etc/ssh/sshd_config
CentOS7修改配置信息如下:
Kali修改配置信息如下:
正向代理
使用场景为VPS能够正常访问双网卡的服务器
在VPS上执行:
ssh -CfNg -L 172.25.186.207:81:192.168.47.128:80 root@192.168.121.152
攻击者利用VPS作为跳板,将内网Web服务器的80端口映射到VPS的81端口,即访问VPS的81端口,就可以访问内网Web页面:http://172.25.186.207:81/
反向代理
使用场景为VPS访问不到双网卡服务器,而双网卡服务器能够访问互联网
在CentOS7上执行
ssh -CfNg -R 172.25.186.207:84:192.168.47.128:80 root@172.25.186.207
攻击者利用双网卡服务器为跳板,将VPS的84端口映像到内网Web服务器的80端口上,即访问VPS的84端口就可访问内网Web页面:http://172.25.186.207:84/
Socks动态代理
vps上运行
ssh -CfNg -D 7000 root@192.168.121.152
使用Web插件SwitchOmega配置代理使用浏览器访问映射端口,或者利用Proxifier,进行全局代理,这里以SwitchOmega为例:
访问http://192.168.47.128/
防御SSH隧道攻击的思路
- 配置SSH连接IP白名单
- 增强SSH强口令策略
- 多因素认证