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

    CobaltStrike分析-beacon 解析

    VSole2023-06-05 09:03:01

    一、beacon loader

    1.1 靜態分析

    IDA 逆向,在入口處很容易能夠找到 main 函數的地址 修改前是403040。

    重點關注sub_4017F8()。

    基于一些特征隨機利用格式化字符串生成了一個字符串buffer, 同時創建了一個新的線程,執行函數sub_4016E6。

    直接看sub_401630。

    以上面生成的buffer為名字創建了一個命名管道,然后進行判斷,如果命名管道創建成功,ConnectNamedPipe函數將等待客戶端連接到管道。如果成功連接到管道, 使用WriteFile函數將shellcode數據寫入已連接的命名管道。如果寫入成功,則更新指針lpBuffer和剩余要寫入的字節數nNumberOfBytesToWrite。其中 lpbuffer是將要寫入的數據指針,&dword_404020[5]

    返回sub_4017F8返回的是一個函數sub_4017A6(0i64)。

    開辟了一塊內存,然后等待sub_401704函數執行返回一個非0值。

    sub_401704主要是從FileA也就是前面創建的命名管道中讀取數據,然后寫入lpBuffer指向的位置,也就是說 從FileA中讀取內容,然后寫入v0。

    然后調用sub_401595,修改一下數據類型之后有:

    利用a3所在的密鑰循環解密shellcode,然后創建線程執行。

    至此,loader所做的事已經十分清晰了:

    1.創建一個命名管道,格式為%c%c%c%c%c%c%c%c%cMSSE-%d-server

    2.將shellcode寫入命名管道

    3.從命名管道中取出shellcode然后和密鑰亦或解密

    4.執行shellcode

    其跳轉順序和參數如下所示:

     

    接下來動態分析一下。

    1.2 動態分析

    由于cobaltstrike并沒有地址空間隨機化,每次都是在固定位置加載的,所以在上面靜態分析的基礎上很容易下斷動態分析。

    創建命令管道。

    ![image-20230424224308896]

    解密過程:

    解密后的shellcode寫入這里:

    二、beacon 執行

    jump rcx之后跳轉到shellcode執行 可以將其dump下來,也就是beacon.dll, Cobaltstrike 的 payload 許多都是和msf相似的,因此如果想要深入的理解CS的相關原理,推薦同時閱讀msf的相關源碼。

    使用IDA分析

    檢查導出函數:

    第一個是反射式DLL注入,限于篇幅,在本篇中不展開分析

    第二個是DLL的入口函數。

    一直跟進到DLLmain,其分析可以參考https://github.com/bestspear/ReBeacon_ForClang,是wbglil在XCon2022分析的議題,slide可以在這里(https://github.com/Mount4in/Security-Conference-Topic/blob/main/2022XCON/Beacon%E5%AE%8C%E6%95%B4%E9%80%86%E5%90%91%E5%B7%A5%E7%A8%8B%E7%A0%94%E7%A9%B6.pdf)下載。余下內容不再一一詳解,如果感興趣,可以參考雞哥的文章和wbglil的研究展開分析。在后續的文章中,會根據檢測特征和csprofile的繞過按照專題進行分析。

    三、總結

    本篇主要是總結了一下beacon模式下payload加載的方式,CS馬有大量的思路和msf是相似的,因此,在分析的時候可以同時看一看msf相關的資料。在本人第一次分析的時候,花了比較長時間才dump下來beacon的payload。同時,大部分的CS檢測特征都是在此。而在后續的文章分析中,將會著重的分析CS beacon中使用到的幾種DLL注入方式;beacon config的檢測;同時結合CS profile 的配置,研究一下CS的對抗檢測方式。

    beaconpayload
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    在某次HW行動中對一個學校的資產進行滲透測試,在其一個智慧校園管理系統發現了一處sql注入。因為網站沒有waf,所以直接拿sqlmap跑:可以跑出管理員的賬號,并且拿到了os-shell。因為os-shell不方便,所以想彈個cs的shell或者上個webshell。但是當時局限于直接在web目錄寫shell,還有powershell反彈shell。
    “不要因為沒有掌聲而丟棄自己的夢想”C2介紹命令與控制是指在單個或一組目標受害者主機上建立和維持對植入工具的控制的過程。C2框架通常提供借助某個通信協議與植入工具進行通信的能力,向受害者系統發出命令,并且在C2服務器上接收這些命令的輸出,使攻擊者實現物理訪問或直接的虛擬訪問。命令與控制協議依賴于每個受控植入工具和C2服務器之間的同步或異步通信信道。
    滲透測試工具收集整理
    如果成功連接到管道, 使用WriteFile函數將shellcode數據寫入已連接的命名管道。使用IDA分析檢查導出函數:第一個是反射式DLL注入,限于篇幅,在本篇中不展開分析第二個是DLL的入口函數。在后續的文章中,會根據檢測特征和csprofile的繞過按照專題進行分析。同時,大部分的CS檢測特征都是在此。而在后續的文章分析中,將會著重的分析CS beacon中使用到的幾種DLL注入方式;beacon config的檢測;同時結合CS profile 的配置,研究一下CS的對抗檢測方式。
    進程注入 OPSEC tips
    2021-11-18 22:14:52
    這篇文章將分析最經典的注入方法:VirtualAllocExWriteProcessMemoryCreate
    CS 域前置+流量混淆
    2021-10-14 06:58:22
    域前置(Domain Fronting)被稱為域前端網絡攻擊技術,是一種隱藏連接真實端點來規避互聯網審查的技術。這種技術被安全人員多用來隱藏 Metasploit,Cobalt Strike 等團隊控制服務器流量, 以此來一定程度繞過檢查器或防火墻檢測的技術,國內外如:Amazon ,Google,Akamai 等大型廠商都會提供一些域前端技術服務。
    #默認情況下,payload_inject執行之后會在本地產生一個新的handler,由于已經有了一個不需要再產生一個,所以這里設置為true. #這里是當前獲得的session的id. 可以看到 cs 成功接收到 shell右鍵 Interact 調出 beacon 界面,net view 查看當前域中計算機列表,然后執行 shell 命令前面加上 shell 就可以了,例如 shell ipconfig四、制作木馬首先創建監聽器用于木馬回連,Host 為 cs 服務端的 ipAttacks->Packages->Windows Executable?需要派生的目標右擊選擇Spawn,然后創建一個?
    SMB Beacon 與命名管道在 Windows 中,無管理員權限的情況下,即無法添加白名單。定義特定版本的協議的消息數據包集稱為方言。進行身份驗證后,用戶可以訪問服務器上不受共享級別安全性保護的所有共享。
    CS的流量行為特征
    2022-07-21 13:45:40
    雷神眾測擁有對此文章的修改和解釋權。如欲轉載或傳播此文章,必須保證此文章的完整性,包括版權聲明等全部內容。未經雷神眾測允許,不得任意修改或者增減此文章內容,不得以任何方式將其用于商業目的。
    分享每周看到的有意思的威脅狩獵相關的文章,本人僅做翻譯
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类