天天看點

COM Object hijacking後門的實作思路——劫持explorer.exe

本文講的是<b>COM Object hijacking後門的實作思路——劫持explorer.exe</b>,在之前的文章介紹了兩種利用COM對象劫持實作的後門,利用思路有一些差別:

第一種,通過CLR劫持.Net程式

正常CLR的用法:

設定系統資料庫鍵值HKEY_CURRENT_USERSoftwareClassesCLSID

cmd下輸入:

CLR能夠劫持目前cmd下所有.Net程式的啟動

後門利用思路:

我嘗試通過WMI修改環境變量,使CLR作用于全局,就能夠劫持所有.Net程式的啟動

經實際測試,該方法有效,系統啟動後預設會調用.Net程式,加載CLR,後門觸發

第二種,劫持CAccPropServicesClass和MMDeviceEnumerator

該方法曾被木馬COMpfun使用,是以思路也是從COMpfun學到的

設定系統資料庫鍵值<code>HKEY_CURRENT_USERSoftwareClassesCLSID</code>能夠指定執行個體CAccPropServicesClass和MMDeviceEnumerator對應加載的dll

而IE浏覽器程序iexplore.exe啟動時會調用以上兩個執行個體

是以通過系統資料庫設定CAccPropServicesClass和MMDeviceEnumerator對應加載的dll,能夠劫持IE浏覽器的啟動,實作後門觸發

當然,該方法隻能算得上是一個被動後門,隻有使用者啟動IE浏覽器,才能觸發後門

然而,在衆多COM對象中,可供利用的劫持對象不唯一,甚至存在能夠劫持桌面程序explorer.exe的方法,相當于一個主動後門

例如:劫持MruPidlList

注:

該方法曾被多個已知的惡意軟體使用

本着通過研究所有已公開的COM對象後門利用方法,進而總結應對COM劫持防禦方法的原則,本文将要介紹另外兩種COM劫持的後門利用方法

之前的文章:

《Use CLR to maintain persistence》

《Use COM Object hijacking to maintain persistence——Hijack CAccPropServicesClass and MMDeviceEnumerator》

0x01 簡介

本文将要介紹以下内容

· 通過劫持MruPidlList實作的後門思路

· 惡意利用執行個體

· 總結應對COM劫持的防禦方法

0x02 通過劫持MruPidlList實作的後門思路

系統資料庫位置:<code>HKCUSoftwareClassesCLSID</code>

建立項<code>{42aedc87-2188-41fd-b9a3-0c966feabec1}</code>

建立子項<code>InprocServer32</code>

Default的鍵值為測試dll的絕對路徑:<code>C:testcalc.dll</code>

建立鍵值: <code>ThreadingModel</code> <code>REG_SZ</code> <code>Apartment</code>

如下圖

COM Object hijacking後門的實作思路——劫持explorer.exe

該系統資料庫位置對應COM對象MruPidlList,作用于shell32.dll

而shell32.dll是Windows的32位外殼動态連結庫檔案,用于打開網頁和檔案,建立檔案時的預設檔案名的設定等大量功能

直覺的了解,explorer.exe會調用shell32.dll,加載COM對象MruPidlList

系統在啟動時預設啟動程序explorer.exe,如果劫持了COM對象MruPidlList,就能劫持程序explorer.exe,實作後門随系統開機啟動,相當于是主動後門

當然,為便于測試,不需要重新開機系統,結束程序explorer.exe再建立程序explorer.exe就好

建立程序後,加載calc.dll,彈出電腦,如下圖

COM Object hijacking後門的實作思路——劫持explorer.exe

測試64位系統,系統資料庫位置不變,但是需要換用64位dll,重新開機時後門觸發,啟動calc.exe,如下圖

COM Object hijacking後門的實作思路——劫持explorer.exe

Win8系統同樣适用,如下圖

COM Object hijacking後門的實作思路——劫持explorer.exe

0x03 惡意利用執行個體

1、COMRAT

懷疑與Uroburos和Agent.BTZ同源

Uroburos:至今發現的最先進rootkit惡意程式之一

Agent.BTZ:一款在2008年用于滲透五角大樓的惡意軟體

詳細資料:

https://www.nsec.io/wp-content/uploads/2015/05/uroburos-actors-tools-1.1.pdf

2、ZeroAccess rootkit

ZeroAccess rootkit:感染過大約900多萬台計算機

https://nakedsecurity.sophos.com/2012/06/06/zeroaccess-rootkit-usermode/

https://www.sophos.com/en-us/threat-center/technical-papers/zeroaccess-botnet.aspx

ZeroAccess rootkit還使用過另一個COM劫持的位置

系統資料庫位置:<code>HKCUSoftwareClassesclsid{fbeb8a05-beee-4442-804e-409d6c4515e9}</code>

利用方法同上,也能夠劫持explorer.exe

3、BBSRAT

https://researchcenter.paloaltonetworks.com/2015/12/bbsrat-attacks-targeting-russian-organizations-linked-to-roaming-tiger/

http://2014.zeronights.org/assets/files/slides/roaming_tiger_zeronights_2014.pdf

0x04 防禦

由于COM對象是作業系統的正常功能,禁用COM對象不太現實

以下鍵值指向的dll路徑應該特别注意:

· HKCUSoftwareClassesCLSID{42aedc87-2188-41fd-b9a3-0c966feabec1}

· HKCUSoftwareClassesCLSID{fbeb8a05-beee-4442-804e-409d6c4515e9}

· HKCUSoftwareClassesCLSID{b5f8350b-0548-48b1-a6ee-88bd00b4a5e7}

· HKCUSoftwareClassesWow6432NodeCLSID{BCDE0395-E52F-467C-8E3D-C4579291692E}

防禦方法:

1、使用應用程式白名單規則,禁止加載第三方dll

2、對系統資料庫<code>HKCUSoftwareClassesCLSID</code>的寫入和修改操作進行記錄并調查

更多關于COM對象劫持的資料可參考:

https://attack.mitre.org/wiki/Technique/T1122

0x05 小結

本文介紹了兩種利用COM劫持實作的後門方法,結合之前文章的兩種利用方法,綜合分析COM劫持的防禦方法。 

特别值得注意的是,COM劫持後門能夠繞過Autoruns對啟動項的檢測,實際防禦時應該注意該細節。

原文釋出時間為:2017年8月31日

本文作者:3gstudent

本文來自雲栖社群合作夥伴嘶吼,了解相關資訊可以關注嘶吼網站。

<a href="http://www.4hou.com/technology/7402.html" target="_blank">原文連結</a>