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

  • 工具介紹

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.pswp.cn/news/717151.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/717151.shtml
英文地址,請注明出處:http://en.pswp.cn/news/717151.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java網絡通信TCP

目錄 TCP兩個核心類 服務端 1.用ServerSocker類創建對象并且手動指定端口號 2.accept阻塞連接服務端與客戶端 3.給客戶端提供處理業務方法 4.處理業務 整體代碼 客戶端 1.創建Socket對象,并連接服務端的ip與端口號 2.獲取Socket流對象,寫入數據…

Linux: Network: socket: sendto 如果返回0,是否一定代表發送成功?

最近遇到一個問題,雖然應用層使用的系統調用send已經返回成功,而且沒有錯誤日志產生,也沒有errno的設置。那是不是代表一定是沒有問題?從抓包的結果看,雖然上層應用已經顯示發出去,但是實際抓包的時候&…

[python隊列廣搜]請佩戴好口罩

請佩戴好口罩 題目描述 疫情當下,希望同學們都認真佩戴口罩,保護自己,保護他人。 現假設有一個n*n的網格,每個人分別站在網格中的一個方格上,人們可以選擇佩戴/不佩戴口罩,口罩對于病毒的傳播有如下影響&…

被曝隱瞞添加劑、夸大產品功效,東方甄選再陷選品風波

號稱專注為客戶細心甄選好物的東方甄選((HK:01797)),又攤上事兒了。 近日,海關總署發布公告稱,美國飲料生產企業JERRY&SONS PHARMACEUTICAL INC在申請注冊時提供了虛假材料,且未…

moviepy用法大全

1.引用 from moviepy.editor import * 2. 載入 2.1 載入視頻 video = VideoFileClip(filePath) 2.2 載入音頻 audio=AudioFileClip(filePath) 2.3 載入圖片 img = (ImageClip(videopath+videofengpi) # 水印持續時間 .set_duration(start_video_clip_begin.duration) …

C2_W2_Assignment_吳恩達_中英_Pytorch

Neural Networks for Handwritten Digit Recognition, Multiclass In this exercise, you will use a neural network to recognize the hand-written digits 0-9. 在本次練習中,您將使用神經網絡來識別0-9的手寫數字。 Outline 1 - Packages 2 - ReLU Activatio…

c語言經典測試題9

1.題1 #include <stdio.h> int main() { int i 1; sizeof(i); printf("%d\n", i); return 0; } 上述代碼運行結果是什么呢&#xff1f; 我們來分析一下&#xff1a;其實這題的難點就是sizeof操作后i的結果是否會改變&#xff0c;首先我們創建了一個整型i&a…

LeetCode刷題小記 六、【棧與隊列】

1.棧與隊列 文章目錄 1.棧與隊列寫在前面1.1棧與隊列理論基礎1.2用棧實現隊列1.3用隊列實現棧1.4有效的括號1.5刪除字符串中的所有相鄰重復項1.6逆波蘭表達式求值1.7滑動窗口最大值1.8前K個高頻元素 Reference 寫在前面 本系列筆記主要作為筆者刷題的題解&#xff0c;所用的語…

分布式基礎 --- Leader election

分布式基礎 --- Leader election 為什么需要leader electionRing electionBully Algorithm 為什么需要leader election 在一組集群中, 需要選出一個leader來承擔一些特別的任務, 比如 協調和控制系統操作&#xff1a;領導者負責協調和控制整個分布式系統的操作。它可以接收和處…

one4all 排坑記錄

one4all 排坑記錄 任務踩坑回顧動作踩坑動作踩坑動作新一步測試Habitat-sim 測試habitat-lab繼續ONE4ALL 任務 看了《One-4-All: Neural Potential Fields for Embodied Navigation》這篇論文&#xff0c;感覺挺有意思&#xff0c;他也開源了代碼。視覺語言導航是我一直想做的…

windows上elasticsearch的ik分詞器的安裝

下載 下載地址 在elasticsearch下的plugins文件夾下創建ik的文件夾 下載的ik壓縮包解壓到plugins/ik 重啟elasticsearch 驗證 http://ip:9200/_cat/plugins

python筆記_運算符優先級

運算符描述算術運算符&#xff08;x&#xff09;括號內優先級最高**乘方 * / // % 乘 矩陣乘 除 整除 取余 _ 加 減 位運算符 >> << 右移 左移 &按位與^按位異或|按位或比較運算符 in not in is is not < < > > ! 判斷兩個變量是否相同 判…

SpringBoot3-核心原理

1. 事件和監聽器 1. 生命周期監聽 場景&#xff1a;監聽應用的生命周期 1. 監聽器-SpringApplicationRunListener 自定義SpringApplicationRunListener來監聽事件&#xff1b; 編寫SpringApplicationRunListener 實現類在 META-INF/spring.factories 中配置 org.springfram…

【藍橋杯】錯誤票據

今天是2024年3月1號&#xff0c;藍橋杯比賽還有一個月的時間&#xff0c;雖說自己不指望拿獎吧&#xff0c;但是還是有些莫i名的焦慮&#xff0c;這道題目都做不出來&#xff0c;感覺自己真的有點菜啊&#xff01;但是還好啦&#xff0c;我覺得是因為我沒有題感&#xff0c;慢慢…

spring boot 整合 minio存儲 【使用篇】

導入依賴 <!--minio--><dependency><groupId>io.minio</groupId><artifactId>minio</artifactId><version>8.0.3</version></dependency> yml配置&#xff08;默認配置&#xff09; max-file-size: 200MB 設置文件最大…

華為od機試C卷-開源項目熱度榜單

1、題目描述 某個開源社區希望將最近熱度比較高的開源項目出一個榜單&#xff0c;推薦給社區里面的開發者。 對于每個開源項目&#xff0c;開發者可以進行關注(watch)、收藏(star)、fork、提issue、提交合并請求(MR)等。 數據庫里面統計了每個開源項目關注、收藏、fork、issue…

微服務API網關---APISIX

最近在做微服務調研&#xff0c;看到了apisix這個網關&#xff0c;于是進行了初步了解一下。 微服務是指&#xff0c;將大型應用分解成多個獨立的組件&#xff0c;其中每個組件都各自的負責對應項目。 系統的架構大致經歷了&#xff1a;單體應用架構–> SOA架構 -->微服務…

Linux多線程服務端編程:使用muduo C++網絡庫 學習筆記 附錄D 關于TCP并發連接的幾個思考題與試驗

前幾天作者在新浪微博上出了兩道有關TCP的思考題&#xff0c;引發了一場討論&#xff08;http://weibo.com/1701018393/eCuxDrtaONn&#xff09;。 第一道初級題目是&#xff1a;有一臺機器&#xff0c;它有一個IP&#xff0c;上面運行了一個TCP服務程序&#xff0c;程序只偵聽…

StarRocks實戰——松果出行實時數倉實踐

目錄 一、背景 二、松果出行實時OLAP的演進 2.1 實時數倉1.0的架構 2.2 實時數倉2.0的架構 2.3 實時數倉3.0的架構 三、StarRocks 的引入 四、StarRocks在松果出行的應用 4.1 在訂單業務中的應用 4.2 在車輛方向的應用 4.3 StarRocks “極速統一” 落地 4.4 StarRoc…

Lambda、Function、StreamAPI詳解

目錄 1、Lambda 2、Function 3、StreamAPI 中間操作&#xff1a;Intermediate Operations 終止操作&#xff1a;Terminal Operation 1、Lambda Java8語法糖&#xff1a;參數列表 箭頭 方法體 package com.atguiggu.lambda;import java.util.*; import java.util.funct…