當前位置:
首頁 > 新聞 > 滲透技巧——Junction Folders和Library Files的後門利用

滲透技巧——Junction Folders和Library Files的後門利用

0x00 前言

維基解密公布的CIA Vault 7中涉及到了Windows系統中Junction Folders和Library Files的利用。

地址如下:

https://wikileaks.org/ciav7p1/cms/page_13763381.html https://wikileaks.org/ciav7p1/cms/page_13763373.html

Jayden Zheng對此做了分析,分享了一個Library Files的後門利用方法,並且詳細介紹了如何檢測Junction Folders和Library Files的惡意利用。

地址如下:

https://www.countercept.com/blog/hunting-for-junction-folder-persistence/

https://www.countercept.com/blog/abusing-windows-library-files-for-persistence/

本文將基於以上參考資料,比較Junction Folders和Library Files,對Library Files的後門利用方法做進一步利用(更加隱蔽),開源一個POC,並且在檢測上面分享自己的理解。

0x01 簡介

本文將要介紹以下內容:

·Junction Folders的利用方法

·Library Files的利用方法

·Library Files後門的進一步利用

·檢測和識別

0x02 Junction Folders的利用方法

Junction Folders可以簡單理解為一個能夠跳轉到另一位置的文件夾。

創建的三種常用方法:

·修改註冊表項

·修改文件夾內的desktop.ini

·使用特殊的文件名,例如test.

對於第三種方法,特定的CLSID對應特定的文件路徑。

如果我們通過註冊表創建一個CLSID,並指定dll路徑,那麼在打開該文件夾時,會載入該dll。

1、實際測試

測試dll為執行計算器,可供參考的下載地址:

https://github.com/3gstudent/test/raw/master/calc.dll

(1)修改註冊表,添加註冊表項

bat命令如下:

SET KEY=HKEY_CURRENT_USERSoftwareClassesCLSID\InProcServer32

REG.EXE ADD %KEY% /VE /T REG_SZ /D "c: estcalc.dll" /F

REG.EXE ADD %KEY% /V ThreadingModel /T REG_SZ /D Apartment /F

(2)新建文件夾test.

(3)選中該文件夾即可載入calc.dll

註:只會載入一次,重啟進程explorer.exe可以再次觸發。

2、系統開機自動載入的實現方法(用戶許可權)

(1)重命名系統文件夾

將%appdata%MicrosoftWindowsStart MenuProgramsAccessories重命名為Accessories.

(2)新建文件夾

將文件夾test.保存在以下任一位置:

·%appdata%MicrosoftWindowsStart MenuPrograms

·%appdata%MicrosoftWindowsStart MenuPrograms的子目錄

0x03 Library Files的利用方法

文件後綴名為library-ms,位於%appdata%MicrosoftWindowsLibraries

官方文檔:

https://docs.microsoft.com/en-us/windows/client-management/windows-libraries

Library Files的簡單理解:能夠同時顯示多個文件夾中的內容

1、實際測試:

(1)修改註冊表,添加註冊表項

bat命令如下:

SET KEY=HKEY_CURRENT_USERSoftwareClassesCLSID\

REG.EXE ADD %KEY%InProcServer32 /VE /T REG_SZ /D "c: estcalc.dll" /F

REG.EXE ADD %KEY%InProcServer32 /V ThreadingModel /T REG_SZ /D Apartment /F

REG.EXE ADD %KEY%ShellFolder /V Attributes /T REG_DWORD /D 4035969341 /F

註:相比Junction Folders,Library Files需要多添加一個註冊表項

(2)修改%appdata%MicrosoftWindowsLibrariesDocuments.library-ms

按照xml格式添加如下內容:

@shell32.dll,-34577

true

shell:::

(3)訪問%appdata%MicrosoftWindowsLibrariesDocuments.library-ms

打開文件時將多次載入dll,這裡可以加一個互斥量避免多次啟動,下載地址(僅作演示用):

https://github.com/3gstudent/test/raw/master/calcmutex.dll

值得注意的地方:Includes由2 locations變成3 locations

如下圖:

查看該位置,能夠發現載入的CLSID,如下圖:

2、系統開機自動載入的實現方法(用戶許可權)

將修改後的Documents.library-ms放在以下任一位置:

·%appdata%MicrosoftWindowsStart MenuPrograms

·%appdata%MicrosoftWindowsStart MenuPrograms的子目錄

註:還可以修改Music.library-ms和Pictures.library-ms,甚至是自己創建(可以指定顯示的圖標)

0x04 Library Files後門的進一步利用

對於Library Files的後門利用方法,最明顯的特徵是從Includes即可發現載入的CLSID

這裡給出一個解決方法:

將路徑清空,並且指定為不顯示

成功隱藏載入的CLSID,最終的效果如下圖

1、實現方法

按照xml格式,清空原,添加如下代碼:

@shell32.dll,-34577

false

true

shell:::

2、通過powershell實現的POC

經測試,不需要指定,可以使用固定模板。

流程如下:

·修改註冊表

·在指定目錄釋放Documents.library-ms

腳本編寫需要注意的地方:

1.需要指定輸出的編碼格式為UTF-8,默認為UTF-16(unicode),會導致library-ms文件格式錯誤

2.為了向字元串中傳入變數$clsid,字元串的定義要使用雙引號",而不是單引號"

完整代碼可參考:

https://github.com/3gstudent/Homework-of-Powershell/blob/master/Invoke-LibraryFilesPersistence.ps1

代碼實現了添加註冊表項並創建文件%appdata%MicrosoftWindowsLibrariesDocuments.library-ms,在用戶登錄時會載入c: estcalc.dll

0x05 檢測和識別

對於Junction Folders和Library Files的利用方法,特別的地方:

·普通用戶許可權即可

·文件格式不常見,欺騙性高

結合利用方法,可對每個環節進行檢查:

1.是否存在可疑dll payload必須為dll格式

2.註冊表CLISD下是否有可疑dll 可監控註冊表的敏感位置HKEY_LOCAL_MACHINESOFTWAREClassesCLSID和HKEY_CURRENT_USERSoftwareClassesCLSID

3.對於Junction Folders,遍歷文件夾,檢查後綴名是否關聯可疑CLSID 對於Library Files,遍歷library-ms文件,檢查是否關聯可疑CLSID 這個可直接參考Jayden Zheng的腳本: https://gist.github.com/countercept/6890be67e09ba3daed38fa7aa6298fdf

0x06 小結

本文測試了Junction Folders和Library Files的利用方法,對Library Files的後門利用方法做進一步利用,用來增加隱蔽性,開源了POC並且介紹了腳本編寫需要注意的地方,最後在檢測上面分享自己的理解。


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

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


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

繞過IOS 12鎖屏訪問通訊錄和相冊
案例重現,看看黑客如何實施信用卡詐騙攻擊

TAG:嘶吼RoarTalk |