观成科技:加密C2框架Covenant流量分析

news2024/11/17 15:46:58

  • 工具介绍

Covenant是一个基于.NET的开源C2服务器,可以通过HTTP/HTTPS 控制Covenant agent,从而实现对目标的远程控制。Covenant agent在与C2通信时,使用base64/AES加密载荷的HTTP隧道构建加密通道。亦可选择使用SSL/TLS标准加密协议,但需自行准备证书,此工具并没有C&C服务端默认SSL证书。

  • 工具原理分析
  1. 工作流程

利用Covenant C2工具进行一次完整建联包含3个阶段,流程如下图所示:

  1. 阶段1:

被控制端主动连接控制端,并使用GET方法请求默认的url:/en-us/index.html、/en-us/docs.html、/en-us/test.html其中之一来判断控制端是否存活。

  1. 阶段2:

控制端会将特定内容”Hello World”返回给被控制端。

  1. 阶段3:

当建立连接成功后,被控制端会使用POST方法请求默认url:/en-us/index.html、/en-us/docs.html、/en-us/test.html其中之一,并将受控目标的GUID、Type、HMAC等数据加密发送给控制端。

相关固定配置如下图所示:

图1:DefaultHttpProfile.yaml配置文件

  1. HTTP流量分析

被控制端与控制端一次完整的上线通信相关流量分析如下:

  1. 阶段1:

图2:上线包

木马运行后,第一次请求的url是配置文件中默认提供的。

  1. 阶段2:

上线包中返回体中,控制端返回了特定内容Hello World给被控制端,特定内容Hello World也是配置文件中默认提供的。

  1. 阶段3

图3:连接成功

连接成功后,被控制端主动将GUID、Type、IV、EncryptedMessage、HMAC一组固定的数据发送给控制端,并且数据经过加密后放在POST请求的data字段中,url同上线包一样是默认提供的;服务端返回的数据,同样加密后放到返回包body标签中,在第二个Hello World字符串后进行传输。对其进行解密,看到传输内容如下图所示:

图4:解密

上述解密内容中GUID为token;Type为生成木马时在木马样本中定义好的数值,当发送第一个POST请求包时Type为0,返回包Type为1,后续通信该值一直为1;Meta无特殊含义值为空;IV为AES加密的初始向量;EncryptedMessage为AES加密传输的消息;HMAC为消息验证码,对AES-key与EncryptedMessage进行消息验证,确保完整性。

其中AES的密钥AES-key在生成木马时随机产生,并硬编码在木马样本中,如下图:

图5:AES-key

加密过程如下图:

图6:加密过程

心跳包使用的url也是在配置文件DefaultHttpProfile.yaml中定义,默认为/en-us/index.html、/en-us/docs.html、/en-us/test.html其中之一,心跳时间与抖动时间在创建木马时可自定义设置,默认心跳为5秒、抖动时间为10秒,与阶段一中上线包区别为:心跳包会在Cookie中传递由服务端确定好的GUID(token值),如下图:

图7:心跳包

  1. HTTPS流量分析

Covenant C2服务端提供了WEB服务,有前端界面,方便使用,其WEB服务界面如下:

图8:WEB前端界面

当启动服务端后,其WEB服务使用HTTPS协议,并且WEB服务使用固定TCP端口7443以及默认证书,如下图:

图9:WEB服务默认端口

图10:WEB服务默认证书

生成木马时,C&C通信方式也可以选择HTTPS加密,由于Covenant C2工具不提供agent与C2服务端之间通信的默认SSL证书,所以此工具的HTTPS模式需要自行生成并配置证书。

  • 工具检测

虽然此工具的心跳是自定义的,但值是固定整数值,不能中途更改,其工具的心跳存在周期性,并且其web服务使用固定服务端口7443以及默认证书,可通过证书指纹、机器学习模型以及多流行为检测此工具的HTTPS模式C&C通信流量。

根据分析结果,我们通过利用行为检测引擎,实现了对Covenant C2工具的有效检测。

图11:Covenant C2检出结果

  • 总结

