上篇我們成功在McAfee Application Control保護的系統上實現了代碼執行,而McAfee Application Control的其他保護功能同樣很強大,其中對文件讀寫操作的攔截很有特色,這一次我們接著試試能不能繞過:D
當McAfee Application Control開啟了文件寫入保護和讀取保護,可以阻止任何對受保護文件的修改,具體保護細節如圖
簡單的說,如果開啟了寫入保護,那么對文件的任何修改操作都會被阻止并被日志記錄。
如果開啟了讀取保護,那么無法讀取受保護文件的內容。
可是深入了解之后,有趣的事情發生了。
操作系統:win7x86
首先學習一下如何設置以及使用文件寫入保護。
寫入保護可以指定文件夾、文件或者是驅動文件
測試使用指定文件夾c:\test\write
里面包含test.txt
#!bash
sadmin write-protect -i c:\test\write
#!bash
sadmin write-protect -l
如圖
隨后我們嘗試在c:\test\write
下新建文件、刪除文件、修改文件,均失敗
如圖
#!bash
sadmin write-protect -r c:\test\write
接著測試讀取保護
測試使用指定文件夾c:\test\read
下面包含test.txt
,里面保存有加密信息
注:
寫入保護默認開啟,而讀取保護默認關閉,所以先要開啟讀取保護功能
#!bash
sadmin features enable deny-read
#!bash
sadmin read-protect –i c:\test\read
#!bash
sadmin read-protect -l
如圖
嘗試讀取文件內容,失敗,如圖
通過以上的測試可以發現:
但是:
McAfee Application Control會默認設定白名單進程用來為系統進行更新
所以這些進程都具有操作文件的權限
如果你仔細閱讀了上一篇文章并能加以思考
那么其中的漏洞也顯而易見
如果能夠利用白名單進程執行文件讀寫操作,那么自然能夠繞過防護
利用思路:
執行
#!bash
sadmin updaters list
如圖
以下是我找到的比較通用并能被利用的進程:
選取GoogleUpdate.exe
使用《Powershell tricks::Code Execution & Process Injection》提到的Process Injection-Meterpreter.ps1
可以在powershell的環境下粘貼代碼執行
向GoogleUpdate.exe進程注入meterpreter
如圖
注:
注入系統權限的進程需要管理員權限
如圖
彈回meterpreter
發現沒有直接注入到GoogleUpdate.exe
接著進程注入,如圖
成功注入到GoogleUpdate.exe,理論上已經有了權限可以操作受保護的文件
我們接著測試,如圖
成功修改文件和刪除文件
接著測試讀取文件,如圖
成功讀取被保護的內容
注: 通過進程注入獲得的權限可以用來執行腳本
McAfee Application Control可對操作設置密碼,增強其安全
設置密碼:
#!bash
sadmin passwd
去掉密碼:
#!bash
sadmin passwd -d
密碼文件保存在C:\Program Files\McAfee\Solidcore\passwd
正常情況下C:\Program Files\McAfee\Solidcore\passwd
無法被讀取、無法被復制,即使進程注入到白名單進程內也無法實現,如圖
但是我們依然有辦法:D
這里可以借鑒導出域控ntds.dit文件的方法,使用NinjaCopy.ps1
下載鏈接:
https://github.com/3gstudent/NinjaCopy
指定路徑為:
#!bash
Invoke-NinjaCopy -Path "C:\Program Files\McAfee\Solidcore\passwd" -LocalDestination "C:\test\trust\passwd"
管理員權限運行NinjaCopy.ps1
,成功復制passwd文件
如圖
上圖為passwd的內容
查看資料得知此處使用的是sha-512加密(mcafee-application-control-product-guide/Page68)
如圖
推斷cryptographic salt
為88daf0b4-790e-4eae-a926-b08788fbd1cb
在http://www.convertstring.com/Hash/SHA512驗證推斷
輸入cryptographic salt
和明文對比測試
如圖
passwd中的內容和我們自己加密的密文相同,判斷正確
McAfee Application Control為方便使用,可以指定信任路徑,在里面的所有操作均不會被攔截
如果McAfee Application Control未設置密碼或者密碼被獲得,可以建立一個信任路徑,里面的操作均不會被攔截
建立:
#!bash
sadmin trusted -i c:\test\trusted
查看:
#!bash
sadmin trusted -l
如圖程序成功執行
日志默認被保存在C:\ProgramData\McAfee\Solidcore\Logs
通過進程注入獲得的權限可以修改此文件
“未知攻 焉知防”,即使做到以上幾點,我相信依然有繞過的方法:)
本文由三好學生原創并首發于烏云drops,轉載請注明