利用Office巨集及Powershell的針對性攻擊樣本分析

烏雲知識庫發表於2018-03-08

360安全衛士 · 2016/06/24 13:25

Author:360天眼安全實驗室

0x00 背景


人在做,天在看。

利用Powershell執行攻擊由於其繞過現有病毒查殺體系的有效性,已經成為目前日益氾濫的攻擊手段,不論普遍撒網的勒索軟體還是定向的針對性攻擊都有可能採用。360天眼實驗室一直對此類樣本做持續的監測, 5月份以來,我們注意到一類比較特別的樣本,發現其有兩個比較鮮明的特點。

  1. 利用Excel表格存放誘餌資料,偽造警告欺騙使用者啟用巨集,巨集程式碼會從表格中讀取出資料,然後釋放並執行;

  2. 使用Powershell指令碼通過DNS請求來傳輸資料,將資料寫成批處理檔案(.bat)再執行,執行完畢將結果通過同樣的方式回傳,然後刪除痕跡。如此實現遠端控制功能,並且控制方式上非常隱蔽。

FireEye公司在5月22日釋出了一篇關於此類樣本和相關攻擊行動的分析報告,詳細地分析了實現上的技術細節,指稱這是一次針對中東地區銀行的定向攻擊。進入6月以後,我們還發現了一些新的同型別樣本被提交。

注意到這些樣本在VT上查殺率十分低,截止我們完成這篇文章時,僅為2/56:

有趣的是,我們發現這些新的樣本程式碼雖然與之前的幾乎一樣,只是刪除了一些註釋並改變了C&C域名,而在程式碼中新增了一段特別的註釋,見下圖,其用意倒值得猜測。

0x01 樣本分析


概述

我們得到的木馬樣本基本資訊如下,2016年6月15日被提交到VirusTotal上。

MD5:3e63d55f1e44a71041311c44e34baaa9

檔名:final345.xls

樣本是一個嵌入巨集的Excel檔案,檔案被開啟後為開啟了巨集的狀態,則巨集中的惡意程式碼會釋放一個vbs和一個ps1指令碼檔案。其中vbs主要功能是從伺服器下載檔案並執行,然後再將指定目錄的檔案上傳到伺服器;而ps1則是一個利用DNS請求獲取資料執行遠端命令的惡意指令碼。

執行細節

開啟xls檔案後,可以看到攻擊者偽造了一個警告:

這時候第一行第25、26列的單元格內容是被設定為不可見的,但是可以從內容欄中看到資料,如果點選啟用內容,那麼巨集裡的惡意程式碼就會執行起來。

巨集程式碼

上圖中的巨集程式碼功能主要描述如下:

  1. 從表格中第1行第25列(也就是[1,Y])的單元格中讀取資料並呼叫powershell執行,寫入到%public%/Library/fireeye.vbs中。

  2. 從表格中第1行第26列(也就是[1,Z])的單元格中讀取資料並呼叫powershell執行,寫入到%public%/Library/fireeye.ps1中。

  3. 建立目錄%public%/Library/updntp

  4. 將釋放的fireeye.vbs加入計劃任務.

值得注意的是,5月份出現的樣本中最後會將表2顯示出來,表2中有一些用於迷惑使用者的資料,而這次的樣本表2中是沒有任何資料的。

fireeye.vbs

fireeye.vbs的功能是用powshell從伺服器下載檔案到%Public%\Libraries\dn目錄下,接著下載bat檔案到\dn目錄下並執行,然後將%Public%\Libraries\up目錄下的檔案上傳到伺服器,最後刪除這些檔案,並啟動fireeye.ps1。具體流程如下:

  1. http://update-kernal.net/update-index.aspx?req=2062203590\dwn&m=d下載檔案並儲存在 %PUBLIC%\Libraries\dn\目錄下,儲存的檔名在伺服器響應的Content-Disposition欄位的filename中取得。

  2. http://update-kernal.net/update-index.aspx?req=2062203590\bat&m=d獲取批處理檔案的內容,Base64編碼後執行並將結果儲存為 %PUBLIC%\Libraries\up\[RandomNumber].txt,重新命名這個TXT檔案,重新命名檔名在伺服器響應的Content-Disposition欄位的filename中取得。

  3. 將TXT檔案經過Base64編碼後,上傳至http://update-kernal.net/update-index.aspx?req=2062203590\upl&m=u,上傳後將檔案刪除。

  4. 執行fireeye.ps1。

相關程式碼如下:

fireeye.ps1

fireeye.ps1是一個巧妙利用DNS請求來接收命令和傳輸資料的指令碼。總體行為如下:

  • 獲取用於標識身份的ID

  • 通過獲取DNS解析的IP地址 ,每次接收4個位元組,寫入批處理檔案中

  • 執行批處理檔案,輸出結果到TXT檔案

  • 傳送TXT到伺服器

  • 清理痕跡

關鍵程式碼如下,因為伺服器已經將子域名的A記錄解析到不同的IP地址,一個IP地址恰好能表達4個位元組的資料,樣本可以通過不斷地拼接不同的子域名去獲取到對應的IP地址也就是資料。

解析命令程式碼如下:

與之前的樣本相比,獲取子域名程式碼也作了一些修改:

  • ww00000[Base36(RandomNumber)]30.update-kernel.net:獲取標識身份的id

  • ww[id]00000[Base36(RandomNumber)]30.update-kernel.net: 發起會話

  • ww[id]00000[Base36(RandomNumber)] 232A[filename][i].update-kernel.net: 接收命令

  • ww[id][upfilename][Base36(filelen)][filecontext] .update-kernel.net: 上傳檔案

0x03 幕後團伙


現在C&C伺服器已經不能正常返回資料,但是我們可以從第二步解析的地址中獲取到一些相關資訊:

樣本中C&C的主域名為update-kernal.net,解析到IP 5.39.112.87,通過查詢360威脅情報中心,此IP相關的標籤包含有“OilRig”,此標籤來自Palo Alto Networks在5月份釋出的一篇報告,與FireEye的文章一致的是指稱相同的攻擊目標。因此,在威脅情報中心的update-kernal.net域名相關的條目也被標記上OilRig標籤。

在PAN的報告中所涉及的樣本所連線的域名go0gie.com ,也解析到5.39.112.87,可見我們得到的樣本無論從程式碼和所涉及的網路基礎設施都與之前所揭露出來的攻擊活動一致,構成已知攻擊活動的一部分。

0x04 IOC


型別
C&C域名update-kernal.net

0x05 總結


查殺工具與惡意程式碼的攻防競賽一直在進行中,在PE檔案被作為嚴防死守物件的今天, Office巨集、VBS,Powershell、Javascript等非PE的指令碼攻擊載荷由於方便進行加密混淆而有很好的免殺性,對抗惡意程式碼的廠商有必要採取更多的手段來應對此類威脅。

0x06 參考連結


  • http://researchcenter.paloaltonetworks.com/2016/05/the-oilrig-campaign-attacks-on-saudi-arabian-organizations-deliver-helminth-backdoor/

  • http://researchcenter.paloaltonetworks.com/2016/05/the-oilrig-campaign-attacks-on-saudi-arabian-organizations-deliver-helminth-backdoor/

相關文章