ATT&CK视角下的红蓝对抗:十一.内网穿透之利用SSH协议进行隧道穿透

2023-11-08 08:41:37 浏览数 (2)

一.前言

SSH(Secure Shell)协议是一种加密的网络传输协议,它可以在不安全的网络中提供安全的远程登录和文件传输服务。SSH协议使用加密技术来保护数据的机密性和完整性,使得网络传输数据的安全性得到了保障。除了提供安全的远程登录服务外,SSH协议还可以用于隧道穿透,即将一种网络协议的流量通过SSH连接传输,以绕过防火墙或其他网络限制。

二.前文推荐

ATT&CK视角下的红蓝对抗:一. 隧道穿透技术详解

ATT&CK视角下的红蓝对抗:二. 内网探测协议出网

ATT&CK视角下的红蓝对抗:三. 内网常规隧道利用方法

ATT&CK视角下的红蓝对抗:四. 内网穿透之通过Earthworm(EW)进行隧道穿透

ATT&CK视角下的红蓝对抗:五. 内网穿透之利用HTTP协议进行隧道穿透

ATT&CK视角下的红蓝对抗:六.内网穿透之利用FRP进行隧道穿透

ATT&CK视角下的红蓝对抗:七.内网穿透之利用Venom进行隧道穿透

ATT&CK视角下的红蓝对抗:八.内网穿透之利用Termite进行隧道穿透

ATT&CK视角下的红蓝对抗:九.内网穿透之利用GRE协议进行隧道穿透

ATT&CK视角下的红蓝对抗:十.内网穿透之利用DNS协议进行隧道穿透

ATT&CK视角下的红蓝对抗:十一.内网穿透之利用SSH协议进行隧道穿透


三 利用SSH协议进行隧道穿透

在实际环境中,绝大部分的Linux或Unix服务器和网络设备都支持SSH协议,内网中主机设备及边界防火墙都会允许SSH协议通过,我们通常会使用SSH命令来连接远程机器,但是SSH功能不止于此,它还可以用来做流量转发,将TCP端口的数据流量通过SSH进行转发,并且传输过程中数据是加密的,这也意味着可以利用SSH搭建隧道突破防火墙的限制,所以当面对其他协议方式无法利用时,可以尝试使用SSH进行穿透,本次实验环境如图1-1所示,实验环境表如表1-1所示。

图1-1 SSH协议实验拓图1-1 SSH协议实验拓

表1-1 SSH协议实验环境表

主机类型

IP配置

攻击机

192.168.0.2

Web服务器

192.168.0.3,192.168.52.2

靶机

192.168.52.3

假设攻击机与Web服务器彼此之间都可以进行直接通信,但是攻击机与靶机之间不能直接进行通信,我们可以通过建立SSH隧道转发的方式将攻击机连接上内部的靶机,在这里我们将会通过ssh的方式进行转发连接,ssh常用命令参数如表1-2所示。

表1-2 SSH常用命令参数

参数

说明

-C

压缩传输,提高传输速度

-f

将SSH传输转入后台执行,不占用当前的 Shell

-N

建立静默连接(建立了连接,但是看不到具体会话)

-g

允许远程主机连接本地用于转发的端口

-L

本地端口转发

-R

远程端口转发

-D

动态转发(SOCKS 代理)

-P

指定 SSH端口

1.SSH隧道-本地端口转发

在实验前需要满足的条件是确保目标服务器的22端口开放,同时还需要获取到对方的ssh账号密码,当满足上述条件后,通过攻击机连接Web服务器,因Web服务器可以与靶机通过192.168.52.0/24这个网段进行通信,通过-L参数指定靶机3389端口转发到攻击机的8888端口,在攻击机执行ssh -L 8888:192.168.52.3:3389 root@192.168.0.3 -p 22连接命令,执行中需要输入Web服务器的密码,成功连接后,在攻击机上使用ifconfig命令测试是否为Web服务器的ip地址,如图1-2所示,证明ssh隧道成功。

图1-2   ssh连接图1-2 ssh连接

当上述步骤执行后,使用rdesktop命令连接本地8888端口即可访问到靶机的3389端口的rdp服务。如图1-3所示。

图1-3 远程连接图1-3 远程连接

2.SSH隧道-远程端口转发

使用ssh远程连接的方式和本地连接的方式有些类似,需要我们在Web服务器上使用ssh命令反向连接攻击机,获取到Web服务器权限后,在Web服务器执行ssh -R 8888:192.168.52.3:3389 root@192.168.0.2 -p 22命令,进行远程端口转发。其中-R参数表示远程连接,主要的作用是将靶机的3389端口转发到攻击机的8888端口上,执行完上述命令以后,在命令提示符窗口中输入攻击机的密码,即可成功连接到,在web服务器上使用ifconfig查看是否为攻击机IP,如图1-4 所示。

图1-4  测试连接图1-4 测试连接

接下来在攻击机使用rdesktop命令连接本地8888端口,执行rdesktop 127.0.0.1:8888命令,连接成功如图1-5所示。

图1-5连接成功图1-5连接成功

3.SSH隧道-动态端口转发

1)ssh动态端口转发就是建立起一个ssh加密的SOCKS 4/5代理隧道,任何支持SOCKS 4/5协议的程序都可以通过它进行代理访问,在攻击机上执行ssh -D 8888 root@192.168.0.3命令建立SOCKS代理通道,这里需要输入Web服务器的密码,输入密码后,执行成功,如图1-6所示。

图1-6 测试连接图1-6 测试连接

2)在攻击机中修改 proxychains4.conf配置文件,并在其底部添加一行socks5 127.0.0.1 8888参数来完成proxychains代理配置,如图1-7所示。

图1-7 代理设置图1-7 代理设置

3)当配置完proxychains代理后,即可在攻击机执行proxychains rdesktop 192.168.52.3命令来连接靶机,通过所建立的socks协议隧道连接靶机,如图1-8所示。

图1-8 rdp连接图1-8 rdp连接

四.本篇总结

随着隧道技术的不断更新迭代,越来越多的攻击者利用隧道技术攻击企业内网中,在本篇文章中介绍了如何利用SSH协议进行隧道穿透的方法,包括本地端口转发、远程端口转发和动态端口转发。其中,本地端口转发是将目标服务器的指定端口转发到攻击机的指定端口,远程端口转发是将攻击机的指定端口转发到目标服务器的指定端口,动态端口转发则是建立一个SSH加密的SOCKS 4/5代理隧道,任何支持SOCKS 4/5协议的程序都可以通过它进行代理访问。


我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

0 人点赞