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

news2024/11/18 19:40:55

一.隧道穿透技术详解

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

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

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

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.coloradmin.cn/o/1120853.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

概念解析 | 毫米波雷达与计算机视觉的融合

注1:本文系“概念解析”系列之一,致力于简洁清晰地解释、辨析复杂而专业的概念。本次辨析的概念是:毫米波雷达与计算机视觉的融合。 毫米波雷达与计算机视觉的融合 Sensors | Free Full-Text | MmWave Radar and Vision Fusion for Object Detection in Autonomous Driving: A …

分享一个MSSA插值的GRACE level数据集

1. 背景介绍 我们通常使用的GRACE数据包含球谐数据和mascon数据。而不管是球谐产品还是mascon产品,都存在月份数据的缺失,如下图所示(Yi and Sneeuw, 2021)。本专栏分享了一个利用多通道奇异谱分析(MSSA&#…

一篇前段时间使用评分卡的总结_20231022

有帮助要帮我点赞哦 可以依据现在的流程,结合实际数据情况进行调整。 流程框架: eda查看字段相似性,提炼相似字段初步分箱必要时展开二次分箱(或者多轮分箱调优)可以进一步查看分箱后字段的相似性(woe值转化之后)查看…

【微信小程序】授权登录流程解析

目录 微信授权登录流程 1. 官方图示流程详解 2. 代码登录流程拆解 2.1 前端代码示例讲解 2.2 后端代码示例讲解 2.3 代码登录流程拆解 🌟 3. 表情包存储展示(扩展) 附议 微信授权登录流程 1. 官方图示流程详解 ① 微信服务器验证&a…

excel单元格各种组合求和

单元格如果连续选择的话使用冒号,不是连续选择使用逗号;sum(A1:A4)表示对A1到A4求和;sum(A1,A4)表示求A1A4的和; 如下图,求斜线上四个单元格的和,结果见下图; 求A列和C列全部单元格的和&#x…

Python 函数:定义、调用、参数、递归和 Lambda 函数详解

函数是一段代码块,只有在调用时才会运行。您可以将数据(称为参数)传递给函数。 函数可以返回数据作为结果。 创建函数 在Python中,使用def关键字定义函数: 示例 def my_function():print("Hello from a func…

CCC数字钥匙设计【NFC】--NFC卡相关基础知识

CCC3.0的NFC技术中,除车端,手机端需包含NFC功能外,另外一般还会配置一个NFC卡,用于备份使用。本文主要介绍NFC卡相关的基础知识。 1、NFC卡 & 智能卡 NFC卡是一种智能卡,其与信用卡大小相同,可通过嵌入…

删除所有出现次数最少的字符

题意: 假设字符串中出现次数最少的字母是x, 出现次数为y, 删除所有出现次数为y的字符 思路&#xff1a;用unordered_map统计出出现次数最少的x出现的次数y 再遍历字符串&#xff0c;删除所有出现次数为y的字符 代码&#xff1a; #include <iostream> #include <uno…

stm32外部时钟为12MHZ,修改代码适配

代码默认是8MHZ的&#xff0c;修改2个地方&#xff1a; 第一个地方是这个文件的这里&#xff1a; 第二个地方是找到这个函数&#xff1a; 修改第二个地方的这里&#xff1a;

图论06-【无权无向】-图的遍历并查集Union Find-力扣695为例

文章目录 1. 代码仓库2. 思路2.1 UF变量设计2.2 UF合并两个集合2.3 查找当前顶点的父节点 find(element) 3. 完整代码 1. 代码仓库 https://github.com/Chufeng-Jiang/Graph-Theory 2. 思路 2.1 UF变量设计 parent数组保存着每个节点所指向的父节点的索引&#xff0c;初始值为…

Xubuntu16.04系统中安装create_ap创建无线AP

1.背景说明 在Xubuntu16.04系统的设备上安装无线WIFI模块后&#xff0c;想通过设备自身的无线AP&#xff0c;进行和外部设备的连接&#xff0c;需要安装create_ap软件&#xff0c;并设置无线AP的名称和密码&#xff0c;并设置为开机自启动。 create_ap是一个用于在Linux系统上创…

LeetCode58——最后一个单词的长度

自己的解&#xff1a; public static int lastLength(String s){//返回通过围绕给定正则表达式的匹配拆分此字符串计算的字符串数组String[] str s.split(" ");//将数组最后一个元素 即最后一个单词通过toCharArray方法拆分到char数组中char[] last str[str.lengt…

【JavaEE重点知识归纳】第10节:Object类和String类

目录 一&#xff1a;Object类 1.概念 2.获取对象信息 3.对象比较equals方法 4.hashCode方法 二&#xff1a;String类 1.String类的重要性 2.常用方法 3.StringBuilder和StringBuffer 一&#xff1a;Object类 1.概念 &#xff08;1&#xff09;Object类是Java默认提供…

剑指Offer || 052.递增顺序搜索树

题目 给你一棵二叉搜索树&#xff0c;请 按中序遍历 将其重新排列为一棵递增顺序搜索树&#xff0c;使树中最左边的节点成为树的根节点&#xff0c;并且每个节点没有左子节点&#xff0c;只有一个右子节点。 示例 1&#xff1a; 输入&#xff1a;root [5,3,6,2,4,null,8,1,n…

hackbar基于插件的网络渗透测试工具

一、安装 安装&#xff1a;通过Firefox在插件扩展里面找到hackbar v2进行安装(注意hackerbar是收费的&#xff1b;v2不是) 安装成功示例&#xff1a; 二、基本使用 1.Load URL 解释&#xff1a;将当前网页的url自动填充到多行文本框里面 2.Split URL 解释&#xff1a;自动…

22下半年下午题

声明&#xff1a;哔哩哔哩视频笔记 源地址 第一大题题目 第一大题解答 第一小问 根据0层数据流图来找&#xff0c;看数据流向和相应的处理模块匹配。并且这个第一问&#xff0c;肯定是能在说明中找到对应短语作为答案的。 第二小问 搞清楚具体存储数据的信息名字&#xff…

数据结构:二叉树(3):相关oj题目

二叉树oj题的续 目录 102. 二叉树的层序遍历 - 力扣&#xff08;LeetCode&#xff09; 236. 二叉树的最近公共祖先 - 力扣&#xff08;LeetCode&#xff09; 方法1 方法2 105. 从前序与中序遍历序列构造二叉树 - 力扣&#xff08;LeetCode&#xff09; 106. 从中序与后序…

图论03-【无权无向】-图的深度优先DFS遍历-路径问题/检测环/二分图

文章目录 1. 代码仓库2. 单源路径2.1 思路2.2 主要代码 3. 所有点对路径3.1 思路3.2 主要代码 4. 路径问题的优化-提前结束递归4.1 思路4.2 主要代码 5. 检测环5.1 思路5.2 主要代码 6. 二分图6.1 思路6.2 主要代码6.2.1 遍历每个联通分量6.2.2 递归判断相邻两点的颜色是否一致…

java--Consumer的使用

一、目的 因为代码中用到了Consumer &#xff0c;所以特地来梳理其对应的用法以及总结。 二、介绍 Consumer 是一个函数式接口&#xff0c;它位于java.util.function 包中&#xff0c;它定义了一个名为accept 的抽象方法&#xff0c;该方法接受一个参数并且不返回任何结果。 …

【C++和数据结构】模拟实现哈希表和unordered_set与unordered_map

目录 一、哈希的概念与方法 1、哈希概念 2、常用的两个哈希函数 二、闭散列的实现 1、基本结构&#xff1a; 2、两种增容思路 和 插入 闭散列的增容&#xff1a; 哈希表的插入&#xff1a; 3、查找 4、删除 三、开散列的实现 1、基本结构 2、仿函数Hash 3、迭代器…