《红蓝攻防对抗实战》十一.内网穿透之利用SSH协议进行隧道穿透

利用DNS协议进行隧道穿透

  • 一.前言
  • 二.前文推荐
  • 三. 利用SSH协议进行隧道穿透
    • 1.SSH隧道-本地端口转发
    • 2.SSH隧道-远程端口转发
    • 3.SSH隧道-动态端口转发
  • 四.本篇总结

一.前言

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

二.前文推荐

《红蓝攻防对抗实战》一. 隧道穿透技术详解
《红蓝攻防对抗实战》二.内网探测协议出网之TCP/UDP协议探测出网
《红蓝攻防对抗实战》三.内网探测协议出网之HTTP/HTTPS协议探测出网
《红蓝攻防对抗实战》四.内网探测协议出网之ICMP协议探测出网
《红蓝攻防对抗实战》五.内网探测协议出网之DNS协议探测出网
《红蓝攻防对抗实战》六.常规反弹之利用NC在windows系统执行反弹shell
《红蓝攻防对抗实战》七.常规反弹之利用NC在Linux系统执行反弹shell
《红蓝攻防对抗实战》八.利用OpenSSL对反弹shell流量进行加密
《红蓝攻防对抗实战》九.内网穿透之利用GRE协议进行隧道穿透
《红蓝攻防对抗实战》十.内网穿透之利用DNS协议进行隧道穿透

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

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

图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 代理)
-R 远程端口转发
-P 指定 SSH端口

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

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

《红蓝攻防对抗实战》十一.内网穿透之利用SSH协议进行隧道穿透_第2张图片

图1-2 ssh连接

当上述步骤执行后,使用rdesktop命令连接本地8888端口即可访问到靶机的3389端口的rdp服务。如图1-3所示。
《红蓝攻防对抗实战》十一.内网穿透之利用SSH协议进行隧道穿透_第3张图片

图1-3远程连接

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

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

《红蓝攻防对抗实战》十一.内网穿透之利用SSH协议进行隧道穿透_第4张图片

图1-4 测试连接

接下来在攻击机使用rdesktop命令连接本地8888端口,执行rdesktop 127.0.0.1:8888命令,连接成功如图1-5 所示。
《红蓝攻防对抗实战》十一.内网穿透之利用SSH协议进行隧道穿透_第5张图片

图1-5连接成功

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

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

《红蓝攻防对抗实战》十一.内网穿透之利用SSH协议进行隧道穿透_第6张图片

图1-6 测试连接

2)在攻击机中修改 proxychains4.conf配置文件,并在其底部添加一行socks5 127.0.0.1 8888参数来完成proxychains代理配置,如图1-7所示。
《红蓝攻防对抗实战》十一.内网穿透之利用SSH协议进行隧道穿透_第7张图片

图1-7 代理设置

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

《红蓝攻防对抗实战》十一.内网穿透之利用SSH协议进行隧道穿透_第8张图片

图1-7 rdp连接

四.本篇总结

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

你可能感兴趣的:(红蓝攻防对抗实战指南,ssh,运维,隧道穿透,ssh隧道穿透,内网穿透,红蓝攻防)