標籤:

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

0x00 前言

在之前的文章介紹了兩種利用COM對象劫持實現的後門,利用思路有一些區別:

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

正常CLR的用法:

設置註冊表鍵值HKEY_CURRENT_USERSoftwareClassesCLSID

cmd下輸入:

SET COR_ENABLE_PROFILING=1SET COR_PROFILER={11111111-1111-1111-1111-111111111111}

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

後門利用思路:

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

經實際測試,該方法有效,系統啟動後默認會調用.Net程序,載入CLR,後門觸發

第二種,劫持CAccPropServicesClass和MMDeviceEnumerator

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

設置註冊表鍵值HKEY_CURRENT_USERSoftwareClassesCLSID能夠指定實例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實現的後門思路

註冊表位置:HKCUSoftwareClassesCLSID

創建項{42aedc87-2188-41fd-b9a3-0c966feabec1}

創建子項InprocServer32

Default的鍵值為測試dll的絕對路徑:C: estcalc.dll

創建鍵值: ThreadingModel REG_SZ Apartment

如下圖

該註冊表位置對應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年用於滲透五角大樓的惡意軟體

詳細資料:

nsec.io/wp-content/uplo

2、ZeroAccess rootkit

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

詳細資料:

nakedsecurity.sophos.com

sophos.com/en-us/threat

註:

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

註冊表位置:HKCUSoftwareClassesclsid{fbeb8a05-beee-4442-804e-409d6c4515e9}

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

3、BBSRAT

詳細資料:

researchcenter.paloaltonetworks.com

2014.zeronights.org/ass

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、對註冊表HKCUSoftwareClassesCLSID的寫入和修改操作進行記錄並調查

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

attack.mitre.org/wiki/T

0x05 小結

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

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

本文為 3gstudent 原創稿件, 授權嘶吼獨家發布,如若轉載,請註明原文地址: 4hou.com/technology/740 更多內容請關注「嘶吼專業版」——Pro4hou

推薦閱讀:

數學中的戰爭,戰爭中的數學——漫談密碼(2)
如何通過偽造Tor隱藏服務進行釣魚?
蘋果升級日!iOS、macOS雙雙發布更新,修復了數十個漏洞
安全工作「輕與重」的三層境界
自動化檢測CSRF(第一章)

TAG:信息安全 |