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

devtools/2024/9/24 7:03:36/

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.ppmy.cn/devtools/116380.html

相关文章

Vue 3 中 `$emit` 的使用示例

在 Vue 3 中&#xff0c;$emit 用于子组件向父组件发送事件&#xff0c;这样父组件可以监听并响应子组件触发的事件。 1. 子组件示例&#xff1a;ChildComponent.vue <template><button click"handleClick">点击我</button> </template>&l…

跨站脚本攻击(XSS)

免责申明 本文仅是用于学习测试自己搭建的XSS注入漏洞使用,请勿用在非法途径上,若将其用于非法目的,所造成的一切后果由您自行承担,产生的一切风险和后果与笔者无关;本文开始前请认真详细学习《‌中华人民共和国网络安全法》‌及其所在国家地区相关法规内容【学法时习之丨…

ubuntu内网穿透后在公网使用ssh登录

需求&#xff1a; 我有一台内网可以通过ssh 22端口访问的设备操作系统是ubuntu server我还有1台拥有公网IP的服务器&#xff0c;IP地址是 6.66.666.6666我想随时从其他网段通过ssh访问我的ubuntu server设备 实现&#xff1a; 工具准备&#xff1a;frp 网址&#xff1a;https…

Python 复制Excel 中的行、列、单元格

在Excel中&#xff0c;复制行、列和单元格是日常工作中经常需要进行的操作&#xff0c;它可以帮助你快速调整数据布局、复制数据模板或进行数据的批量处理。 本文将详细介绍如何使用Python将Excel中的行、列、或单元格范围复制到指定位置。 所需Python库 要使用Python操作Exc…

得物App荣获新奖项,科技创新助力高质量发展

近日&#xff0c;备受瞩目的2024中国国际服务贸易交易会&#xff08;简称“服贸会”&#xff09;在北京盛大开幕&#xff0c;这一全球唯一的国家级、国际性、综合型服务贸易盛会再次汇聚了全球服务贸易领域的精英与前沿成果。服贸会由商务部和北京市政府携手打造&#xff0c;并…

flink 批量压缩redis集群 sink

idea maven依赖 <dependency> <groupId>org.apache.bahir</groupId> <artifactId>flink-connector-redis_2.11</artifactId> <version>1.0</version> </dependency> <dependency> <groupId>redis.clients</gr…

JDK7u21 HashMap版

今天在搞ROME HotSwappableTargetSource链的时候突然发现&#xff0c;JDK7U21反序列化链不仅HashMap.put触发了key.equals putForCreate也调用了 而且HashMap.readObject直接调用了putForCreate来还原 what?直接向HashMap两个put不就完了&#xff0c;还搞什么HashSet 开弄&am…

鸿蒙​​​​​​保障应用开发安全的技术措施

应用开发安全是指在开发过程中嵌入安全能力&#xff0c;使应用程序从源头上安全可靠。 开发者是应用程序的创作者&#xff0c;合法的开发者是创作出安全、可靠应用的前提条件;为了保证应用开发者身份真实可信&#xff0c;鸿蒙通过开发者证书对应用进行签名&#xff0c;保证应用…