(轉)如何利用註冊表修改技術繞過UAC限制

      用戶帳戶控制(UAC)是一項Windows功能,有助於防止對系統進行未經授權的更改。不過本文將給我們詳細展示,攻擊者是如何在繞過此安全控制的情況下悄悄執行修改系統的特權操作。UAC自Windows Vista和Windows Server 2008以來就開始出現,其目標是在觸發相關係統更改時,引起用戶的注意。它的工作方式是顯示一個彈出窗口,要求用戶進行交互以接受某些請求的系統更改,指定試圖執行這些更改的程序名稱和發佈者。另外,屏幕的其他部分通常會變暗,以使用戶更加意識到這個彈出窗口非常重要,應該格外注意。

此功能對用戶非常有用,用戶既可以利用此功能識別他們執行的系統所進行的更改,也可以幫助檢測另一個應用程序或惡意軟件何時嘗試修改系統。因此,繞過UAC是一種最理想的攻擊技術,它在MITRE ATT&CK matrix上被歸類爲防禦逃避和特權升級技術。

技術細節

由於UAC是一種安全措施,可以防止惡意軟件、不受歡迎的用戶或應用程序改變相關的系統配置,因此攻擊者一直在尋找繞過UAC的新方法,從而在不提示用戶的情況下,以實現特權系統更改。目前有很多種不同的方法繞過UAC,但是本文主要關注如何利用註冊表修改技術繞過UAC。

所選擇的技術依賴於修改特定系統實用程序應用程序的註冊表鍵值,這些權限是通過設計自動提升的,並且能夠執行其他應用程序並賦予它們特權。執行這項技術需要三個參數。其中兩個與繞過技術直接相關,最後一個是繞過UAC時使用權限執行的目標命令:

1.將觸發目標應用程序的特權應用程序;

2.此特權應用程序讀取的註冊表鍵值,應該是將要嘗試執行的二進制文件的路徑;

3.將通過使用UAC繞過技術,悄悄執行二進制程序的程序路徑;

例如,我們將在Windows 7中利用eventvwr.exe應用程序繞過UAC,此特權應用程序的作用類似於微軟管理控制檯(Microsoft Management Console,MMC)的快捷方式。

當eventvwr.exe啓動時,它將檢查是否使用特定的二進制文件爲事件查看器提供MMC管理單元的功能。爲此,它在註冊表鍵值“HKEY_CURRENT_USER\Software\Classes\mscfile\shell\open\command”中查找特定的二進制位置。如果它存在,它將在此路徑上執行二進制文件。否則,將加載Windows事件查看器的默認MMC管理單元,此註冊表鍵值的內容是可繞過UAC而用於執行二進制文件的。

由於Windows更新和安全修復程序的關係,對於不同的Windows版本,特權應用程序和註冊表鍵值可能會有所不同。由於在撰寫本文時沒有一種共享相同特權應用程序和註冊表鍵值的繞過技術,因此我們將只列出對Windows 7有效的參數,這些參數對於Windows 10也有效。現在,讓我來演示一下這些技術是如何同時工作的?

Windows 7技術是基於以下參數:

1.自動提升的特權應用程序:eventvwr.exe;

2.具有要執行的路徑的註冊表鍵值:HKEY_CURRENT_USER\Software\Classes\mscfile\shell\open\command;

要利用這種技術,第一步就是修改註冊表鍵值,來執行目標應用程序。在這種情況下,我選擇的是“C:\Windows\System32\cmd.exe”。

現在註冊表鍵值已設置完成,可以通過eventvwr.exe,執行此註冊表鍵值的內容,而不是對其直接進行加載。

最後,可以檢查新生成的進程是否正在運行高完整性,以允許新進程訪問多個特權和受保護的系統資源。

另外,Windows 10環境下的繞過技術,也具有相同的參數類型,但具有不同的值:

1.自動提升的特權應用程序:sdclt.exe;

2.進行路徑執行的註冊表鍵值:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\App Paths\control.exe;

這樣,第一步和Windows 7環境下的繞過技術一樣,具有相同的修改註冊表鍵值。現在,我會再次選擇“C:\Windows\System32\cmd.exe” 作爲目標應用程序。

一旦註冊表鍵值設置完成,下一步就是執行“sdclt.exe”。該過程將啓動命令行應用程序,而不是直接對其進行加載,這與Windows 7技術中看到的加載方式相同。

最後,就像預期的那樣,你可以檢查新產生的進程的完整性級別非常高。

緩解措施

目前,我正在研究是否有能夠測試此類繞過技術的工具,以及採取何種安全控制措施來防止此類攻擊。例如本文這種情況,或者可以根據需要修改用戶提供的註冊表鍵值來入手。總結這些通用場景,就可以開發出基於註冊表修改的任何類型的攻擊的測試技術。還有許多其他通用場景,例如執行系統命令、修改文件、掃描文件、盜竊網絡隱私信息、使用不同的持久性攻擊技術等。

由於這兩種技術都依賴於相同的原理,所以對它們的緩解措施也是一樣的。這與將UAC級別設置爲Always Notify屬性一樣簡單。

對於不希望將UAC級別設置爲Always Notify的系統環境,可以使用其他的保護方法,但是,從系統的安全角度來講不建議使用。這些方法包括監控並防止以下註冊表鍵值的註冊表更改:

1.HKEY_CURRENT_USER\Software\Classes\mscfile\shell\open\command;

2.HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\App Paths\control.exe;

除這些緩解措施外,還建議在可能的情況下使用非特權帳戶。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章