SSH隧道技术

简介

无论是做渗透测试,还是红蓝对抗中,在内网建立一个稳定、可靠的数据通道对往后的渗透攻击是非常重要的。应用层的隧道通信技术主要利用应用软件提供的端口来发送数据。常用的隧道协议有SSH、HTTP/HTTPS和DNS协议。

SSH协议

在内网中几乎所有的Linux/Unix服务器和网络设备都支持SSH协议。在一般情况下SSH协议是被允许通过防火墙和边界设备的,所以经常被攻击者利用。同时,SSH协议的传输过程是加密的,所以我们很难区分合法的SSH会话和攻击者利用其他网络建立的隧道。攻击者利用SSH端口隧道突破防火墙的限制后,能够建立一些之前无法建立的TCP连接。

首先我们先解释下Linux的ssh命令参数的作用

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

本地转发

测试环境为:攻击者的VPS能访问内网Web服务器,但不能访问数据库服务器,内网Web服务器和数据库服务器可以相互访问。我们现在以Web服务器172.16.179.68为跳板,将内网数据库服务器192.168.108.108的3389端口映射到VPS机器172.16.179.87的1153端口,再访问VPS的1153端口,就可以访问数据库服务器的3389端口了。以下为网络通信拓扑图

在这里插入图片描述

首先我们得在VPS上执行以下命令,它会要求输入Web服务器跳板机的密码,命令的格式为ssh -CfNg -L 1153(VPS端口):192.168.108.108(目标主机):3389(目标端口) root@172.16.179.68(跳板机)
在这里插入图片描述
输入完密码后,我们查看下本地1153端口是否已经连接。可以看到,在本地映射时,本地的SSH进程会监听1153端口。
在这里插入图片描述
执行rdesktop 127.0.0.1:1153命令访问本地VPS的1153端口。可以发现已经与数据库服务器的3389端口建立了连接。
在这里插入图片描述
实现的原理是:SSH进程的本地端口映射可以将本地(客户机)的某个端口(1153端口)转发到远端指定机器的指定端口(3389端口);本地端口转发是在本地(客户机)监听一个端口,所有访问这个端口的数据都会通过SSH隧道传输到远端的对应端口。

远程转发

测试环境为:攻击者的VPS不能访问内网中的三台服务器,内网没有边界服务器,内网的Web服务器能访问外网的VPS,但是数据库和域控均不能访问外网VPS。以下是设定好的防火墙规则,已经实现了这个效果
在这里插入图片描述
以下是实验的拓扑图
在这里插入图片描述

我们现在以Web服务器为跳板,将VPS的3307端口的流量转发到数据库服务器的3389端口,然后访问VPS的3307端口,就可以访问数据库的3389端口了。

我们在Web服务器跳板机上执行如下命令ssh -CfNg -R 3307:192.168.108.108:3389 root@172.16.179.87(VPS主机)
在这里插入图片描述
然后我们查看VPS的3307端口已经在本地进行监听
在这里插入图片描述
尝试远程登录win2008主机,并且登录成功
在这里插入图片描述
实现原理是: 本地转发是将远程主机(服务器)某个端口的数据转发到本地机器的指定端口。但是远程转发是在远程主机上监听一个端口,所有访问远程服务器指定端口的数据都会通过SSH隧道传输到本地的对应端口上。

动态转发

测试网络拓扑图如下
在这里插入图片描述
首先我们在VPS上执行如下命令ssh -CfNg -D 7000 testuser03@hacke.testlab@172.16.179.68,建立一个动态的SOCKS4/5代理通道
在这里插入图片描述
接下来我们在本地浏览器上设置网络代理,通过浏览器访问内网域控制器
在这里插入图片描述
我们可以查看一下本地7000端口是否已经连接,可以看到在使用动态映射时,本地主机的SSH进程正在监听7000端口
在这里插入图片描述
可以看到我们能成功访问到域控的页面
在这里插入图片描述
实现原理: 动态端口映射就是建立一个SSH加密的SOCKS4/5代理通道。任何支持SOCKS4/5协议的程序都可以使用这个加密通道进行代理访问。

防御SSH隧道攻击

SSH隧道之所以能够被攻击者利用,是因为系统访问控制措施不够。我们必须在系统中配置SSH远程管理白名单,在ACL中限制只有特定的IP地址才能连接SSH,以及设置系统完全使用带外管理等。我们在内网中至少得限制SSH远程登录的地址和双向访问控制策略。

HTTP/HTTPS协议

HTTP Service代理用于将所有的流量转发到内网。常见的代理工具有reGeorg、meterpreter、tunna等。reGeorg主要功能是把内网服务器端口的数据通过HTTP/HTTPS隧道转发到本机,实现基于HTTP协议的通信。因为reGeorg脚本的特征很明显,很多杀软都会对其进行查杀。

首先我们在kali上开启apache2服务
在这里插入图片描述
然后使用wget命令将tunnel.nosocket.php文件下载到Web服务器的apache目录上
在这里插入图片描述
然后在kali上开启我们的监听,监听端口是9999
在这里插入图片描述
接着我们配置一下proxychains文件
在这里插入图片描述
然后我们使用hydra工具对目标主机的3389端口进行暴力破解
在这里插入图片描述

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

平凡的学者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值