《红蓝攻防对抗实战》一. 隧道穿透技术详解

一.隧道穿透技术详解

从技术层面来讲,隧道是一种通过互联网的基础设施在网络之间传递数据的方式,其中包括数据封装、传输和解包在内的全过程,使用隧道传递的数据(或负载)可以使用不同协议的数据帧或包。

假设我们获取到一台内网主机的权限,并希望将这台主机作为跳板,通过外网主机访问到内网进行后续渗透利用,而在这个过程中我们可能会碰到一些阻碍,比如防火墙、入侵检测系统等,这些安全防护措施不允许有异常端口对外发起通信连接,此时便无法通过在这台受控主机上开启单独的端口来与外界连接通信,但是我们可以寻找防火墙等防护设备允许与外界通讯的端口,将数据包混杂在正常流量中,通过正常端口发送到外网攻击机来实现绕过防火墙的目的,这种技术就叫做内网隧道穿透技术,而这个数据包在传输过程中所经历的逻辑路径就叫做隧道。

接下来学习隧道技术前需要了解一些专业性术语名词,例如正向连接、反向连接、端口转发等,下述将介绍一些常见的专业术语,便于后续我们深入学习。

1.正向连接

如下图所示,正向连接是指本地主机向目标主机的Web服务发起访问请求,目标主机收到请求后两者互相建立通信连接的过程,在实际应用场景中,正向连接这种方式常用于目标主机不出网或者目标有公网IP地址且没有防火墙的情况,可以利用Web正向连接去搭建代理隧道。
在这里插入图片描述

2. 反向连接

如下图所示,反向连接是指假设当我们获取目标服务器权限后,使其主动发起请求去访问攻击者所使用具有公网IP的主机,从而建立两者之间的连接,可以互相访问通信。反向连接和正向连接恰好相反,在实际应用场景中,反向连接这种方式常用于目标主机出网的情况。

在这里插入图片描述

3.端口转发

端口转发(Port forwarding)是指将某一个端口接收到的流量转发到另外一个本地端口或者其他网络端口上的过程,在红蓝对抗过程中,红队人员会根据实际的目标网络状况来去选择端口转发的利用方式,如图3-3所示,假设在红蓝对抗中,红队人员获取到Web服务器的权限,通过信息收集的方式发现Web服务器具有双网卡,并且可以和内网靶机主机之间进行通信,如果我们想要使攻击机能通过RDP远程的方式远程到内网靶机,我们可以通过端口转发方式将内网靶机的3389端口转发到Web服务器的80端口上,攻击机再通过访问Web服务器的80端口直接访问到内网靶机3389端口RDP服务,以此达到通讯的目的。

在这里插入图片描述

4. 端口复用

端口复用指在目标主机某个占用服务的端口上建立了多个通讯连接,而不是指在一个端口上面开放了多个服务,端口服务和通讯连接可以同时存在互不干扰。假设服务器上的80端口开放Apache服务,如果继续在80端口再指定添加某项服务,它会有两种可能,添加服务失败或Apache服务出错,而使用端口复用的方法可通过在80端口建立通讯连接绕过防火墙端口限制,因为防火墙两端的数据包封装在它所允许通过的数据包类型或是端口上(这里指80端口),然后穿过防火墙与处在防火墙后面的主机进行通讯,当封装的数据包到达目的地时,再将数据包还原,并将还原后的数据包交送到相应的服务上。

5.内网穿透

由于内网IP地址无法直接通过互联网的方式进行访问,但在实际场景中我们又希望我们部署在内网的服务可以通过互联网的方式进行访问,这时我们就可以利用“内网穿透”的方式来将计算机的内部IP转化为公网IP,在互联网侧直接访问内网主机中的服务,像这种方式我们称之为“内网穿透”。

6.代理和隧道的区别

代理它是指一种特殊的网络服务,它允许一个网络终端通过代理服务与另一个网络终端进行非直接的连接,它扮演了位于服务器和客户端的“中间人”,攻击者可以通过受控主机设置代理服务,去访问目标内网中其他主机的服务。
隧道主要就是为了解决数据包无法传输,隧道技术一般用来绕过一些安全设备的监控,例如防火墙过滤,网络连接通讯,数据回链封装等,如果安全防护设备对我们发送的流量进行拦截,我们就可以使用隧道技术来绕过拦截,隧道技术就是使用不同的协议技术来建立通讯连接,当然,在隧道中也是包含了一些关于代理的技术。