利用Covenant C2工具进行C&C通信,攻击者可以将通信内容加密从而规避传统明文流量设备的检测,但是基于人工智能、流行为特征和TLS限定域指纹检测的加密威胁智能检测系统能够检测此类加密通信行为。如今,越来越多的攻击者采用加密通信的C2工具,以提升攻击的隐蔽性。观成科技安全研究团队持续追踪这些C2工具的最新动态,积极研究和更新针对加密流量的检测技术。

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

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

相关文章

【C/C++】inline内联函数详解

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; &#x1f525;c系列专栏&#xff1a;C/C零基础到精通 &#x1f525; 给大…

使用drawio画数据库实体关系图

在drawio中使用数据库实体关系图 drawio是一款强大的图表绘制软件&#xff0c;支持在线云端版本以及windows, macOS, linux安装版。 如果想在线直接使用&#xff0c;则直接输入网址drawon.cn或者使用drawon(桌案), drawon.cn内部完整的集成了drawio的所有功能&#xff0c;并实现…

如何利用ChatGPT搞科研?论文检索、写作、基金润色、数据分析、科研绘图(全球地图、植被图、箱型图、雷达图、玫瑰图、气泡图、森林图等)

以ChatGPT、LLaMA、Gemini、DALLE、Midjourney、Stable Diffusion、星火大模型、文心一言、千问为代表AI大语言模型带来了新一波人工智能浪潮&#xff0c;可以面向科研选题、思维导图、数据清洗、统计分析、高级编程、代码调试、算法学习、论文检索、写作、翻译、润色、文献辅助…

【STM32】STM32学习笔记-WDG看门狗(46)

00. 目录 文章目录 00. 目录01. WDG简介02. IWDG概述03. IWDG框图04. IWDG键寄存器05. WWDG简介06. WWDG框图07. WWDG工作特性08. IWDG和WWDG对比09. 预留10. 附录 01. WDG简介 WDG&#xff08;Watchdog&#xff09;看门狗 看门狗可以监控程序的运行状态&#xff0c;当程序因为…

ubuntu20.04安装docker及运行

ubuntu20.04安装docker及运行 ubuntu环境版本 Ubuntu Focal 20.04 (LTS) 查看系统版本 rootubuntu20043:~# cat /proc/version Linux version 5.15.0-78-generic (builddlcy02-amd64-008) (gcc (Ubuntu 11.3.0-1ubuntu1~22.04.1) 11.3.0, GNU ld (GNU Binutils for Ubuntu) …

基于Eclipse+Tomcat+Mysql开发的网络考试系统的设计与实现

基于EclipseTomcatMysql开发的网络考试系统的设计与实现 项目介绍&#x1f481;&#x1f3fb; 网络考试系统主要用于实现高校在线考试&#xff0c;基本功能包括&#xff1a;自动组卷、试卷发布、试卷批阅、试卷成绩统计等。本系统结构如下&#xff1a; &#xff08;1&#xff0…

C++重点---STL简介

顾得泉&#xff1a;个人主页 个人专栏&#xff1a;《Linux操作系统》 《C从入门到精通》 《LeedCode刷题》 键盘敲烂&#xff0c;年薪百万&#xff01; 一、STL简介 STL&#xff08;Standard Template Library&#xff09;是C标准库中的一个重要组成部分&#xff0c;它提供了…

8 easy 14. 最长公共前缀

纵向扫描法&#xff1a; //编写一个函数来查找字符串数组中的最长公共前缀。 // // 如果不存在公共前缀&#xff0c;返回空字符串 ""。 // // // // 示例 1&#xff1a; // // //输入&#xff1a;strs ["flower","flow","flight"…

Keras 3.0发布:全面拥抱 PyTorch!

Keras 3.0 介绍 https://keras.io/keras_3/ Keras 3.0 升级是对 Keras 的全面重写&#xff0c;引入了一系列令人振奋的新特性&#xff0c;为深度学习领域带来了全新的可能性。 多框架支持 Keras 3.0 的最大亮点之一是支持多框架。Keras 3 实现了完整的 Keras API&#xff0c;…

面试笔记系列八之JVM基础知识点整理及常见面试题

