观成科技:新版suo5隧道工具加密流量跟踪分析

1、工具简介

suo5是一个高性能的http隧道代理工具,支持全双工半双工模式,具有很高的传输性能,现在越来越多的webshell管理工具与内存马生成工具都支持了生成suo5木马的功能。从v1.1.0版本开始,其TLS协议传输功能中,增加了新的变化,每次握手使用随机的加密套件和扩展列表项,使得客户端指纹和特征不固定,增大了其TLS加密流量的检测难度。

2、不同版本对比

v1.1.0之后的新版本相较于我们之前分析过的v0.5.0版本存在以下差异:

3、新旧版本差异详解

(1)HTTP协议通信分析

1)建立连接的验证阶段

图1:v0.5.0验证请求

图2:v1.1.0验证请求

  1. 在请求体的长度方面

0.5.0版本在ctrl.go文件中定义的checkMemshell函数限定了请求体长度以及验证连接成功的方式

图3:v0.5.0 checkMemshell函数限定了长度64字节

函数前半段的data使用randstring函数生成了长度为64的随机字符串作为请求体,并在之后用于验证连接情况。

图4:v0.5.0 响应体校验方式

之后使用len(body) != 32 || !strings.HasPrefix(data, string(body))校验响应体,如果响应体的长度不等于 32 或者响应体的前缀不是 data 的一部分,则认为检测失败。在失败的情况下,会将响应头和响应体内容记录下来,并返回错误。

1.1.0版本改用checkConnectMode函数,在校验连接的同时判断适用的连接模式,见下图:

图5:v1.1.0 checkConnectMode函数源码

这里随机生成的data长度不再是固定的64字节,而是在32 到 1024 字节之间随机取值,因此每次验证数据长度不固定。

2)首次传输数据

图6:v0.5.0首次传输数据

图7:v1.1.0首次传输数据

  1. 请求头中在Content-Type分别是application/octet-stream和application/x-binary这里在新老版本是相同的,作为全双工半双工模式标记。
  2. 新版本同样沿用了之前的异或加密方式,数据格式为【四个字节密文长度指示+密钥+密文】。

3)请求体解密:

图8:解密请求体

解密后请求体存在字符ac、h、p,这些参数在handler.go文件中定义:

图9:请求体构建函数

newActionCreate函数接收四个参数后,返回字节映射并在handleConnect函数中构建请求体。其中ac代表操作类型(创建、数据传输、删除、心跳);id代表当前操作的唯一标识,用于确保操作的正确性和一致性;h为目标的IP或域名;p代表端口,默认为0。除此之外,在chunked.go代码中,还记录着在后续传输数据时才存在的标志位”dt”,表示有数据传输。

4)响应体解密:

图10:解密响应体

响应体内容解密后除了不可读字符外仅有 “s”。

图11:响应体验证

分析代码可以看出响应体中的键 "s" 对应的值作为状态码。如果状态码不是 0x00 或者状态值的长度不为1,说明服务器拒绝了连接请求。

(2)TLS协议通信

图12:v1.1.0版本的TLS指纹不固定

图13:v0.5.0 版本的TLS指纹不变

v1.1.0版本在进行HTTPS通信时使用了utls库中的UClient函数,用于创建TLS客户端连接。该函数的第三个参数 utls.HelloRandomizedNoALPN 表示客户端消息中的ClientHello类型。这个参数表示在TLS握手中不使用ALPN并且随机化扩展列表和加密套件以增强隐私性。因为新版本使用的不是oldConn.ClientHelloID参数,所以由ClientHello消息计算得到的TLS指纹也不再是固定的。

图14:v1.1.0版本中处理TLS通信的相关代码

而v0.5.0版本并未发现这个函数,HTTPS通信上使用的是crypto/tls库中的tls.Config来构建请求,除了设置了忽略证书校验外都使用go的默认配置进行连接。

4、产品检测

观成瞰云(ENS)-加密威胁智能检测系统能够对suo5隧道代理工具产生的HTTP和HTTPS流量进行检测。

