基于Gost工具的ICMP隐蔽隧道通信分析

news2024/10/7 4:24:04

1.概述

近期,观成科技安全研究团队在现网中检测到了利用Gost工具实现加密隧道的攻击行为。Gost是一款支持多种协议的隧道工具,使用go语言编写。该工具实现了多种协议的隧道通信方法,例如TCP/UDP协议,Websocket,HTTP/2,QUIC,TLS等。

2022年11月,Gost更新了V3新版本,在新版本中新增了ICMP隧道功能。ICMP隧道是利用ICMP协议的Echo类型报文(ping命令所采用)进行数据传输,Gost在ICMP之上利用QUIC协议来实现安全可靠的数据传输,因此该ICMP隧道可以看作是QUIC-over-ICMP数据通道。QUIC协议是一种加密协议,所以该隧道也是一种加密隧道。

2.隧道原理分析

隧道的搭建需要客户端和服务端两端,客户端负责接收socks5代理协议,解析后将数据封装成ICMP协议发送到服务端,服务端接收后解析成原始流量并转发。

                                                   图1 隧道示意图

ICMP隧道传输的数据,由两部分构成:MessageHeader和QUIC数据。MessageHeader的长度固定10个字节,前四个字节存放magicNumber,默认为固定字符串“GOST”,最后两字节存放后续载荷的长度。

                                                    图2MessageHeader构成

 

QUIC协议是一种基于UDP的低时延的互联网传输层加密协议,和TLS类似,使用加密握手来完成密钥交换。ICMP隧道中的QUIC数据是基于quic-go包实现的。

                                                             图3 QUIC实现

在ICMP隧道的流量数据中,紧随MessageHeader之后,就是QUIC数据。隧道中传输的QUIC数据舍弃了QUIC协议的公共包头,直接传输QUIC协议的帧包。根据帧包的格式解析,第一个字节为帧类型,用来解释帧包的属性。下图流量中,帧类型为0xC3(11000011B),最高位“1”表示这是一个STREAM帧,用来进行数据传输。

                                                               图4STREAM帧包

下图数据包中的帧类型为0x4D(01001101B),最高两位“01”表示这是一个ACK帧,用来保证数据传输的可靠性。

                                                                   图5 ACK帧包

QUIC协议是一种加密协议,通过流量无法直接观察数据内容。但是从流量数据包的长度上看,ACK帧的长度远小于STREAM帧,而常规的ICMP协议的Echo类型报文数据长度往往都是相同的。

                                                               图6 数据包长度特征

3.产品检测

观成瞰云(ENS)-加密威胁智能检测系统能够对GOST工具产生的ICMP隐蔽隧道流量进行检测。

4.总结

利用Gost工具搭建ICMP隧道,攻击者可以将攻击流量隐藏在隧道之中,从而规避流量监测设备,大幅度降低被发现的可能性。目前,越来越多的攻击者利用ICMP、DNS等协议来实现隐蔽隧道加密通信,我们将会保持对此类工具的密切跟踪和研究。

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

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

相关文章

MySQL之select查询

华子目录 SQL简介SQL语句分类SQL语句的书写规范SQL注释单行注释多行注释 select语句简单的select语句select的算数运算select 要查询的信息 from 表名;查询表字段查询常量查询表达式查询函数 查询定义别名as安全等于<>去重distinct连接字段concat 模糊查询运算符比较运算…

电商数据分析工具(京东淘宝电商数据):电商运营过程中为什么要做数据分析?电商企业如何做好数据分析?

众所周知&#xff0c;电商企业进行数据分析是电商运营中的重要一环&#xff0c;电商数据分析是企业持续改进业务流程、提高运营效率、增加收入和利润的关键。 通过深入的数据分析&#xff0c;电商企业能够更有效地响应市场需求、提高客户满意度&#xff0c;最终实现可持续增长…

如何图片无损放大?几个无损放大图片分享

在数字化时代&#xff0c;图片已经成为我们生活中不可或缺的一部分。从社交媒体上的分享&#xff0c;到专业摄影作品的展示&#xff0c;再到网页设计和平面广告的制作&#xff0c;图片的质量往往直接影响到我们的视觉体验和信息传达的效果。然而&#xff0c;有时候&#xff0c;…

选择现货白银交易平台后要怎么做?

进入现货白银市场&#xff0c;选择现货白银交易平台是投资者首先要面对的问题。然而&#xff0c;有投资者认为解决了这个问题&#xff0c;往后就一帆风顺了&#xff0c;这样投资者把现货白银交易想的太简单了。如果真这么简单&#xff0c;岂不是很多投资者都可以获得盈利&#…

快排——OJ题

&#x1f4d8;北尘_&#xff1a;个人主页 &#x1f30e;个人专栏:《Linux操作系统》《经典算法试题 》《C》 《数据结构与算法》 ☀️走在路上&#xff0c;不忘来时的初心 文章目录 一、颜色划分1、题目讲解2、算法原理3、代码实现 二、排序数组1、题目讲解2、算法原理3、代码…

网络运行安全

网络运行安全 第一节 一般规定 第二十一条 国家实行网络安全等级保护制度。网络运营者应当按照网络安全等级保护制度的要求,履行下列安全保护义务,保障网络免受干扰、破坏或者未收授权的访问,防止网络数据泄露或者被窃取、篡改: 制定内部安全管理制度和操作规程,确定网络…

JVM--- 垃圾收集器详细整理

目录 一、垃圾收集需要考虑的三个事情&#xff1a; 二、垃圾回收针对的区域 三、如何判断对象已死 1.引用计数算法&#xff1a; 2.可达性分析算法 四、引用 五、生存还是死亡&#xff1f; 六、回收方法区 七、垃圾收集算法 1.分代收集理论 2.标记-清除算法 3.标记-复制算…

11-k8s中网络资源service

一、service资源概述 每当我们企业的业务pod迭代功能的时候&#xff0c;都会修改pod&#xff0c;修改后重新启动pod&#xff0c;ip就会变化&#xff0c;那么在生产环境当中&#xff0c;从用户到宿主机、从宿主机到pod&#xff0c;这一个访问流程&#xff0c;都是事先写好的&…

储能光伏一体化解决方案

上海安科瑞电气股份有限公司 胡冠楠 咨询家&#xff1a;“Acrelhgn”&#xff0c;了解更多产品资讯 1. 工业园区能源数字化系统构成 把一个工业园区的能源系统看成一个微网&#xff0c;这个能源微网可能由微电网、给/排水网、供冷/热管网、燃气管网等等组成。要提高园区的能源…

【安全狐】Windows修改文件时间

Windows修改文件时间 在应急响应过程中不要对文件时间100%的相信 powershell下执行 (ls 1.txt).CreationTimeUtc2029-01-25 06:00:10 (ls 1.txt).LastWriteTimeUtc2029-01-25 06:00:10 (ls 1.txt).LastAccessTimeUtc2029-01-25 06:00:10

selenium 驱动 Edge浏览器,解决selenium打开Edge浏览器闪退问题

一、Edge浏览器驱动下载 1、在设置中查看浏览器的版本号 2、在官网中进行对应下载 Microsoft Edge WebDriver - Microsoft Edge Developer 二、环境变量配置 1、打开设置界面 右击【此电脑】---选择【属性】----选择【高级系统设置】-----点击【环境变量】 2、变量设置 在…

Linux------环境变量

目录 前言 一、环境变量 二、添加PATH环境变量 三、HOME环境变量 四、查看所有环境变量 1.指令获取 2.代码获取 2.1 getenv 2.2main函数的第三个参数 2.3 全局变量environ 五、环境变量存放地点 六、添加自命名环境变量 七、系统环境变量具有全局属性 八、环境变…

[AIGC] 利用 ChatGpt 深入理解 Java 虚拟机(JVM)的内存分布

深入理解 Java 虚拟机&#xff08;JVM&#xff09;的内存分布 Java 虚拟机&#xff08;JVM&#xff09;是 Java 编程语言的核心运行环境&#xff0c;它负责解释和执行 Java 字节码。在 JVM 中&#xff0c;内存被划分为几个不同的区域&#xff0c;每个区域都有特定的用途。了解…

java生成pdf

1.pdf预览 2.maven <!--pdf--><dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.9</version></dependency><dependency><groupId>com.itextpdf</groupId>…

易点易动设备管理系统:提升企业设备管理效率的智能选择

随着科技的不断进步和企业规模的不断扩大&#xff0c;设备管理对于企业的运营效率和成本控制变得越来越重要。为了更好地管理和掌控企业设备&#xff0c;易点易动设备管理系统应运而生。作为一款全新的智能化设备管理解决方案&#xff0c;易点易动系统能够有效提高企业的设备管…

RabbitMQ监控方法以及核心指标

RabbitMQ监控方法以及核心指标 1. 监控指标采集2. 使用rabbimq插件采集指标2.1 3.8.0之前版本&#xff0c;使用外部插件暴露2.2 3.8.0之后版本&#xff0c;使用内置插件暴露 3. 使用rabbitmq_exporter采集指标3.1 部署rabbitmq_exporter3.2 prometheus采集rabbitmq_exporter的暴…

【DBeaver+mysql】如何在DBeaver中创建mysql服务的连接并新建数据库

一、创建步骤 1、下载安装mysql 8.0&#xff08;注意&#xff0c;安装过程会启动mysql服务&#xff0c;这才是能用命令行执行node处理sql语句的关键&#xff09; 下载地址&#xff1a;https://dev.mysql.com/downloads/file/?id526407 2、下载安装DBeaver数据库管理IDE 3、在…

【presto权威指南】presto介绍

需求&#xff1a;如何从众多数据源中快速处理数据 现实生产架构多源异构&#xff0c;需要一个强有力的工具&#xff08;抽象&#xff09;统一数据查询/分析 这也是presto/trino从诞生之初便贴数据湖查询工具 tag的原因&#xff0c;presto生来为此 生产环境的困境 1.数据源众多…

CrossOver 24.0 让Mac可以运行Windows程序的工具

CrossOver 24.0最新版重点添加了对 DirectX 12 支持&#xff0c;从而在 Mac 上更好地模拟运行 Windows 游戏&#xff0c;开发者在 CrossOver 23 中可以调用 DirectX 12&#xff0c;在模拟游戏的过程中同时调用所有 GPU 核心&#xff0c;从而实现更优秀的渲染效果。 目前CrossOv…

c++入门学习⑥——友元和运算符重载

目录 简介&#xff1a; 友元&#xff1a; 全局函数做友元 类做友元 成员函数做友元 运算符重载 加号运算符重载 代码示例&#xff1a; 输入输出运算符重载 ⭐cin ⭐cout 代码示例&#xff1a; 分析&#xff1a; 自增运算符重载 代码示例&#xff08;成员函数实现…