一、SSH简介
如果工作环境中的防火墙限制了一些网络端口的使用,但是允许SSH连接,就能够将TCP端口转发来使用SSH通讯
二、SSH转发功能
- 加密SSH Clinet端至SSH Server端之间的通讯数据
- 突破防火墙的限制,完成一些之前无法建立的TCP连接
三、SSH本地SOCKS5代理
ssh -qTfnN -D 7777 root@82.156.14.58
-C 压缩数据
-q 安静模式
-T 禁止远程分配终端
-n 关闭标准输入
-N 不执行远程命令
-f ssh后台运行
-D 本地的端口

浏览器开启代理SOCK5

可以看到IP发生变化

四、SSH本地转发
网络拓扑图
1.kali能与边界服务器互通
2.边界服务器可以和目标机互通
3.kali不能直接访问目标机
4.目标机不出网
5.目的:kali能访问目标机的80端口

正向连接
ssh -L localport:remotehost:remotehostport sshserver
localport 本机开启的端口
remotehost 最终要连接的机器的IP地址
remotehostport 转发机器的端口
sshserver 转发机器的IP地址
这里用ubuntu作为边界服务器
sudo apt-get install openssh-server //安装SSH服务
开启ssh服务

开启正向连接
ssh -L 2222:10.10.10.132:3389 test@192.168.137.133
//把本地的2222端口映射到目标机3389口,登录边界服务器ssh

成功转发

还有一种情况就是数据库只允许本地连接,可以通过ssh转发出来
ssh -L 3333:localhost:3306 test@192.168.137.133
mysql -h 127.0.0.1 -P 3333 -u root -p 即可登录
代理后的拓扑图

五、SSH远程转发
远程转发
反向连接的一种,可以穿透内网防火墙,在内网中比较好用
ssh -R sshserverport:remotehost:remotehostport sshserver
sshserverpor 被转发机器开启的端口号
remotehost 最终要连接的机器的IP地址
remotehostport 被转发机器的端口
sshserver 被转发机器的IP地址
开启远程需要更改配置
sudo vim /etc/ssh/sshd_config
//任何人访问这台机器的某一个端口,都可以访问到目标机的映射出的端口;这个需要在边界服务器上开
GatewayPorts yes
sudo /etc/ssh/sshd_config restart //重启SSH

在边界服务器上打开

因为是反向链接,所以肯定需要在目标机上执行命令
在目标机上执行命令
ssh -R 8899:10.10.10.132:80 test@10.10.10.135
//把目标机的80端口转发到10.10.10.135(便捷服务器)上的8899端口
现在任何机器,只要访问192.168.137.133(也就是10.10.10.135这台边界服务器)的8899端口,就相当于访问了不出网的内网10.10.10.132机器的80端口
代理后的拓扑图
