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

    記一次特殊的釣魚樣本分析

    VSole2023-07-18 09:10:15

    文章主要內容

    記錄對某次應急事件中獲取到的特殊釣魚樣本的分析,該樣本通過sapien powershell studio將powershell代碼封裝成可執行文件來繞過一些查殺和限制;

    0x01 背景

    某次應急事件中拿到一個攻擊者使用的釣魚樣本,這個樣本比較有意思和之前的分析有些不同,第一次分析也算曲折,此文記錄下對該樣本的分析過程。

    樣本如下:

    偽裝成某某OA的一個升級的程序(發起釣魚的攻擊者,通過偽裝成某某OA工作人員)

    0x02 樣本行為分析

    一般筆者拿到樣本之后會先丟到虛擬機里面跑下(這里要注意一些反虛擬機操作),然后看下各方面的特征,如注冊表修改、新建進程、網絡外聯情況等。

    運行樣本:

    首先通過ApateDNS看到可疑dns請求:

    進一步查看sysmon:可以看到對應時間,是進程mobsync.exe發起的上面可疑域名的dns請求:

    同時我們往前看幾條,也就是發起dns前,可以看到有一個進程創建操作,詳情如下:

    如上圖,我們可以看到這個mobsync.exe其父進程就是樣本進程,所以這個進程我們的樣本進程創建運行的,所以我們這里其實是直接就拿到了c2地址。

    進一步我們看下mobsync.exe這個進程干了些啥,如下圖pcmonitor監測到其修改涉及internet Explorer 安全區域的信息的注冊表,來增加成功回連的概率:

    這里筆者進一步通過inetsim 模擬真實環境,其實就是給樣本一個回連的https服務,看看其網絡行為:

    inetsim記錄如下:如下圖,好家伙直接空手套白狼,拿到回連的url了,ps:看著就像CS;

    通過模擬環境的行為分析到這就差不多了,接下來就是樣本文件逆向分析了,畢竟誰知道上面的這個些是不是攻擊者給我們設置的陷阱呢?(比如當他的反虛擬化比我們的反反虛擬化做的多的時候,那么攻擊者的樣本里面檢測到這個是虛擬環境,就隨便弄些行為讓我們分析的人去分析,回連一些正常域名/IP等,ps:這個樣本回連域名正好就是這個情況,比較特殊,所以全文筆者都把域名脫敏了)。光從行為側去下結論是不太行的。

    0x03 樣本逆向分析

    一、前置工作:

    先來看下樣本結構:通過die我們可以看到其用Smart Assembly做了一次混淆

    直接通過de4dot來反混淆:拿到解混淆之后的:

    再丟到die里面:

    首先這個exe沒有導入和導出表,只有兩個節,代碼節和資源節:

    除此之外,翻資源節的時候發現,存在一個比較特殊的標記,sapien powershell v5 host xxx的

    筆者google找了下這個東西:發現是一個叫PowerShell Studio的特征,是sapien公司的。


    https://www.sapien.com/software/powershell_studio
    

    接著直接問chatgpt這個是干啥的:

    我們可以得到一個結論這個工具可以用來對powershell代碼保護以及封裝成一個可執行文件。所以我們這里的樣本文件很大可能是這么來的。

    如下圖,通過啟發式掃描,這個樣本可能是一個.net的c#程序(這里也印證了上面我們的推測,因為powershell也是基于.net的,所以兼容c#),但是也正是因為這個基于.net所以我們的ida之類的反編譯工具不太行了。

    接著我們用dnspy來反編譯這個通過.net c#開發的exe文件,將其從中間語言還原成c#源碼:

    定位入口:

    二、代碼分析:

    1、靜態分析

    主函數代碼如下:

    如上圖,可以看到,這個樣本邏輯里面還是做了一些反調試操作的,第65-68行通過kernel32里面的IsDebuggerPresent()函數來檢測進程是否被調試;

    還有第69行的Class7.smethod3方法,如下圖是其實現,可以看到是通過kernel32里面的CheckRemoteDebuggerPresent()來檢測當前進程是否被調試:

    接著,來到主要方法 Class9.smethod_11():

    接著我們跟進該方法:

    直到如下下圖處,非常可疑,這里讀取資源段里面的內容,并賦值給array3數組。

    然后調用了一個smethod_7的方法對這個array3數組進行操作,最后得到var4,這個函數傳入了一個特殊的寫死的數組和num2

    寫死的數組內容如下:

    num2其實就是array3的長度:

    分析到這的時候,筆者猜測這里這個函數在做一些解密操作。

    我們跟進來看下Class9的smethod_7來看下,如下圖,簡單看下,其實就是一個長度for循環,對傳入的byte_0參數進行一頓操作,其中包括加106,減byte_1里面對應for輪數的索引的值(超過長度會自動清零 338-342行),之后對一堆情況判斷,比如但錢輪數是否是5的倍數,是的話byte_0的對應字節要加2,等等之類的

    這里我們沒必要去深入分析,因為不需要知道具體是這么干的,我們只需要知道這個函數就是在解密就行。解密的邏輯就是上圖。

    當然要是擱以前我肯定是不會去分析的,但是現在不一樣了,現在我們有gpt了,直接讓gpt來分析具體功能細節,反正我又不用動手,如下圖是gpt對該函數的分析結果:和我們看的差不多。

    接著我們回到上層函數:解密后的array4變量的內容放到了text2里面:

    接著我們跟下這個text2:如下圖,被丟到class2.method_3里面了:

    跟進方法:如下圖,我們還是重點關注傳入的解密后的tex2,也就是這里的形參tstring_10,下圖,我們看到就是進行了一個替換操作,把之前的里面#SAPIENPRESETS替換成$PSScriptRoot = \"{0}\"\r\n+$PSCommandPath = \"{0}\"\r\n,其實這里就是獲取當前路徑和運行的進程路徑

    替換之后直接丟到Runspace.CreatePipeline.Commands.addscript()里面,這里其實就是把我們解密后的內容當成powershell腳本語言運行了;

    分析到這,我們靜態分析就差不多了;

    2、動態分析

    這里我們直接在下面打一個265行打個斷點,然后dump下string_10變量內容,直接拿到攻擊者的powershell腳本:

    如下圖,我們拿到運行的腳本:

    dump下來,用unicode編碼打開:

    如下圖是最后還原的代碼:

    下面一堆代碼,特別長,主要是一些ui之類的命令和資源的存儲,比如運行樣本的圖標之類的,我們來看關鍵的地方:

    首先發現一個函數inject_Apc的函數:函數實現如下,就是一個簡單的APC注入,shellcode加載,稍有不同的是這里是為了不影響主進程的運行,是通過創建一個新進程mobsync.exe進程來加載shellcode:

    除此之外,我們也來簡單看下這個釣魚樣本的功能實現:也就是如下三個按鈕都是干啥的:

    直接ctrl+F click ,找到對應按鈕事件:就是對應的上面三個按鈕:

    首先是進程檢查:其實現如下:就是檢索計算機上運行的進程信息,沒有其他的遠控操作了。

    接著看補丁檢查:其實現如下:效果就是將會返回一個對象數組,每個對象代表一個安裝的快速修復工程。這些對象包括有關修復程序名稱、描述、安裝日期和時間以及其他相關信息的屬性;除此之外沒有其他遠控操作了。

    最后一個應用檢查,其實現如下:效果就是獲取計算機上的所有軟件信息;除此沒有其他遠控操作。

    所以全部分析下來,我們會發現這個樣本,只要雙擊運行就會上線,至于里面的一些按鈕都是一些正常功能。(畢竟也還是要裝一下的,避免運維人員一看就覺得有問題,然后就上報,g了)

    3、shellcode分析

    最后一步shellcode分析:

    這個沒啥好說的,筆者把shellcode扣下來的時候,windowsdefender直接殺了,應該沒啥研究價值,所以這里筆者就直接模擬跑下得到如下結論:

    如下圖,可以看到,這個shellcode”動態“加載了wininet.dll ,然后調用internetconnectA回連c2地址,發送get請求(其實就是一個Cobaltstrike 的shellcode),這里拉取/themes/default/js/jquery-3.3.2.slim.min.js 其實就是在拉beacon,對cobaltstrike shellcode上線過程感興趣的話可以閱讀下筆者之前寫的對csshellcode分析的文章cs shellcode分析


    https://forum.butian.net/share/2017
    

    0x04 反思

    一、防守方的角度

    1、如何去檢測這種樣本

    筆者目前的思路是:

    我們可以通過yara規則去靜態檢測,可疑的可執行文件中是否存在上文提到的sapien powershell studio的標記(如下圖);

    strings:          $a = "SAPIEN PowerShell.v5" wide  condition          all of them and uint16(0) == 0x5A4D
    


    這個誤報情況應該不會高了,因為一般客戶處的業務基本沒有把powershell腳本封裝成exe的需求,以及在筆者的視角中也沒有想到相關其他誤報場景。

    2、如何去分析這種樣本

    這種樣本將powershell代碼加密藏到資源段中了,我們只要反編譯拿到源碼,直接找源碼里面的獲取資源數據的地方,就能找到解密的地址,然后打斷點,直接就拿到了封裝進去powershell腳本的地址了。

    二、攻擊方的角度

    那么當殺軟將這種可以執行任意powershell代碼的exe程序標記成惡意文件的時候,紅隊視角如何對其進行免殺呢?

    • 首當其沖的就是要去特征化,把SAPIEN PowerShell studio的特征去掉,這樣能保證靜態免殺。
    • 其次分析代碼的時候,筆者發現這個樣本沒有做反虛擬機操作和反沙箱操作,這里可以加一些相關操作來提升分析的難度,如下al-khaser項目里面提到的一些vm的特征,注冊表,服務、進程、文件等,以及對抗沙箱的定時、睡眠等

    0x05 總結

    通過這次的樣本,發現了新的攻擊手段,通過sapien powershell studio將powershell代碼打包成exe,這樣就能不調用powershell情況下,執行任意powershell代碼,算是學習到了一種新的繞過手段把。同時也掌握了對該類樣本的快速分析方法,下次遇到相同類型的樣本能夠迅速的分析。

    powershell
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    PowerShell入門學習
    2022-03-13 06:42:08
    PowerShell簡介 PowerShell是一種命令行外殼程序和腳本環境,它置于Windows7/Windows Server2008 R2及以上更高的版本中。它可以執行Linux系統下的一些命令,這是非常強大的一點。它的腳本后綴為(.ps1),可在磁盤中執行,也可無需寫入磁盤直接在內存中運行。 PowerShell的優點 1、Windows7以上的操作系統默認安裝。 2、Power
    顧名思義,無需將惡意文件傳到目標服務器/機器上,直接利用powershell的特性加載到內存執行。為了在紅隊行動中更隱蔽的實施攻擊以及橫向移動,同時還可以解決目標不出網只能通過dns上線時的棘手問題,利用powershell可以避免一行行echo。
    powershell免殺之路
    2021-07-12 21:46:00
    Windows PowerShell 是一種命令行外殼程序和腳本環境,使命令行用戶和腳本編寫者可以利用 .NET Framework的強大功能
    powershell對抗AV技巧
    2021-06-30 22:32:22
    今天介紹利用powershell上線來繞過AV防護,并介紹繞過添加用戶的攔截的方式。
    PowerSploit這是眾多PowerShell攻擊工具中被廣泛使用的PowerShell后期漏洞利用框架,常用于信息探測、特權提升、憑證竊取、持久化等操作。Empire基于PowerShell的遠程控制木馬,可以從憑證數據庫中導出和跟蹤憑據信息,常用于提供前期漏洞利用的集成模塊、信息探測、憑據竊取、持久化控制。
    系統安全第41篇是PowerShell系列的基礎知識和注冊表操作,希望您喜歡
    把上線命令進行base64編碼成功上線結果:360全程沒有任何攔截繞過并創建計劃任務用PowerShell創建計劃任務發現被攔截把powershell進行base64編碼執行我們的powershell代碼結果:?
    這凸顯了開發檢測惡意 PowerShell 命令的有效方法的迫切需要。在這項工作中,我們通過實施幾個新穎的惡意 PowerShell 命令檢測器并評估它們的性能來應對這一挑戰。在這項工作中,我們使用 AMSI 提供的信息對惡意 PowerShell 代碼檢測進行了首次研究。
    這個樣本是在2019年5月中使用的一個powershell樣本。背景Turla,也被稱為 Snake,是一個
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类