图15:suo5-http告警详情

图16:suo5-https告警详情

5、总结

       在利用suo5隧道代理工具的过程中,攻击者不仅可以将工具自带的木马上传到目标中,也可以由其他内存马以suo5的通信方式和加密形式来利用,还可以通过webshell管理工具来注入suo5的内存马进行利用,但是基于人工智能、流行为特征和TLS限定域指纹检测的加密威胁智能检测系统能够高效、准确的检测出该代理工具。目前越来越多的攻击者利用隐蔽隧道工具来封装攻击行为,观成科技安全研究团队一直在持续追踪这些工具的最新动态,并积极进行研究和更新,以提高对加密流量的检测技术。

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

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

相关文章

python学习笔记目录

基于windows下docker安装HDDM-CSDN博客 在python中安装HDDM-CSDN博客(这个办法没安装成功)

青海省基础地理矢量数据

青海是长江、黄河、沧澜江的发源地,因此被誉为“三江源”和“中华水塔”,具有全球独一无二的生态地位。青海省拥有丰富的水资源和生物多样性,对维护亚洲的水资源和生态平衡具有重要作用。 该数据集涵盖了青海省内的主要地理要素,包…

【案例】--mongodb的响应慢思考案例

目录 一、问题现象及思考思路1、问题现象2、思考思路3、问题分析二、对mongodb查询的影响有哪些1、单条数据大,对查询的影响2、mongodb硬件性能,对查询的影响三、分页查询问题及优化策略1、索引有效利用2、基于索引的游标分页3、聚合策略4、减少查询返回的数据量5、缓存机制6…

Linux服务器及应用环境快速部署、调试、迁移、维护、监控

1. 请解释什么是Linux? Linux是一种开源操作系统(Operating System,OS),它最初由Linus Torvalds于1991年创建。自那时起,Linux逐渐发展成为全球最广泛使用的操作系统之一。以下是对Linux的详细解释&#x…

聚焦汽车智能化与电动化,亚洲领先的汽车工业技术博览会 2025年11月与您相约 AUTO TECH 华南展

抢占市场先机︱聚焦汽车智能化与电动化,亚洲领先的汽车工业技术博览会 2025年11月与您相约 AUTO TECH 华南展 随着汽车智能化与电动化的迅猛发展,汽车电子技术、车用功率半导体技术、智能座舱技术、轻量化技术/材料、软件定义汽车、EV/HV技术、测试测量技…

在linux下,找到指定命令对应的路径信息

如果 which 和 whereis 命令都没有找到某个命令的原文件位置,可以尝试以下方法: 一、使用 type 命令 type 命令可以显示一个命令是内置命令还是外部命令,并给出其路径(如果是外部命令)。 例如: type co…

Android架构组件:MVVM模式的实战应用与数据绑定技巧

目录 引言 一、MVVM模式概述 1.1 MVVM模式简介 1.2 MVVM模式的优势 二、MVVM模式的实现 2.1 项目环境配置 2.2 创建MVVM组件 2.2.1 创建数据模型 2.2.2 创建数据仓库 2.2.3 创建ViewModel 2.2.4 创建布局文件 2.2.5 创建RecyclerView适配器 2.3 在Activity中绑定V…

deepspeed安装报错 No module named ‘dskernels‘解决

pip install deepseek安装报错 Using cached https://pypi.tuna.tsinghua.edu.cn/packages/61/e6/04e2f2de08253e6b779fe7706f2e06d8fb48353e1d33a2fd7805062213d4/deepspeed-0.12.3.tar.gz (1.2 MB)Preparing metadata (setup.py) ... errorerror: subprocess-exited-with-err…

笔记9.18

线程之间的通信是指在多线程程序中,不同线程之间如何交换数据或协调工作。这种通信对于实现复杂的并发程序是至关重要的。以下是几种常见的线程间通信方式: 共享内存: 这是最直接的方式,多个线程通过读写同一块内存区域&#xff0…