7.常见隧道转发场景

在真实的内网环境中,企业单位或其他组织为了保护资产安全,通常会为主机,服务器做安全防护策略限制,在攻防对抗当中,作为红队人员需要根据内网的实际场景来去判断如何绕过安全防护策略限制来进行隧道穿透,如下笔者列出了在内网中常见的隧道转发场景,如下表所示。

表 -常见隧道转发场景

转发场景具体描述
目标处于网络边界内外网都可以访问、网络边界主机未安装防火墙、所有端口都对互联网开放
目标处于内网允许特定的应用层协议出网(比如HTTP、SSH、DNS等应用层协议)(3389、22、445、53、80、443等) ;
目标处于内网,不能访问外网可以访问边界主机,防火墙策略限制外部网络直接访问内网的敏感端(3389、22、445等)。

8.常见隧道穿透分类

通过上述了解到隧道是通过互联网的基础设施在网络之间进行传递数据的方式,从计算机OSI 七层模型来讲隧道穿透技术主要应用在应用层,传输层,网络层这三层,每一层常见的隧道利用方式及隧道类型如下表所示。

隧道方式隧道类型
应用层隧道SSH隧道,HTTP隧道,HTTPS隧道,DNS隧道
传输层隧道TCP隧道,UDP隧道
网络层隧道IPv6隧道,ICMP隧道,GRE隧道

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何制作.exe免安装绿色单文件程序,将源代码打包成可独立运行的exe文件

环境: rustdesk编译文件和文件夹 文件程序制作工具 问题描述: 如何制作.exe免安装绿色单文件程序,将源代码打包成可独立运行的exe文件,像官网那种呢? 将下面编译好的rustdesk文件夹制作成一个.exe免安装绿色单文件程序,点击exe就可以运行 在github上找了半天也没有…

AIGC笔记--基于DDPM实现图片生成

目录 1--扩散模型 2--训练过程 3--损失函数 4--生成过程 5--参考 1--扩散模型 完整代码:ljf69/DDPM 扩散模型包含两个过程,前向扩散过程和反向生成过程。 前向扩散过程对一张图像逐渐添加高斯噪声,直至图像变为随机噪声。 反向生成过程…

推荐微软的开源课程《AI-For-Beginners》

今天给大家推荐一个对新手非常友好的AI入门课程《AI-For-Beginners》。 该课程由微软推出,为期12周,共24课时,对比Google的AI入门课更通俗易懂一些,强烈推荐刚入门的AI小白们学习!而且是免费!课程资源看文…

SQL UPDATE 语句(更新表中的记录)

SQL UPDATE 语句 UPDATE 语句用于更新表中已存在的记录。 还可以使用AND或OR运算符组合多个条件。 SQL UPDATE 语法 具有WHERE子句的UPDATE查询的基本语法如下所示: UPDATE table_name SET column1 value1, column2 value2, ... WHERE conditi…

【第三天】C++类和对象进阶指南:从堆区空间操作到友元的深度掌握

一、new和delete 堆区空间操作 1、new和delete操作基本类型的空间 new与C语言中malloc、delete和C语言中free 作用基本相同 区别: new 不用强制类型转换 new在申请空间的时候可以 初始化空间内容 2、 new申请基本类型的数组 3、new和delete操作类的空间 4、new申请…

数据可视化在行业解决方案中的实践应用 ——华为云Astro Canvas大屏开发研究及指南

本文主要探讨华为云Astro Canvas在数据可视化大屏开发中的应用及效果。首先阐述Astro Canvas的基本概念、功能和特性说明,接着集中分析展示其在教育、金融、交通行业等不同领域实际应用案例;之后,详细介绍使用该工具进行大屏图表创建的开发指…

从零开始 Spring Cloud 15:多级缓存

从零开始 Spring Cloud 15:多级缓存 多级缓存架构 传统的缓存使用 Redis,大致架构如下: 这个架构存在一些问题: 请求要经过Tomcat处理,Tomcat的性能成为整个系统的瓶颈 Redis缓存失效时,会对数据库产生冲…

