360安全衛士 · 2016/06/15 11:06
Author:360天眼實驗室
0x00 引子
人在做,天在看。
近期360天眼實驗室捕獲到一例針對印度的定向攻擊樣本,樣本利用了沙蟲漏洞的補丁繞過漏洞CVE-2014-6352,經分析確認後我們認為這是趨勢科技在今年三月份釋出的名為“Operation C-Major”APT攻擊活動的新樣本。關於C-Major行動的相關內容,有興趣的讀者可以在文後的參考連結中檢視。
本文主要對CVE-2014-6352漏洞做基本的分析並剖析一個現實中利用此漏洞執行定向攻擊的案例。
0x01 漏洞分析
樣本利用的漏洞為CVE-2014-6352,該漏洞是CVE-2014-4114的補丁繞過(MS14-060)問題,在管理員模式或者關閉UAC的情況下可以實現不彈出警告窗執行嵌入的惡意程式。與CVE-2014-4114的利用樣本相比,CVE-2014-6352樣本的特點是沒有嵌入inf,只有一個嵌入PE的OLE物件。從攻擊者的角度看,這類樣本可以說有利有弊。在管理員模式下,可以無警告窗執行PE檔案,繞開MS14-060的補丁。但是如果不是在管理員模式下,就算受害者沒有安裝MS14-060的補丁,也會彈窗提示是否要執行嵌入的EXE檔案。
我們知道CVE-2014-4114漏洞的成因在於packager.dll的CPackage::Load
方法載入對應的OLE複合文件物件時,對不同型別的複合文件有不同的處理流程,其中對某些複合文件嵌入的不可信來原始檔沒有經過處理,從而使得攻擊者可以通過偽造OLE複合文件的CLSID來達到執行特定檔案的效果:
packager!Cpackage:: Load
方法中處理不同型別複合文件的分支
在MS14-060這個補丁中,微軟通過新增MarkFileUnsafe
函式來彌補這個漏洞:
ms14-060補丁中的packager!Cpackage:: EmbedReadFromStream
方法
未安裝ms14-060的packager!Cpackage:: EmbedReadFromStream
方法
MarkFileUnsafe()
通過呼叫IZoneIdentifier::SetId
來設定檔案的Security Zone,傳入的引數3對應的是設定URLZONE_INTERNET,從而標明此檔案來自於其他計算機,執行時會彈出警告視窗:
然而漏洞並不僅僅只是未對不可信來源的檔案處理,攻擊者還可以通過偽造OLE複合文件的CLSID和XML中的OLE Verb來改變執行流程。問題還在於對一個exe檔案來說,即使被標記了URLZONE_INTERNET之後,右鍵點選以管理員許可權執行時,將不會再彈窗提示該檔案來自於其他計算機,而是以UAC的提示窗彈出:
所以只需要構造特定的CLSID和OLE Verb,使執行流程來到右鍵介面的第二項管理員許可權執行EXE程式,那麼在關閉UAC或者管理員許可權的情況下,就能繞過MS14-060補丁施加的限制。下面我們結合這次從外面捕獲到的樣本來展示一下整個漏洞利用的過程。
0x02 樣本分析
首先我們拿到了一個名為vedio.ppsx的PPT檔案,MD5為b6a1ee16de885c70682a7a8e4c1b556c ,從VirusTotal的上傳來源看為來自印度。對這個ppsx解壓處理,可以看到其內嵌了一個OLE物件,嵌入的是一個PE檔案:
在video.ppsx\ppt\slides\slide1.xml
中,指定了嵌入的物件id = rId3
在video.ppsx \ppt\slides\_rels\ slide1.xml.rels
中指定了rId3對應的是前面提到的oleObject1.bin
複合文件對應的CLSID 如下圖,是{0003000c-0000-0000-c000-000000000046}
,對應的是CLSID_OldPackage,那麼根據上面的分析,CPackage::Load
呼叫CPackage::PackageReadFromStream
進一步處理,PackageReadFromStream
會通過CPackage::EmbedReadFromStream
在臨時目錄釋放嵌入的PE檔案。
packager!CPackage::EmbedReadFromStream
中呼叫了 packager!CopyStreamToFile
這個函式,將嵌入的PE釋放到temp目錄下的putty.exe,並通過MarkFileUnsafe設定檔案標記:
然後,通過CPackage::DoVerb
方法來響應終端使用者的動作,在 CPackage::DoVerb
中,會先對第二個引數進行判斷,這個引數在video.ppsx\ppt\slides\slide1.xml
中指定:
樣本中構造的引數是3,所以進入使用popup選單命令執行操作的流程:
呼叫GetMenuItemInfo
時,第二個引數uItem代表選單的位置,這裡引數為1,也就是右鍵選單的第二項,對於exe檔案,右鍵選單的第二項是“以管理員許可權執行”
最終呼叫了SHELL32!CDefFolderMenu::InvokeCommand
方法,這時就會以試圖管理員許可權執行putty.exe,在關閉了UAC或者管理員模式下,就繞過了MS14-060的保護靜默地執行了一個PE檔案。
0x03 所釋放程式的分析
putty.exe
ppt檔案釋放出來的putty.exe實際上是一個改名後的經過混淆的.NET 程式,MD5為 78fab9978ae4de4f684908f47fdc2333 ,這個程式其實是一個Dropper。
經過去混淆後,我們可以清楚地看到其程式程式碼,首先遍歷是否有殺軟程式:
樣本在這裡其實不是一次遍歷查詢,而是分成多次遍歷穿插在功能程式碼中,每次查詢一到兩款殺軟的程式,查詢的殺軟程式如下:
ekrn.exe(ESET)
guardxkickoff.exe(IKARUS)
AvastSvc.exe
btagent.exe
bdagent.exe(BitDefender)
avgui.exe。
然後從資源中讀取資料,並解密為一個PE檔案
啟動cmd程式,將自身拷貝成%temp%\net\health.exe
並新增登錄檔啟動項
HKEY_CURRENT_USER/Software/Microsoft/Windows NT/CurrentVersion/Windows - load這個值可以指定在使用者登入後自動執行的程式檔名。
然後將RegAsm.exe拷貝為%temp%\svhost.exe
接著以Suspend方式啟動svhost.exe,將之前解密出來的PE注入,並恢復執行緒。
最後在%temp%/net/
目錄下寫入health.exe.bat檔案並執行
health.exe.bat的程式碼如下,作用是不斷遍歷程式檢視svhost.exe是否啟動,沒有啟動的話則將其啟動。
svhost.exe
在HKEY_CURRENT_USER中設定一個值di用於判斷是否已經感染過該系統:
設定HKEY_CURRENT_USER\Environment\SEE_MASK_NOZONECHECKS的值為1,這是用於關閉附件管理器檢查的:
然後用命令列啟動netsh.exe,新增防火牆規則,允許其通過防火牆
命令列如下
#!shell
netsh firewall add allowedprogram "C:\Users\***\AppData\Local\Temp\svhost.exe" " svhost.exe" ENABLE
複製程式碼
申請一片記憶體空間用於存放接收/傳送的資料,開始網路連線:
C&C地址: 191.101.23.190
埠號: 5552
收集受害者的系統資訊,包括上線時間、系統版本、系統位數、磁碟資訊、當前使用者等等,併傳送出去:
然後開啟一個執行緒迴圈查詢socket是否可讀(接收命令):
讀取命令後,開啟新執行緒根據指令執行對應的操作:
開啟鍵盤記錄執行緒,並將記錄資訊儲存在登錄檔HKEY_CURRENT_USER\SoftWare\ ce99f8fa1676b15364293a0db3d6a707中:
設定自啟動項:
接收命令後,對命令做出相應的處理,在switch中根據命令執行對應的功能,這裡就不再詳細分析,下面給出部分功能與對應的命令,如下:
rn
下載/執行檔案CAP
螢幕監控un
自刪除、啟動和終止程式up
線上更新Ex
載入外掛GTV
獲取登錄檔HKEY_CURRENT_USER\SoftWare\ ce99f8fa1676b15364293a0db3d6a707中的鍵盤記錄資訊STV
設定登錄檔HKEY_CURRENT_USER\SoftWare\ ce99f8fa1676b15364293a0db3d6a707開始鍵盤記錄- …
0x04 IOC
型別 | 值 |
---|---|
C&C | 191.101.23.190:5552 |
Downloader URL | pcdopune.com/ad/video.pp… |
0x05 總結
在網上公開的IOC平臺中發現,該C&C地址與趨勢科技在今年三月份釋出的“Operation C-Major”報告中的一個C&C完全一致。另外,樣本下載的域名pcdopune.com關聯到的其他樣本中,也出現了與報告中幾乎一樣的惡意巨集樣本,由此我們認為這是與C-Major相關的攻擊行動。
根據360威脅情報中心的資料,我們發現本文所涉及的樣本僅僅只是C-Major行動中使用的多種Dropper中的一種型別,CVE-2010-3333、CVE-2012-0158等漏洞也被利用來做惡意程式碼的植入,不僅如此,甚至還利用了巨集和指令碼,所使用的PE樣本更是靈活多變。從這些跡象來看C-Major行動背後團伙非常積極地利用所能得到各種植入手段,極有可能是專業的有背景及一定技術能力的組織。