1、动态端口转发
如上图所示,本地的windows 主机可以和 内网主机(192.168.161.10) 通过 vpn 进行访问。
但是无法访问内部主机2(主要是由于内部主机2没有被vpn服务器放开)
当前要访问目标主机2,使用 ssh 与 192.168.161.10 主机建立隧道,通过隧道来访问内部主机2
1、建立隧道
ssh -CfNg -D 11180 root@192.168.161.10
命令的意思是,通过本地 11180 与 192.168.161.10 主机 22 端口建立通信的隧道,
如果成功 192.168.161.10 相当于跳板机
选项:
-
-C:压缩数据传输。
-
-f 后台启用
-
-N 不打开远程shell,处于等待状态
-
-g 启用网关功能
执行如下:
2、查看windows 端口占用情况
netstat -ano|findstr 11180
3、测试访问
1、未通过代理进行访问
2、配置浏览器代理
3、配置代理后,已经可以正常访问
2、端口转发 portmap 工具
实现功能:
通过 192.168.161.10 主机的 80 端口转发到 192.168.161.174 的 8089 端口
1、下载
wget http://www.vuln.cn/wp-content/uploads/2016/06/lcx_vuln.cn_.zip
2、解压
unzip lcx_vuln.cn_.zip
3、修改文件权限
chmod 777 -R lcx_vuln.cn
4、实现转发
./portmap -m 1 -p1 80 -h2 192.168.161.174 -p2 8089
通过 192.168.161.10 主机的 80 端口转发到 192.168.161.174 的 8089 端口
通过 netstat -antp|grep 80 可以看到 80 端口已处于 Listen 状态,如下图所示。
5、进行测试
1、已经转发成功
2、关闭转发 则无法访问
3、通过ssh 进行本地端口转发
转发到远端:ssh -C -f -N -g -L 本地端口:目标IP:目标端口 用户名@目标IP
将本地机(客户机)的某个端口转发到远端指定机器的指定端口. 工作原理是这样的, 本地机器上分配了一个 socket 侦听 port 端口, 一旦这个端口上有了连接, 该连接就经过安全通道转发出去, 同时远程主机和 host 的 hostport 端口建立连接. 可以在配置文件中指定端口的转发. 只有 root 才能转发特权端口. IPv6 地址用另一种格式说明: port/host/hostport
实战1
实现上述 portmap 功能 在161.10主机上执行
ssh -CfNg -L 80:192.168.161.174:8089 root@192.168.161.10
通过 192.168.161.10 主机的 80 端口转发到 192.168.161.174 的 8089 端口
执行情况如下:
查看端口占用情况
netstat -antp|grep 80
测试如下:
实战2
实现本地映射 把windows 本地主机的 端口 11080 映射到 192.168.161.10 主机的 11080 端口 ,这样映射可以绕过防火墙的限制。
在windows 主机上执行
ssh -CfNg -L 127.0.0.1:11080:192.168.161.10:11080 root@192.168.161.10 -p 22
执行情况如下:
查看windows 主机端口占用情况
netstat -ano|findstr 11080
通过浏览器访问测试
4、远程转发 (反向代理,或者内网穿透)
所谓“反向代理”就是让远端启动端口,把远端端口数据转发到本地。
HostA 将自己的 PortA 暴露给外网服务器 HostC:PortC,在 HostA 上运行:
HostA$ ssh -R HostC:PortC:HostA:PortA user@HostC
那么链接 HostC:PortC 就相当于链接 HostA:PortA。使用时需修改 HostC 的 /etc/ssh/sshd_config,添加:
GatewayPorts yes
那么通过在内网 HostA 上运行 ssh -R 告诉 HostC,创建 PortC 端口监听,把该端口所有数据转发给(HostA)
实战
通过大网ip 119.96.188.36 来做内网穿透。
把 119.96.188.36:11080 端口 映射到 192.168.161.10:11080
在主机 192.168.161.10 上执行
ssh -CfNg -R 119.96.188.36:11080:192.168.161.10:11080 root@119.96.188.36 -p 22
执行结果如下:
在 119.96.188.36 主机上查看
netstat -antp|grep 11080
测试
curl 127.0.0.1:11080
结果如下: