【观成科技】Websocket协议代理隧道加密流量分析与检测
Websocket协议代理隧道加密流量简介
攻防场景下,Websocket协议常被用于代理隧道的搭建,攻击者企图通过Websocket协议来绕过网络限制,搭建一个低延迟、双向实时数据传输的隧道。当前,主流的支持Websocket通信代理的工具有:FRP、wsp、wstunnel和TurboTunnel等。
以wstunnel工具为例,当wstunnel使用Websocket协议搭建隧道代理相关流量时,客户端使用HTTP Upgrade 机制来完成协议的握手阶段。当完成握手后,客户端和服务端就使用Websocket协议的数据格式来进行全双工的通信。服务器和客户端都可以主动发送消息,而不需要等待对方先发送消息。Wstunnel可以通过这种方式,搭建起一个高性能、低延迟的Websocket隧道。
Websocket 在握手完成过后以数据帧为单位来传输数据。wstunnel的Websocket隧道流量如下图所示:
Websocket的MASK加密
Websocket协议中有一个标志位:Mask, 用于指示数据是否启用掩码加密。当该位置为1时表明使用掩码加密,则载荷长度后4字节为解密密钥。Websocket中的掩码加密使用异或(xor)做简单的加密,当MASK字段对应位被设置为 1 时表示加密,那么后续会设置4字节的Masking-key,Mask位设置为 0 时表示不加密,则不会携带Masking-key。目前标准的 Websocket 规定,客户端发送数据必须使用掩码加密,而服务器发送则不使用掩码加密。
下图是另一款wsp工具启用MASK加密后的流量:
Websocket Secure
此外,Websocket支持WSS属性,即Websocket Secure,传输为形式为“wss://”。该通信将Websocket数据通过TLS加密协议进行封装,使得最外层看到的数据就是TLS协议通信,传输数据更加隐蔽,如图所示:
- Websocket协议代理工具加密流量样例
除了wstunnel和wsp,还有其他工具也支持Websocket隧道:
- FRP
- Turbo Tunnel
上述四款工具,对载荷的加密情况如下所示:
- 客户端加密:FRP、wsp、TurboTunnel
- 服务端加密:TurboTunnel
- 客户端不加密:wstunnel
- 服务端不加密:wstunnel、FRP、wsp
- Websocket协议代理工具加密流量检测
上边介绍了几款常用工具的Websocket通信流量特征,观成瞰云-加密威胁智能检测系统对这些工具使用Websocket加密通信的流量可以有效检测:
- 总结
在攻防演练等场景中,Websocket协议隧道具有低延迟、双向实时的高性能特点,又具有较强的加密功能,方便规避流量设备审计,因此这类工具逐渐变得热门。观成科技的安全团队通过研究Websocket协议本身结构特点,并与对应的工具流量相结合,从而提出行之有效的检测方法应用于产品当中,能在Websocket流量中准确发现异常,找出相关隧道的搭建和使用痕迹,保障客户网络的安全。我们会持续追踪和研究这类隧道工具,不断提升产品的检测能力。
相关文章:
【观成科技】Websocket协议代理隧道加密流量分析与检测
Websocket协议代理隧道加密流量简介 攻防场景下,Websocket协议常被用于代理隧道的搭建,攻击者企图通过Websocket协议来绕过网络限制,搭建一个低延迟、双向实时数据传输的隧道。当前,主流的支持Websocket通信代理的工具有…...
DangerWind-RPC-framework---三、服务端下机
当一台机器下线时,面临很多问题:如何将其从注册中心下线?如何清理释放资源?客户端拉取服务列表时也使用了本地缓存,如何及时更新本地缓存? 服务端机器的优雅下线需要使用ShutdownHook,这相当于添…...
基于Make的c工程No compilation commands found报错
由于安装gcc时只安装了build-essential,没有将其添加到环境变量中,因此打开Make工程时,CLion会产生如下错误: 要解决这个问题,一个方法是将GCC添加到环境变量中,但是这个方法需要修改至少两个配置文件&…...
c++:面向对象的继承特性
什么是继承 (1)继承是C源生支持的一种语法特性,是C面向对象的一种表现 (2)继承特性可以让派生类“瞬间”拥有基类的所有(当然还得考虑权限)属性和方法 (3)继承特性本质上是为了代码复用 (4)类在C编译器的内部可以理解为结构体,派…...
skywalking-2-客户端-php的安装与使用
skywalking的客户端支持php,真的很棒。 官方安装文档:https://skywalking.apache.org/docs/skywalking-php/next/en/setup/service-agent/php-agent/readme/ 前置准备 本次使用的php版本是8.2.13: php -v PHP 8.2.13 (cli) (built: Nov 21 2023 09:5…...
图文讲解IDEA如何导入JDBC驱动包
前言 学习JDBC编程,势必要学会如何导入驱动包,这里笔者用图文的方式来介绍 视频版本在这里 50秒教你怎么导入驱动包然后进行JDBC编程的学习_哔哩哔哩_bilibili 忘记录音频了,大伙凑合着看 下载驱动包 https://mvnrepository.com/artifact/mysql/mysql-connector-java 去中…...
java.lang.NullPointerException: null cannot be cast to non-null type kotlin.Int
java.lang.NullPointerException: null cannot be cast to non-null type kotlin.Int fun main(args: Array<String>) {var any1: Any?any1 nullval n1 any1 as? Int ?: -2024println(n1)kotlin.runCatching {var any2: Any?any2 nullval n2 any2 as Intprintln(…...
scrapy写爬虫
Scrapy是一个用于爬取网站数据并提取结构化信息的Python框架 一、Scrapy介绍 1.引擎(Engine) – Scrapy的引擎是控制数据流和触发事件的核心。它管理着Spider发送的请求和接收的响应,以及处理Spider生成的Item。引擎是Scrapy运行的驱动力。…...
Mybatis study
一、Mybatis Plus mybatis-plus指定实体类字段不查询 加标签 TableField(exist false) Spring Data Jpa学习 干我们这行,啥时候懈怠,就意味着长进的停止,长进的停止就意味着被淘汰,只能往前冲,直到凤凰涅槃的一天&am…...
【论文速读】《面向深度学习的联合消息传递与自编码器》
这篇文章来自华为的渥太华无线先进系统能力中心和无线技术实验室,作者中有大名鼎鼎的童文。 一、自编码架构的全局收发机面临的主要问题 文章对我比较有启发的地方,是提到自编码架构的全局收发机面临的主要问题: 问题一:基于随…...
防御---001
一、实验拓扑二、要求 1,DMZ区内的服务器,办公区仅能在办公时间内(9:00 - 18:00)可以访问,生产区的的设备全天可以访问. 2,生产区不允许访问互联网,办公区和游客区允许访问互联网 3,办公区设备10.0.2.10不允许访问DMZ…...
DNS 杂谈
一、定义 DNS(Domain Name System),域名系统,该系统记录域名和Ip地址的相互映射关系。用户访问互联网时,通过域名地址得到对应的IP地址,这个过程称为域名解析。DNS运行于UDP协议之上,使用的端口…...
docker笔记2
docker笔记2 一、阿里云镜像配置二、docker基本原理1.docker是如何启动一个容器的2.docker的底层原理 三、镜像命令总结 一、阿里云镜像配置 配置镜像的目的 由于Docker Hub等公共镜像仓库的服务器可能位于国外,直接从中拉取镜像时可能会遇到网络延迟或不稳定的问…...
数字统计
import java.util.Scanner;// 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别// 注意 while 处理多个 caseint a in.nextInt();i…...
Git 使用问题
Git 使用问题 1, 网络问题 1, 网络问题 # 报错如下: fatal: unable to access https://github.com/xianglingliwei/HRNet.git/: Failed to connect to github.com port 443 after 21044 ms: Couldnt connect to server在不能正常访问Github的区域,需要设…...
JMH325【剑侠情缘3】第2版80级橙武网游单机更稳定亲测视频安装教学更新整合收集各类修改教学补丁兴趣可以慢慢探索
资源介绍: 是否需要虚拟机:是 文件大小:压缩包约14G 支持系统:win10、win11 硬件需求:运行内存8G 4核及以上CPU独立显卡 下载方式:百度网盘 任务修复: 1,掌门任务(…...
大数据专业创新人才培养体系的探索与实践
一、引言 随着大数据技术的迅猛发展,其在各行各业中的应用日益广泛,对大数据专业人才的需求也日益增长。我国高度重视大数据产业的发展,将大数据作为国家战略资源,推动大数据与各行业的深度融合。教育部也积极响应国家战略&#…...
MySQL 中的 DDL、DML、DQL 和 DCL
文章目录 1. 数据定义语言(DDL)2. 数据操作语言(DML)3. 数据查询语言(DQL)4. 数据控制语言(DCL)总结 在 MySQL 数据库管理系统中,SQL 语句可以根据其功能分为不同的类别&…...
基础架构服务API:降低成本,提升业务效益
基础架构服务API的应用可以显著降低企业的成本,并提升业务效益。通过使用这些API,企业可以充分利用云计算、自动化部署和资源管理等功能,从而减少了传统基础设施所需的大量投资和维护成本。这些API还提供了弹性扩展和自动化功能,使…...
Redis IO多路复用
0、前言 本文所有代码可见 > 【gitee code demo】 本文涉及的主题: 1、BIO、NIO的业务实践和缺陷 2、Redis IO多路复用:redis快的主要原因 3、epoll 架构 部分图片 via 【epoll 原理分析】 1、BIO单线程版 1.1 业务代码 client client代码相同…...
如何在Vue中实现拖拽功能?
Vue.js是一款流行的JavaScript框架,用于构建用户界面。其中一个常见的需求是在Vue中实现拖拽功能,让用户可以通过拖拽元素来进行交互。今天,我们就来学习如何在Vue中实现这一功能。 首先,我们需要明白拖拽功能的基本原理…...
在Linux下使用Docker部署chirpstack
目录 一、前言 二、chirpstack 1、chirpstack是什么 2、chirpstack组件 3、为什么选择Docker部署 三、Linux下部署过程 四、web界面部署过程 一、前言 本篇文章我是在Linux下使用 Docker 进行部署chirpstack,chirpstack采用的是v4 版本,v4 版本 与…...
《昇思25天学习打卡营第14天|计算机视觉-ShuffleNet图像分类》
FCN图像语义分割&ResNet50迁移学习&ResNet50图像分类 当前案例不支持在GPU设备上静态图模式运行,其他模式运行皆支持。 ShuffleNet网络介绍 ShuffleNetV1是旷视科技提出的一种计算高效的CNN模型,和MobileNet, SqueezeNet等一样主要应用在移动端…...
将字符串写入结构体变量中
将字符串写入结构体变量中,主要涉及到结构体中字符数组(或指针)的使用。 一、使用字符数组 假设你有一个结构体,它包含一个字符数组来存储字符串: #include <stdio.h> #include <string.h> // 用于st…...
iPhone 16 Pro系列将标配潜望镜头:已开始生产,支持5倍变焦
ChatGPT狂飙160天,世界已经不是之前的样子。 更多资源欢迎关注 7月6日消息,据DigiTimes最新报道,苹果将在iPhone 16 Pro中引入iPhone 15 Pro Max同款5倍光学变焦四棱镜潜望镜头。 报道称,目前苹果已经将模组订单交至大立光电和玉…...
PG在还没有pg_class的时候怎么访问基础系统表?
在没有pg_class的时候,数据库怎么访问系统表?这个问题可以分成两个阶段来看: 数据库簇初始化,此时一个database都没有,所以怎么构造和访问pg_class等系统表是一个问题私有内存初始化系统表。PG的系统表信息是放在back…...
UnityHub 无法添加模块问题
文章目录 1.问题描述2.问题解决 1.问题描述 在Hub中无法添加模块 2.问题解决 1、点击设置 2、设置版本安装位置 可以发现installs的安装位置路径设置不是unity安装位置,这里我们更改成自己电脑unity安装位置的上一级路径 添加模块正常:...
python04——类(基础new)
类其实也是一种封装的思想,类就是把变量、方法等封装在一起,然后可以通过不同的实例化对其进行调用操作。 1.类的定义 class 类名: 变量a def __init__ (self,参数2,参数2...):初始化函数!!&…...
【Python百日进阶-Web开发-Peewee】Day296 - 查询示例(五)聚合2、递归
文章目录 14.6.13 列出每个指定设施的预订总小时数 List the total hours booked per named facility14.6.14 列出每位会员在 2012 年 9 月 1 日之后的首次预订 List each member’s first booking after September 1st 201214.6.15 生成成员名称列表,每行包含成员总数 Produc…...
闲话银行家舍入法,以及在程序中如何实现
前言 相信对于四舍五入的舍入法,大家都耳熟能详,但对于银行家舍入法,可能就会比较少接触了! 可是在金融界,银行家舍入法可是大名鼎鼎的主角之一,主要应用于金融领域和涉及货币计算的场合。 那么…...
专业制作网站建设/拓客app下载
Linux Mysql cacti安装配置时间:2019-01-18 17:44作者:网友投稿cacti是一套开源的网络监控工具,可以监控主机的状态和负载情况,添加相应的模板后,可以用来监控apache服务器和mysql服务器的运行状态,我安装这…...
wordpress插件功能/如何提高自己的营销能力
大数据技术与架构点击右侧关注,大数据开发领域最强公众号!暴走大数据点击右侧关注,暴走大数据!NoSQL运动自从上世纪80年代以降,关系型数据库(即传统的OLTP和OLAP数据库)一直都是后端业务系统的主…...
网站建设服务合同是否缴纳印花税/四川旅游seo整站优化站优化
Java 基础语法 一个Java程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作。下面简要介绍下类、对象、方法和实例变量的概念。 对象:对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,…...
怎么登录已注册的网站/推销
IT行业高薪这似乎已经成为大家公认的事实了,于是,越来越多的人自以为是地看好了这块肥肉,并做好了对自己进行投资的万全准备,参加几万块钱的培训机构,一头扎入“放心,学四个月,我保证你月薪过万…...
最新流行网站开发技术/最新推广方法
前叙:有灵魂的程序都是每一个程序员的最终目标。TensorFlow了解下? 打算花几个月学机器学习,TensorFlow是很好的选择,折腾了会环境,略有心得分享下。 环境:win10 Python:3.6.5 TensorFlow-GPU&…...
有多少专门做兼职的网站/营销网络是啥意思
写在前面的话: AMD安装MAC是一件很蛋疼的事情, 我这里主要是面向需要学习苹果平台的开发的同学,不想浪费太多时间去折腾的同学可以参考我的做法。 我的建议是安装mac os x 10.6.3,对应的xcode版本是3.2.2 如果想升级到更高版本的话࿰…...