bprc二次封装

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、封装的思想二、封装单个服务的信道管理类1.成员变量2.成员函数 三、封装总体的服务信道管理类1.成员变量2.成员函数 四.etcd和brpc联合测试1.服务注册客户端2.服…

透明屏幕有普通屏幕有哪些优点

针对透明玻璃屏幕的安装方案,我们需要综合考虑多个因素,包括安装环境、屏幕尺寸、重量、安全要求以及视觉效果等。以下是一个概括性的安装方案框架,供您参考: 一、前期准备 1.1 需求分析 明确透明玻璃屏幕的使用场景&#xff08…

聊聊对别人表示真正的关注

在工作和生活中,那些重要人士所得到的关注已经很多了,所以你不能只关注那些重要的人,对那些保洁门卫、前台等也需要我们给予真心的关注。 他们可使你的生活正常有序,但却经常被你忽略,见面打个招呼时常跟他们聊一聊,这…

C++速通LeetCode中等第4题-三数之和

解题思路&#xff1a;先排序&#xff0c;固定第一个数&#xff0c;用两个指针分别指向右侧剩余数列的两端&#xff0c;右侧向左移动直到两指针重合&#xff0c;看三数合有没有解&#xff0c;指针遇到相同数字跳过。 class Solution { public:vector<vector<int>> …

Spring Session

Session 共享问题 在 Web 项目开发中&#xff0c;Session 会话管理是一个很重要的部分&#xff0c;用于存储与记录用户的状态或相关的数据。 通常情况下 session 交由容器&#xff08;tomcat&#xff09;来负责存储和管理&#xff0c;但是如果项目部署在多台 tomcat 中&#…

【Unity3D小技巧】Unity3D中使用EventTrigger对3D物体的响应

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址QQ群:398291828大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 一、前言 1-1、EventTrigger简介 EventTrigger是Unity中用于处理UI事件的一个组件。它允许我们为UI元…

什么是区块链,以及应用场景

一、引言 在当今数字化时代&#xff0c;区块链技术作为一种新兴的分布式账本技术&#xff0c;正逐渐引起广泛关注。它具有去中心化、不可篡改、透明性等特点&#xff0c;为解决传统中心化系统中的信任问题提供了新的思路。本文将介绍区块链的基本概念、工作原理以及其在各个领域…

【数据库】MySQL内置函数

本篇分享一些在MySQL中常见的一些内置函数&#xff0c;如日期函数&#xff0c;字符串函数和数学函数&#xff0c;以方便于操作数据库中的数据。 1.日期函数 我们先整体观察一下这些函数再讲解案例 日期函数使用起来都非常就简单 获得年月日&#xff1a; select current_dat…

甘特图介绍

甘特图&#xff08;Gantt chart&#xff09;是一种常用于项目管理和计划安排的图表类型&#xff0c;它以图形的方式展示项目的任务、活动或工作流的时间线。甘特图得名于它的发明者亨利劳伦斯甘特&#xff08;Henry Laurence Gantt&#xff09;&#xff0c;他在20世纪初开发了这…

C++ 面试模拟02

第一部分&#xff1a;基础知识 什么是拷贝构造函数和赋值运算符&#xff1f;它们之间有什么区别&#xff1f;在 C 中&#xff0c;const 关键字的作用是什么&#xff1f;有哪些常见用法&#xff1f;C 中的内存管理机制是怎样的&#xff1f;如何避免内存泄漏&#xff1f;虚函数&…

为解决bypy大文件上传报错—获取百度云文件直链并使用Aria2上传文件至服务器

问题描述 一方面组内的服务器的带宽比较小&#xff0c;另一方面使用bypy方式进行大文件(大于15G)上传时会报错&#xff08;虽然有时可以成功上传&#xff0c;但是不稳定&#xff09;&#xff1a; 解决方式 总体思路: 获得云盘需要下载文件的直链复制直链到服务器中使用自带…