<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    一種使用TCP自定義加密通信的APT樣本分析

    VSole2022-07-01 22:24:12

    一、 概述

    為了確保通信安全和隱私以及應對各種竊聽和中間人攻擊,越來越多的網絡流量被加密,然而,攻擊者也可以通過這種方式來隱藏自己的信息和行蹤。近期我們捕獲了一個樣本,此樣本就是使用了加密通信,為了深入研究此樣本的加密通信機制,接下來我們來逐層剖析它。

    二、 準備工作

    解密硬編碼字符串

    將樣本記錄的硬編碼字符串的每一個字節加0x23,可以獲得密鑰、域名、注冊表鍵


    三、 通信行為-接收

    3.1 建立通信

    樣本采用TCP自定義加密通信,IP為域名(*.ddns.net)解析成功后得到的IP,端口為5832

    3.2 接收、校驗數據

    樣本使用TCP協議傳輸數據,TCP載荷部分使用自定義加密協議,并且協議格式中含有身份校驗位,只有校驗通過才解析后面的內容,不通過則繼續接收數據。

    接收數據包格式一覽表

    每次對接收的數據的校驗方式如上表。第一次連接或者重新連接的數據包的前5個字節的值作為會話ID。

    接收的數據包由三部分組成:

    a. 填充數據(長度可變)

    b. 11個字節的校驗數據、指令

    c. 后續操作需要的參數、數據

    為了防止單次會話中接收的數據因為前5個字節相同而出現規律性,會在校驗前先獲取有效的傳輸數據即移除填充數據,找到數據中與同一次會話的標志值相同的數據的位置,這也算是第一次校驗。

    接下來,校驗有效數據的大小,有效數據的大小記錄在第6、7字節,校驗通過會根據第10、11字節的值來決定是否解密后續的數據。

    3.3 解密數據

    解密操作就是由硬編碼得到的密鑰和數據進行按位異或,返回的數據包也是這種方式加密的。

    四、 執行指令

    接收數據的第8、9字節的值是樣本的指令碼,根據不同的指令執行不同的操作。

    指令大致分為三類

    a.獲取基本信息

    b.操作CMD.EXE

    c.關閉進程、線程


    4.1 獲取信息 

    獲取電腦系統信息、磁盤盤符、文件信息、進程信息以及TCP&UDP表的信息,并將獲取的信息按照不同的格式拼接,然后將拼接好的數據與密鑰做加密操作,并且將加密后的數據拷貝到發送緩沖區中。(具體的發送格式以及指令功能見文章末尾的發送數據包結構一覽表)


    4.2 操作CMD.EXE

    創建兩個匿名管道,獲取環境變量ComSpec的值即CMD.EXE的路徑,以這個路徑創建進程CMD.EXE,并且在創建進程的時候將進程的輸入、輸出各綁定一個匿名管道,這樣就可以通過管道來對CMD.EXE進行遠程操作,其中輸入CMD的指令就是有效數據中解密后的數據,輸出即回顯通過管道獲取,再拼接相應的格式后加密存放到發送緩沖區中。



    4.3 關閉進程、線程

    關閉CMD.EXE進程

    五、 通信行為—發送

    發送的數據格式如下表,按照自定義格式組成數據包內容后,加密發送:

    六、 總結

    樣本使用TCP自定義加密通信,通信成功會首先進行身份校驗、然后解析數據中的指令碼,根據指令碼的不同執行不同的功能,其中有一個高危的功能,通過匿名管道的方式實現遠程可交互式CMD,CMD執行的命令和執行結果(回顯)在通信流量載荷中加密傳輸。

    利用TCP/UDP等協議承載自定義加密載荷進行攻擊的APT組織、各類黑客工具層出不窮。因自定義加密格式不定,變化靈活,因此這種加密流量檢測的難度進一步提高。我們一直針對各類使用自定義加密的最新威脅保持密切跟蹤,并隨時更新方案進行應對。



    通信tcp
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    在發送 TCP 數據段時,由發送端計算校驗和,當到達目的地時又進行一次檢驗和計算。表示緊急數據的末尾在 TCP 數據部分中的位置。如果不能及時收到一個確認,將重發這個報文段。流量控制TCP 連接的每一方都有固定大小的緩沖空間,TCP 的接收端只允許發送端發送接收端緩存區能接納的數據。TCP 使用的流量控制協議是可變大小的滑動窗口協議。擁塞控制當網絡擁塞時,減少數據的發送。
    幾道網絡面試題!看看你都會嗎?
    在此活動檢查流量之后,我們能通過流量檢測工具識別會話期間所有已執行的命令。現在讓我們在初始階段啟動后檢查流量。在 TCP 握手之后,我們觀察到成功的通信正在進行。檢查的流量顯示它在 SSL 握手后立即開始。然而,在這種情況下,我們會留下精心制作或默認證書的痕跡,這些證書也可以進行調查,這可能會導致基礎設施或受到 IDS/IPS 簽名的攻擊。在此示例中,我們將使用Meterpreter 反向 tcp有效負載來測試我們的規避能力。
    TCP 和UDP協議的區別以及原理最近重新認知了一下 TCP 和 UDP 的原理以及區別,做一個簡單的總結。這包數據稱之為SYN 包,如果對端同意連接,則回復一包 SYN+ACK 包,客戶端收到之后,發送一包 ACK 包,連接建立,因為這個過程中互相發送了三包數據,所以稱之為三次握手。也是為了保證在不可靠的網絡鏈路中進行可靠的連接斷開確認。
    TCP傳輸數據穩定可靠,UDP的優點是速度快。
    TCP和UDP協議的區別以及原理最近重新認知了一下TCP和UDP的原理以及區別,做一個簡單的總結。這包數據稱之為SYN包,如果對端同意連接,則回復一包SYN+ACK包,客戶端收到之后,發送一包ACK包,連接建立,因為這個過程中互相發送了三包數據,所以稱之為三次握手。也是為了保證在不可靠的網絡鏈路中進行可靠的連接斷開確認。
    而UDP是一個面向無連接的傳輸層協議。當意識到丟包了或者網絡環境不佳,TCP 會根據具體情況調整自己的行為,控制自己的發送速度或者重發。由此證明男方擁有愛的能力。SYN 需要對端的確認, 而 ACK 并不需要,因此 SYN 消耗一個序列號而 ACK 不需要。
    28 張圖,搞懂TCP
    2022-07-08 06:58:09
    做IT相關的工作,肯定都離不開網絡,網絡中最重要的協議是TCP。應用進程可以通過監聽socket,來獲取這個socket接受到的消息。不同的運輸層協議對socket有不同的定義方式。運輸層協議運輸層的協議就是大名鼎鼎的TCP和UDP。當然除此之外,還有更多更優秀的運輸層協議,但目前廣為使用的,就是TCP和UDP。
    計算機網絡中為什么在IP協議是無連接的前提下,TCP協議可以面向連接?TCP報文段就包含在IP數據報的數據部
    前言前段時間讀了讀徐哥的《內網安全攻防》,并復現了部分知識點,寫篇文章記錄下學習內容。但在大多數情況下,內網的環境存在多種邊界設備以及入侵檢測裝置的限制,它們會對主機間或者內網與外網之間通信的流量進行檢測,如果存在異常就會進行攔截,這無疑給內網滲透增加了難度,而隱藏通信隧道技術就是為了繞過各種邊界設備的封鎖,從而完成主機間或內網與外網之間的通信
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类