本文講的是<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對象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,彈出電腦,如下圖
測試64位系統,系統資料庫位置不變,但是需要換用64位dll,重新開機時後門觸發,啟動calc.exe,如下圖
Win8系統同樣适用,如下圖
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>