ssh 本地端口转发:
把本地端口的流量转发到远程服务器的端口
实验环境
一台 kali,
一台 centos7(192.168.2.128(nat 模式) ,192.168.28.132(仅主机模式),这里的 centos7 是跳板机,我们得知道他的用户的密码或者密钥.
一台 win2008(192.168.28.131(仅主机模式), 他的 81 端口开放 http 服务,)
我们模拟的环境是,我们在红队行动中,已经拿下了一台 linux 的边界主机,利用这台边界主机充当跳板,去访问与它能通信的内网主机
这里的 kali 是我们的攻击机
centos7 是我们拿下的边界主机
win2008 内网主机
首先我们 kali 是直接与 win2008 通信不了的
我们在 kali 上输入命令:
ssh -L 7890:192.168.28.131:81 huale@192.168.2.128
这条命令完整的是 ssh -L [ 本机 ip ]:端口:远程主机 ip:远程主机服务端口 跳板机的用户名@跳板机的ip
由于本地主机 ip 是可写可不写的,所以就成了上面那条命令的样子.
命令解释:
在 kali 上开启 7890 端口,把 win2008 的 81 端口映射到我们 kali 的 7890 端口, 后面是 ssh 连接的 centos7 的用户名和主机 ip
这样我们去访问 kali(本地 )的 7890 端口,所有访问 7890 的流量就会通过 ssh 服务器(centos7)去发送到内网的 win2008 的 81 端口, 所以我们访问本地的7890端口就相当于访问了远程主机的 81端口,这就是本地端口转发.
为什么能这样:
因为这里的 centos7 是可以与 win2008 通信的,它两都有一块仅主机得的网卡,而 kali 是不能和 win2008 通信的,而我们的kali可以和centos7通信,所以我们用ssh打通了一条隧道,把7890端口的流量转到了内网的81端口上.
结果:
我们在 kali 上成功访问到了 win2008 的 81 端口开放的 web 服务