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

2023-11-12 00:36

本文主要是介绍《红蓝攻防对抗实战》十一.内网穿透之利用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所示。
在这里插入图片描述

图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 root@192.168.0.3 -p 22连接命令,执行中需要输入Web服务器的密码,成功连接后,在攻击机上使用ifconfig命令测试是否为Web服务器的ip地址,如图1-2所示,证明ssh隧道成功。

在这里插入图片描述

图1-2 ssh连接

当上述步骤执行后,使用rdesktop命令连接本地8888端口即可访问到靶机的3389端口的rdp服务。如图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 测试连接

接下来在攻击机使用rdesktop命令连接本地8888端口,执行rdesktop 127.0.0.1:8888命令,连接成功如图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 测试连接

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

图1-7 代理设置

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

在这里插入图片描述

图1-7 rdp连接

四.本篇总结

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

这篇关于《红蓝攻防对抗实战》十一.内网穿透之利用SSH协议进行隧道穿透的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/393889

相关文章

JavaScript实战:智能密码生成器开发指南

本文通过JavaScript实战开发智能密码生成器,详解如何运用crypto.getRandomValues实现加密级随机密码生成,包含多字符组合、安全强度可视化、易混淆字符排除等企业级功能。学习密码强度检测算法与信息熵计算原理,获取可直接嵌入项目的完整代码,提升Web应用的安全开发能力 目录

Redis迷你版微信抢红包实战

《Redis迷你版微信抢红包实战》本文主要介绍了Redis迷你版微信抢红包实战... 目录1 思路分析1.1hCckRX 流程1.2 注意点①拆红包:二倍均值算法②发红包:list③抢红包&记录:hset2 代码实现2.1 拆红包splitRedPacket2.2 发红包sendRedPacket2.3 抢

python进行while遍历的常见错误解析

《python进行while遍历的常见错误解析》在Python中选择合适的遍历方式需要综合考虑可读性、性能和具体需求,本文就来和大家讲解一下python中while遍历常见错误以及所有遍历方法的优缺点... 目录一、超出数组范围问题分析错误复现解决方法关键区别二、continue使用问题分析正确写法关键点三

springboot项目redis缓存异常实战案例详解(提供解决方案)

《springboot项目redis缓存异常实战案例详解(提供解决方案)》redis基本上是高并发场景上会用到的一个高性能的key-value数据库,属于nosql类型,一般用作于缓存,一般是结合数据... 目录缓存异常实践案例缓存穿透问题缓存击穿问题(其中也解决了穿透问题)完整代码缓存异常实践案例Red

Spring Boot拦截器Interceptor与过滤器Filter深度解析(区别、实现与实战指南)

《SpringBoot拦截器Interceptor与过滤器Filter深度解析(区别、实现与实战指南)》:本文主要介绍SpringBoot拦截器Interceptor与过滤器Filter深度解析... 目录Spring Boot拦截器(Interceptor)与过滤器(Filter)深度解析:区别、实现与实

Python对PDF书签进行添加,修改提取和删除操作

《Python对PDF书签进行添加,修改提取和删除操作》PDF书签是PDF文件中的导航工具,通常包含一个标题和一个跳转位置,本教程将详细介绍如何使用Python对PDF文件中的书签进行操作... 目录简介使用工具python 向 PDF 添加书签添加书签添加嵌套书签Python 修改 PDF 书签Pytho

基于C#实现MQTT通信实战

《基于C#实现MQTT通信实战》MQTT消息队列遥测传输,在物联网领域应用的很广泛,它是基于Publish/Subscribe模式,具有简单易用,支持QoS,传输效率高的特点,下面我们就来看看C#实现... 目录1、连接主机2、订阅消息3、发布消息MQTT(Message Queueing Telemetr

Nginx使用Keepalived部署web集群(高可用高性能负载均衡)实战案例

《Nginx使用Keepalived部署web集群(高可用高性能负载均衡)实战案例》本文介绍Nginx+Keepalived实现Web集群高可用负载均衡的部署与测试,涵盖架构设计、环境配置、健康检查、... 目录前言一、架构设计二、环境准备三、案例部署配置 前端 Keepalived配置 前端 Nginx

Python日期和时间完全指南与实战

《Python日期和时间完全指南与实战》在软件开发领域,‌日期时间处理‌是贯穿系统设计全生命周期的重要基础能力,本文将深入解析Python日期时间的‌七大核心模块‌,通过‌企业级代码案例‌揭示最佳实践... 目录一、背景与核心价值二、核心模块详解与实战2.1 datetime模块四剑客2.2 时区处理黄金法

Java进行日期解析与格式化的实现代码

《Java进行日期解析与格式化的实现代码》使用Java搭配ApacheCommonsLang3和Natty库,可以实现灵活高效的日期解析与格式化,本文将通过相关示例为大家讲讲具体的实践操作,需要的可以... 目录一、背景二、依赖介绍1. Apache Commons Lang32. Natty三、核心实现代