当前位置: 首页 > news >正文

观成科技:新版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限定域指纹检测的加密威胁智能检测系统能够高效、准确的检测出该代理工具。目前越来越多的攻击者利用隐蔽隧道工具来封装攻击行为,观成科技安全研究团队一直在持续追踪这些工具的最新动态,并积极进行研究和更新,以提高对加密流量的检测技术。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • # dbt source dbt source freshness命令详解
  • 【Linux 20】线程控制
  • IP包头分析
  • tomcat服务器
  • 关于支持向量机的一份介绍
  • Ubuntu 20.04安装pycharm2022及配置快捷方式
  • 09 Shell Scriptfor循环结构语句
  • 【乐企-业务篇】OFD对应xml实体对象定义
  • uniapp快速入门教程,内容来源于官方文档,仅仅记录快速入门需要了解到的知识点
  • 分苹果 - 华为OD统一考试(E卷)
  • Flask 第十二课 -- 错误处理
  • 末端回路漏电监测仪为何不可或缺?
  • Qt窗口——QDockWidget
  • git reflog
  • 【Linux】yum、vim、gcc使用(超详细)
  • 【前端学习】-粗谈选择器
  • Angularjs之国际化
  • Flannel解读
  • happypack两次报错的问题
  • If…else
  • JAVA 学习IO流
  • JAVA并发编程--1.基础概念
  • MaxCompute访问TableStore(OTS) 数据
  • React-redux的原理以及使用
  • Service Worker
  • 回顾2016
  • 学习笔记:对象,原型和继承(1)
  • 正则与JS中的正则
  • ​flutter 代码混淆
  • # 职场生活之道:善于团结
  • #100天计划# 2013年9月29日
  • $(document).ready(function(){}), $().ready(function(){})和$(function(){})三者区别
  • (done) ROC曲线 和 AUC值 分别是什么?
  • (Python第六天)文件处理
  • (笔记)M1使用hombrew安装qemu
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (算法)N皇后问题
  • (学习日记)2024.02.29:UCOSIII第二节
  • (转)Windows2003安全设置/维护
  • ***微信公众号支付+微信H5支付+微信扫码支付+小程序支付+APP微信支付解决方案总结...
  • .Family_物联网
  • .gitignore文件—git忽略文件
  • .mat 文件的加载与创建 矩阵变图像? ∈ Matlab 使用笔记
  • .NET Conf 2023 回顾 – 庆祝社区、创新和 .NET 8 的发布
  • .net6解除文件上传限制。Multipart body length limit 16384 exceeded
  • .NET高级面试指南专题十一【 设计模式介绍,为什么要用设计模式】
  • .NET牛人应该知道些什么(2):中级.NET开发人员
  • .Net中ListT 泛型转成DataTable、DataSet
  • .Net中wcf服务生成及调用
  • :=
  • @property括号内属性讲解
  • []使用 Tortoise SVN 创建 Externals 外部引用目录
  • [Android]How to use FFmpeg to decode Android f...
  • [Android实例] 保持屏幕长亮的两种方法 [转]
  • [bzoj1324]Exca王者之剑_最小割