类实例化加载顺序 加载&#xff1a;当程序访问某个类时&#xff0c;JVM会首先检查该类是否已经加载到内存中。如果尚未加载&#xff0c;则会进行加载操作。加载操作将类的字节码文件加载到内存&#xff0c;并为其创建一个Class对象。 连接&#xff08;验证、准备、解析&#x…

Qt程序设计-指南针自定义控件实例

本文讲解Qt指南针自定义控件实例。 效果演示 创建指南针类 #ifndef COMPASS_H #define COMPASS_H#include <QWidget> #include <QWidget> #include <QTimer> #include <QPainter> #include <QPen> #include <QDebug> #include <QtMat…

【MATLAB】REMD_ MFE_SVM_LSTM 神经网络时序预测算法

有意向获取代码&#xff0c;请转文末观看代码获取方式~也可转原文链接获取~ 1 基本定义 REMD_MFE_SVM_LSTM神经网络时序预测算法是一种结合了REMD&#xff08;Reservoir Enhanced Multi-scale Deep Learning&#xff09;算法、多尺度特征提取&#xff08;MFE&#xff09;、支持…

许多主要新闻媒体正屏蔽 OpenAI 爬虫

自OpenAI的内容生成式人工智能模型面世以来&#xff0c;大量互联网数据成为了不断训练和优化模型的“饵料”&#xff0c;但据路透社研究所的一项调查&#xff0c;有越来越多的新闻媒体已对OpenAI的数据爬取说“不”&#xff0c;在传统媒体领域&#xff0c;这一比例甚至超过了50…

数仓模型设计方法论

在当今大数据时代&#xff0c;数据已经成为企业最重要的资产之一。而数据仓库作为企业数据管理和分析的核心基础设施&#xff0c;其设计方法论对于企业的数据治理和决策分析至关重要。本文将探索数仓模型设计的方法论&#xff0c;帮助读者更好地理解和应用数仓模型设计。 一、…

仿牛客网项目---社区首页的开发实现

从今天开始我们来写一个新项目&#xff0c;这个项目是一个完整的校园论坛的项目。主要功能模块&#xff1a;用户登录注册&#xff0c;帖子发布和热帖排行&#xff0c;点赞关注&#xff0c;发送私信&#xff0c;消息通知&#xff0c;社区搜索等。这篇文章我们先试着写一下用户的…

EAP-TLS实验之Ubuntu20.04环境搭建配置(FreeRADIUS3.0)(四)

该篇主要介绍了利用配置ca.cnf、server.cnf、client.cnf在certs路径下生成证书文件&#xff08;非执行bootstrap脚本&#xff0c;网上也有很多直接通过openssl命令方式生成的文章&#xff09;&#xff0c;主要参考&#xff08;概括中心思想&#xff09;官方手册&#xff0c;以及…

2024年阿里云2核4G配置服务器测评_ECS和轻量性能测评

阿里云2核4G服务器多少钱一年&#xff1f;2核4G服务器1个月费用多少&#xff1f;2核4G服务器30元3个月、85元一年&#xff0c;轻量应用服务器2核4G4M带宽165元一年&#xff0c;企业用户2核4G5M带宽199元一年。本文阿里云服务器网整理的2核4G参加活动的主机是ECS经济型e实例和u1…

安卓之ContentProvider的应用场景以及优劣分析

摘要 本文旨在对Android开发中的ContentProvider进行深入探讨。ContentProvider是Android系统中四大组件之一&#xff0c;主要用于在不同的应用程序之间共享数据。本文首先对ContentProvider进行概述&#xff0c;然后分析其应用场景&#xff0c;接着对其优势和劣势进行分析&…

简单模板2(HTML)

紧接上回&#xff0c;简单模板2又来了&#xff0c;喜欢赶紧点个赞吧&#xff0c;希望大家喜欢&#xff01; 效果图&#xff1a; CODE&#xff1a; <!DOCTYPE html> <html> <head><title>我的第一个网页</title> </head> <body><…

微信小程序订阅消息前后端示例

微信小程序的订阅消息&#xff0c; 必须是由弹框&#xff0c;弹框&#xff0c;弹框来调起了&#xff0c;单纯的在页面上调用 wx.requestSubscribeMessage是没有效果的 小程序端的代码 <view class"sub" bindtap"dinyuxiaoxi">订阅消息</view>…