观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

news2025/6/14 5:24:19
  • 1.工具介绍

Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网络环境并且借助TLS协议实现加密通信。

2.工作原理介绍

图 1工具运行流程图

服务端作为攻击方运行工具,使用命令自动生成签名证书指纹并监听本机的11601端口,等待受害机(客户端)的连接。

客户端在受害主机上启动运行,验证服务端生成的证书指纹,校验通过后双方建立TLS加密通道进行通信。客户端执行连接命令时指定参数-accept-fingerprint,参数后紧跟证书指纹,该证书指纹与服务端运行命令自动生成的证书指纹进行比对,如果两个证书指纹一样则校验通过。

3.通信过程流量分析

    工具使用了go语言的yamux库进行通信,客户端和服务端之间的通信为TLS长连接,由于yamux库有可以使用双向流的特性,所以在完成TLS握手以后通信的两端会各自维护一组心跳行为,以此达到高实时性与高性能的效果。

默认配置下服务端主动发起的心跳间隔固定为27s,客户端主动发起的心跳固定为30s,可以通过修改源码各自设置不同心跳频率。

图 2 红黄两部分分别为两组不同间隔的心跳

常见的心跳包是由客户端发送请求(上行包)后,再接服务端响应(下行包),本工具具有服务端心跳,与客户端心跳相反,先由服务端主动发请求,之后客户端再发响应,在TLS加密载荷中体现为先有下行包后有上行包。

此行为为对yamux库特性的应用,从工具源码的NewAgent函数中可见:服务端在建立新连接后会立即发送InfoRequestPacket。之后在HandleConn函数中,agent会处理这个初始请求。

图 3服务端发送请求代码图

图 4客户端响应请求代码图

从TLS加密载荷可以看到,两组心跳的长度相同,且固定为29字节。

图 5交互稳定后心跳包大小图

分析代码可知,心跳的内容主要为通信自定义的ping命令,29字节长度组成为12字节明文数据(yamux库自定义的12字节ping帧结构),1字节记录类型,16字节认证标签。这16字节认证标签来源为服务端选择的加密套件TLS_AES_128_GCM_SHA256 (0x1301):

  1. TLS_AES_128_GCM_SHA256 加密套件:

   - 使用 AES-128-GCM作为加密算法,GCM 模式是一种认证加密模式(AEAD)。

   - 加密后会增加以下开销:

     - Nonce(初始化向量):GCM 模式通常使用 12 字节的显式 Nonce(在 TLS 1.3 中,Nonce 由记录层隐式管理,显式部分通常不直接计入数据长度)。

     - 认证标签(Authentication Tag):GCM 模式会为每个加密记录添加 16 字节的认证标签,用于完整性验证。

   - TLS 1.3 的记录层会将明文加密为密文,并附带额外的元数据。

  1. TLS 1.3 记录结构:

   - TLS 1.3 的 Application Data记录对以下明文内容进行加密:

     - 明文数据:12 字节(在这里也就是yamux库自定义的12字节ping帧结构)。

     - 记录类型:TLS 1.3 在加密数据后会附加 1 字节的记录类型

     - 认证标签:16 字节(GCM 模式的完整性标签)。

   - 加密后的数据总长度 = 明文数据 + 记录类型 + 认证标签 = 12 + 1 + 16 = 29 字节。

图 6 29字节加密载荷内容数据结构图

图 7 yamux库构造ping内容代码图

4.工具检测

观成瞰云-加密威胁智能检测系统通过对该工具TLS通信中的行为特征进行识别,支持对Ligolo-ng隐蔽通信工具进行有效检出,检测告警见下图。

图 8检测告警图

5.总结

通过对Ligolo-ng工具的研究发现,虽然该工具能利用反向TCP/TLS连接,使用自动生成的证书建立一条隐蔽的加密通信信道,但是通过对其通信过程的分析发现,数据包具有心跳时间、心跳方向以及心跳包长度等特征,可以通过检测这些行为特征对该工具加密流量进行识别。观成科技安全研究团队将持续跟踪各种隐蔽隧道工具并研究加密通信特征,及时更新检测方案。

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

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

相关文章

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…

网络六边形受到攻击

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 抽象 现代智能交通系统 &#xff08;ITS&#xff09; 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 &#xff08;…

AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持续更新中&#xff01;&#xff08;长期更新&#xff09; 目前2025年06月05日更新到&#xff1a; AI炼丹日志-28 - Aud…

第19节 Node.js Express 框架

Express 是一个为Node.js设计的web开发框架&#xff0c;它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用&#xff0c;和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…

eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)

说明&#xff1a; 想象一下&#xff0c;你正在用eNSP搭建一个虚拟的网络世界&#xff0c;里面有虚拟的路由器、交换机、电脑&#xff08;PC&#xff09;等等。这些设备都在你的电脑里面“运行”&#xff0c;它们之间可以互相通信&#xff0c;就像一个封闭的小王国。 但是&#…

多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度​

一、引言&#xff1a;多云环境的技术复杂性本质​​ 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时&#xff0c;​​基础设施的技术债呈现指数级积累​​。网络连接、身份认证、成本管理这三大核心挑战相互嵌套&#xff1a;跨云网络构建数据…

国防科技大学计算机基础课程笔记02信息编码

1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制&#xff0c;因此这个了16进制的数据既可以翻译成为这个机器码&#xff0c;也可以翻译成为这个国标码&#xff0c;所以这个时候很容易会出现这个歧义的情况&#xff1b; 因此&#xff0c;我们的这个国…

测试微信模版消息推送

进入“开发接口管理”--“公众平台测试账号”&#xff0c;无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息&#xff1a; 关注测试号&#xff1a;扫二维码关注测试号。 发送模版消息&#xff1a; import requests da…

Chapter03-Authentication vulnerabilities

文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…

Docker 离线安装指南

参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性&#xff0c;不同版本的Docker对内核版本有不同要求。例如&#xff0c;Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本&#xff0c;Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…

MPNet:旋转机械轻量化故障诊断模型详解python代码复现

目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…

19c补丁后oracle属主变化,导致不能识别磁盘组

补丁后服务器重启&#xff0c;数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后&#xff0c;存在与用户组权限相关的问题。具体表现为&#xff0c;Oracle 实例的运行用户&#xff08;oracle&#xff09;和集…

业务系统对接大模型的基础方案:架构设计与关键步骤

业务系统对接大模型&#xff1a;架构设计与关键步骤 在当今数字化转型的浪潮中&#xff0c;大语言模型&#xff08;LLM&#xff09;已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中&#xff0c;不仅可以优化用户体验&#xff0c;还能为业务决策提供…

JavaSec-RCE

简介 RCE(Remote Code Execution)&#xff0c;可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景&#xff1a;Groovy代码注入 Groovy是一种基于JVM的动态语言&#xff0c;语法简洁&#xff0c;支持闭包、动态类型和Java互操作性&#xff0c…

idea大量爆红问题解决

问题描述 在学习和工作中&#xff0c;idea是程序员不可缺少的一个工具&#xff0c;但是突然在有些时候就会出现大量爆红的问题&#xff0c;发现无法跳转&#xff0c;无论是关机重启或者是替换root都无法解决 就是如上所展示的问题&#xff0c;但是程序依然可以启动。 问题解决…

大数据学习栈记——Neo4j的安装与使用

本文介绍图数据库Neofj的安装与使用&#xff0c;操作系统&#xff1a;Ubuntu24.04&#xff0c;Neofj版本&#xff1a;2025.04.0。 Apt安装 Neofj可以进行官网安装&#xff1a;Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…