MySQL实践——分页查询优化

问题现象 一个客户业务系统带有分页查询功能,但是随着查询页数的增加,越往后查询性能越差,有时一个查询可能需要1分钟左右的时间。分页查询的写法类似于: select * from employees limit 250000,5000;这是最传统的一种分页查询写…

Amazon图片下载器:利用Scrapy库完成图像下载任务

概述 本文介绍了如何使用Python的Scrapy库编写一个简单的爬虫程序,实现从Amazon网站下载商品图片的功能。Scrapy是一个强大的爬虫框架,提供了许多方便的特性,如选择器、管道、中间件、代理等。本文将重点介绍如何使用Scrapy的图片管道和代理…

Python爬虫:ad广告引擎的模拟登录

⭐️⭐️⭐️⭐️⭐️欢迎来到我的博客⭐️⭐️⭐️⭐️⭐️ 🐴作者:秋无之地 🐴简介:CSDN爬虫、后端、大数据领域创作者。目前从事python爬虫、后端和大数据等相关工作,主要擅长领域有:爬虫、后端、大数据…

神器抓包工具 HTTP Analyzer v7.5 的下载,安装,使用,破解说明以及可能遇到的问题

文章目录 1、HTTP Analyzer 工具能干什么?2、HTTP Analyzer 如何下载?3、如何安装?4、如何使用?5、如何破解?6、Http AnalyzerStd V7可能遇到的问题 1、HTTP Analyzer 工具能干什么? A1:HTTP A…

Linux:命令行参数和环境变量

文章目录 命令行参数环境变量环境变量的概念常见的环境变量PATH 环境变量表本地变量和环境变量命令分类 本篇主要解决以下问题: 什么是命令行参数命令行参数有什么用环境变量是什么环境变量存在的意义 命令行参数 在学习C语言中,对于main函数当初的写…

(二)docker:建立oracle数据库mount startup

这章其实我想试一下startup部分做mount,因为前一章在建完数据库容器后,需要手动创建用户,授权,建表等,好像正好这部分可以放到startup里,在创建容器时直接做好;因为setup部分我实在没想出来能做…

订水商城H5实战教程-02系统登录

目录 1 创建数据源2 创建自定义应用3 创建全局变量4 实现登录功能5 控制弹窗是否显示6 最终的效果 上一篇我们分析了订水商城的功能,功能分析好了之后,就需要开发功能。用户登录商城的第一步就是进行登录,登录的时候需要同意用户协议&#xf…

SpringBoot AOP + Redis 延时双删功能实战

一、业务场景 在多线程并发情况下,假设有两个数据库修改请求,为保证数据库与redis的数据一致性,修改请求的实现中需要修改数据库后,级联修改Redis中的数据。 请求一:A修改数据库数据 B修改Redis数据 请求二&#xff…

修炼k8s+flink+hdfs+dlink(六:学习k8s-pod)

一:增(创建)。 直接进行创建。 kubectl run nginx --imagenginx使用yaml清单方式进行创建。 直接创建方式,并建立pod。 kubectl create deployment my-nginx-deployment --imagenginx:latest 先创建employment,不…

CSS页面基本布局

前提回顾 1. 超文本标记语言(HTML)是一种标记语言,用来结构化我们的网页内容并赋予内容含义; (超文本标记语言(英语:HyperText Markup Language /ˈhaɪpətekst ˈmɑːkʌp ˈlŋɡwɪdʒ /…

由浅到深 : Self-Attention (自注意力机制)

Self-Attention 看到下面的第一个saw是动词,第二个saw是名词。 因为第一个saw和第二个saw在形式上没有任何差别。如果任务是进行词性的判断,把上面的词直接输入给神经网络,那么它肯定不能够正确分析。 想要正确分析词性,那么该…

CRM自动化意味着什么?企业如何从中受益?

客户关系管理(CRM)软件不再仅仅适用于大公司或销售周期长的行业,它越来越成为各种规模企业的重要工具。 在日常工作中,当你陷入流程的所有细节时,可能会产生不必要的工作。因此,如果你想要CRM提供的组织和…