<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>

    利用通信協議反向監控 C&C 服務器

    VSole2022-04-11 06:09:41

    工作來源

    CCS 2021

    工作背景

    在以往的僵尸網絡清除行動中,政府首先監控 C&C 服務器證明惡意軟件造成社會損失,隨后獲取法律許可進行定點清除。例如 2020 年微軟清除了 TrickBot 在全球的 128 臺 C&C 服務器中的 120 臺。

    • 被動監測 C&C 服務器的方式,如節點注入,可能無法準確了解僵尸網絡的規模并且需要大量的逆向分析工作。
    • 主動監測 C&C 服務器的方式,如滲透測試、域名扣押,通常容易被攻擊者察覺。

    監測需要保證收集的信息準確、合法而且盡可能地保持隱蔽。最理想的情況下,可以模擬正常 Bot 訪問 C&C 服務器。攻擊者會通過標準協議控制 Bot,如文件傳輸、數據存儲和命令下發等。但標準協議有可能會提供了對服務器不受限制的訪問,這超出了 Bot 包含功能的范圍。這樣就使得,偽裝 Bot 通過協議對 C&C 服務器進行隱蔽監控提供了機會。

    工作設計

    設計 C3PO 分析惡意軟件內存 Image,從中識別過度許可協議、Bot 到 C&C 服務器的身份驗證信息(滲透向量),并持續進行 C&C 監控。后續與安全訪問服務邊緣(SASE)服務提供商 Netskope 合作,研究了 15 年來超過 20 萬惡意樣本過度許可協議使用的演變,并披露和修復已發現的 C&C 服務器。

    自動化測量的四個階段如下所示:

    將惡意軟件二進制文件作為輸入,在執行時提取內存 Image。通過靜態分析識別協議 API 或關鍵字/命令/Token 的調用點,再利用迭代選擇性符號執行(iSSE)進行滲透向量的識別。最后,對 C&C 服務器的監控能力進行識別并進行隱蔽監控。

    內存 Image 提取

    為了應對加殼與混淆,在正常執行期間通過 Hook 網絡 API 獲取惡意軟件的內存 Image。因為惡意程序一定會調用網絡 API 與 C&C 服務器進行交互,并且研究表明加殼程序至少有兩層封裝,如果提取的時機錯誤仍然得不到正確的 Image。當 DLL 被加載時,使用 Trampoline 將 Hook 的 API 中的指令替換為自定義代碼,將包含執行上下文的內存 Image 寫入文件。

    過度許可 Bot 識別

    確認調用標識符(API、協議關鍵字或命令等)進行識別。

    • 協議使用低級函數(??)或者高級內置庫函數(??)來實現。低級函數通常使用原始套接字 API(如 send)和官方協議 Token(如 IRC 協議的 NICK),而高級函數通常使用內置 API。
    • 標準協議可用于文件傳輸、數據存儲以及消息通信。相關的研究工作如下所示:


    • 爬取相應的協議文檔或者手動提取協議細節,形成協議標識符的數據庫。

    C3PO 解析內存 Image 并提取代碼頁,從而實現導入地址表和導出目錄表(IAT 和 EDT)的重建。對代碼頁構造控制流圖(CFG),再通過重構所有重疊塊創建組合控制流圖(C2FG),保證代碼塊不重疊。遍歷 C2FG 識別所有函數調用點,并將其與重構的 IAT 和 EDT 進行比較獲得匹配的 API。

    滲透向量識別

    C3PO 使用反向切片和迭代選擇性符號執行(Iterative Selective Symbolic Execution,iSSE)組合來識別滲透向量。

    反向切片

    使用先前識別的 API、調用點和 Token 定位身份驗證 API,C3PO 從 API 參數執行反向切片。值得注意的是,C3PO 會識別最后寫入緩沖區所有字節的所有指令來生成目標指令以確保切片完整。

    迭代選擇性符號執行

    受切片約束,選擇性符號執行可以在保持準確性的同時盡可能降低路徑爆炸的影響。符號執行到達身份驗證 API 時提取參數,如果是具體參數解碼為字符串,如果是符號用符號執行迭代探索。

    上圖顯示了 C3PO 針對 Sanny 惡意軟件的滲透向量識別步驟。首先從身份驗證 API InternetConnect 執行反向切片,對于每個API 參數(例如 lpszServerName、nServerPort、lpszUserName、lpszPassword 等)進行反向切片。查找最后寫入數據緩沖區每個字節的每條指令(圖中左側)。再使用這些目標指令,執行反向切片識別數據緩沖區的所有影響操作(圖中中部通過 Sanny 的四個函數的藍線)。使用迭代選擇性符號執行遍歷每個切片以提取所有參數的滲透向量。對于 Sanny,C3PO 在反向切片中的 4 個函數中的 3 個(圖中右側)提取了服務器主機名、用戶名和密碼。

    C&C 監控

    使用相同的方式定位數據泄露(如 HttpSendRequest)和代碼執行(如 ShellExecute)的 API 與能力的關系。能力是通過專家分析經驗總結的,一共映射了 6 類 16 種(瀏覽器密碼竊取、服務密碼竊取、受害者信息、監聽/實時監控、文件竊取、代碼反射)。


    工作準備

    C3PO 通過 C++ 和 Python 實現,總計 1.1 萬行代碼,且為開源(https://cyfi.ece.gatech.edu/)。

    • 利用 Detours 進行內存 Image 提取
    • 利用 angr 以支持二進制分析以及協議識別、反向切片和符號執行的特定應用
    • 利用 AVClass2 標記惡意軟件

    工作評估

    從 2006 年 4 月到 2020 年 6 月間收集的 20 萬樣本中,確定有 62202 個為過度許可的 Bot,在 8512 個家族中發現 65739 個過度許可協議的使用。平均每個 Bot 包含 7 個 C&C 監控能力。

    使用來自 13 個不同家族的 35 個手動逆向分析的 Windows 惡意軟件評估 C3PO。

    協議識別評估

    C3PO 的協議識別如下所示,C3PO 總體識別準確率超過 94%。

    當 C3PO 錯誤識別 Token時會產生誤報,以及自定義 C&C 命令可能和標準協議有重合也會導致誤報。

    C&C 監控能力評估

    如下所示,C3PO 正確識別了 100 項 C&C 監控能力,總體準確率超過 94%。

    受害者信息提取占比最多(29%),監聽/實時監控(27%)、文件竊取(25%)。

    其中的部分誤報是由于 angr 遇到了問題,如 CFG 生成未解決符號約束或臨時變量重用導致反向切片的虛假依賴。

    大規模部署

    超過 30%(62202 個)惡意軟件使用一種或多種過度許可協議。

    下圖顯示了從 2006 年到 2020 年使用的過度許可協議變化趨勢。使用過度許可協議的數量總體在增長,且每個 Bot 使用的協議數量也有所增加。

    其余的惡意軟件僅基于 HTTP 進行 C&C 通信,此前 Peredisci 的研究表明有 75% 的惡意軟件通過 HTTP 進行通信。

    下圖是總覽情況:

    C3PO 發現 65739 次過度許可協議的使用。

    FTP 在所有協議中占主導地位,共計 53687 個,占已識別協議的 81%。15 年來 8512 個惡意軟件家族中有 88% 一直使用 FTP。

    值得注意的是,Cstealer 惡意軟件中使用了 MongoDB,后來又放棄使用,導致出現了單次峰值。

    Expiro 是唯一使用 MQTT 協議檢測到的惡意軟件,在 2015 年歸于沉寂,2017 年復蘇后不再使用 MQTT 協議。

    大規模監控

    C3PO 在超過三分之一(62202 個)的 Bot 中識別出 443905 項監控能力,平均每個 Bot 有 7 項能力。受害者信息提取占到 56%,實時監控占 27%,文件泄露占 15%。在 16 種能力中,88% 在 FTP 中、10% 在 IRC 中。

    家族排名

    Dinwod 惡意軟件家族以 9713 個 Bot 排名第一,Dinwod 僅使用 FTP。

    前十的家族中有 9 個都使用了 FTP,每個家族最多使用 3 個協議。

    加殼

    對殼也使用 Ugarte-Pedrero 提出的分類法,一共脫殼 10237 個樣本。

    畢竟虛擬化加殼在惡意軟件中不到 2%,Ⅰ類加殼程序占到 55% 以上。

    應用一:Sanny

    Sanny 在2013 年的清除行動中存活下來,后來又發現了新的 Sanny 變種。對樣本文件進行了逆向工程,發現了新的 FTP API 和登錄憑據。

    而通過 C3PO 對過度許可協議(本例為 FTP)的監控,可以發現更新的 Sanny C&C 服務器,如下所示。

    Sanny 會通過 FTP 泄露受害者所在區域信息、文件和密碼(Firefox 和 Microsoft Outlook)。

    應用二:Steam

    Steam RAT 在 2016 年首次發現,使用 FTP 協議如下所示:

    在其 5 個目錄的 522 個文件(大約 50 MB)中,27% 與游戲有關,確實是為 Steam 量身定制的。隨著傳播,這個比例應該會繼續增長。

    在服務器上有兩個文件名以 ssfn 開頭的數據文件(Steam 平臺的授權文件),從熵值看應該是加密了。

    有幾個文件以俄文命名,攻擊者是說俄文的。還包括一個 JavaScript 文件,包含 XSS 攻擊代碼,攻擊者進一步可能還會有其他攻擊行動。

    應用三:Deptlock

    Deptlock RAT 在 2016 年首次發現,使用 FTP 協議如下所示:

    服務器域名 .ko.cr 可能是在韓國,其中有 47 個目錄中的 2500 多個文件(大約 640MB) ,在發現的 31 個文件擴展名中,最常見的擴展名是 PNG (44%)、HTML (34%)、TXT (8%) 和 EXE (6%)。

    PNG 圖片較多是因為 Detplock 通過屏幕截圖對失陷主機進行監控。

    158 個 EXE 文件和 2 個 BIN 文件中有 7 個包含可疑元數據。樣本使用 ASPack v2.12 加殼。

    工作思考

    工作是遵循道德守則的,只檢索正在調查服務的元數據并且不寫入數據。這樣不僅是道德的,也可以避免像 Mouton vs. VC3 卷入侵權索賠,對安全研究人員也是一種保護。網絡安全領域的研究中,尤其是測量類的工作,必須重視隱私保護等道德類的守則。近幾年對于此類要求比較嚴格,相關工作中都對此進行了解釋與負責的溝通響應。

    利用樣本分析得到的憑據,查看 C&C 服務器上的情況是一個常見的操作,本文對其進行了自動化識別與運營。另外,惡意軟件使用自定義協議進行 C&C 通信的也很多,這種情況實際上更適合在網絡側進行檢測。加密流量越來越多,甚至說流量全密化的趨勢是不可逆轉的,惡意軟件中應用的情況也難言樂觀。對加密的惡意流量的識別與檢測也是近年來比較熱點的議題,感興趣可以拓展閱讀相關內容。

    軟件通信協議
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    惡意軟件是指由網絡犯罪分子設計的惡意程序,可通過創建后門入口來獲得對計算設備的訪問權,從而竊取個人信息、機密數據,實施對計算機系統的破壞。為了更好地防護惡意軟件,避免由惡意軟件造成的危害,必須對惡意軟件進行分析,以了解惡意軟件的類型、性質和攻擊方法。
    CheckMate勒索軟件運營商一直以用于文件共享的服務器消息塊通信協議為目標,以破壞受害者的網絡。
    三菱MELSOFT協議為三菱PLC私有組態協議,用于編程軟件與三菱PLC通信。針對該協議公開資料并不多,本次主要對該協議進行分析,并基于分析結果對三菱PLC進行MELSOFT協議模糊測試。
    三菱MELSOFT協議為三菱PLC私有組態協議,用于編程軟件與三菱PLC通信。針對該協議公開資料并不多,本次主要對該協議進行分析,并基于分析結果對三菱PLC進行MELSOFT協議模糊測試。
    Modbus Slave是一個模擬工業領域通信協議Modbus從站的上位機軟件,主要用于測試和調試Modbus從設備。該軟件7.4.2以及以前的版本,在注冊時,未對注冊碼長度進行安全檢查,存在緩沖區溢出漏洞,導致軟件崩潰。影響范圍Modbus Slave 7.4.2以及以前的版本復現環境操作系統:Win7 sp1 32位操作系統分析工具:IDA、OD、Windbg、Procexp漏洞分析分析時使用的版本為7.1.2.1357。
    針對大疆通信協議定制了模糊測試方法
    API接口滲透測試
    2022-03-25 22:15:35
    MVC 將整個應用分成 Model、View 和 Controller 三個部分,而這些組成部分其實也有著幾乎相同的職責。SoapUI Free,手工測試SOAPSonar,SOAP UI 的替代。Burp Suite,代理攔截,跟蹤通信過程和結果,對通信進行重放和二次處理等。代理配置可以用 Burp 重放 SOAP 的探測 Payload。SUAP UI 會自動探測接口。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类