中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么實現Windows Service Tracing中的權限提升CVE-2020-0668漏洞的分析

發布時間:2021-12-27 18:33:12 來源:億速云 閱讀:156 作者:柒染 欄目:安全技術

怎么實現Windows Service Tracing中的權限提升CVE-2020-0668漏洞的分析 ,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

我們將討論Windows Service Tracing中的一個任意文件移動漏洞。在我們的測試過程中,該漏洞將影響從Windows Vista至Windows 10的所有版本操作系統,但是Windows XP也很有可能會受此漏洞影響,因為XP系統中也有這項功能。

Windows Service Tracing

Service Tracing這項服務在Windows平臺上歷史悠久,早在XP就已經引入了這個功能。該功能可以給分析人員提供當前正在運行的服務及模塊的相關基本調試信息,任意本地用戶都可以通過編輯注冊表鍵值(HKLM\SOFTWARE\Microsoft\Tracing)來對其進行配置。

在Windows中,每一個服務或模塊都對應了一個注冊表鍵,每一個鍵包含六個值,我們主要針對其中的三個值,即EnableFileTracing(啟用/禁用“tracing”)、FileDirectory(設置日志輸出文件的地址)和MaxFileSize(設置日志文件的最大文件大小)。

EnableFileTracing啟用之后,目標服務將會開始向我們所選擇的文件路徑寫入其日志文件,當日志文件超過MaxFileSize的大小時,它將會被移動(即將原本的.LOG后綴替換為.OLD),并在原處創建一個新的日志文件。

安全研究人員James Forshaw曾發布過一個符號鏈接測試工具,漏洞利用也非常簡單。我們只需要將目標目錄設置為掛載點,指向\RPC Control對象目錄,然后創建如下2個符號鏈接即可:

1、創建一個從MODULE.LOG到我們某個文件的符號鏈接(該文件大小必須大于MaxFileSize);

2、創建一個從MODULE.OLD到系統任意文件的符號鏈接,例如“C:\Windows\System32\WindowsCoreDeviceInfo.dll”。

最后,我們需要以“NT AUTHORITY\SYSTEM”權限運行的服務作為目標來觸發文件“移動”操作,然后利用Update Session Orchestrator服務來獲取任意代碼執行權限。

服務的Tracing功能

文章開頭介紹過,任意本地用戶都可以通過編輯注冊表鍵值(HKLM\SOFTWARE\Microsoft\Tracing)來配置Service Tracing功能。

此時,通過使用Windows Sysinternals工具集中的AccessChk工具,我們可以看到普通用戶擁有相關注冊表項下幾乎所有子項的讀寫權限:

怎么實現Windows Service Tracing中的權限提升CVE-2020-0668漏洞的分析

接下來,我們將以RASTAPI模塊為例來進行漏洞利用演示。IKEEXT服務會使用這個模塊,因此我們可以通過啟動任意VPN連接來觸發事件日志行為。相關注冊表鍵值的默認設置如下圖所示,其他的服務及模塊也使用的是完全相同的值:

怎么實現Windows Service Tracing中的權限提升CVE-2020-0668漏洞的分析

從本地攻擊者的角度來看,下面的值會有利用價值:

參數名稱值范圍描述
EnableFileTracing0 - 1開始/停止寫入日志文件
FileDirectoryA String目錄的絕對路徑
MaxFileSize0x00000000 - 0xffffffff輸入日志文件的最大文件大小

通過設置這些值,我們可以做到:

1、將EnableFileTracing修改為0或者1,強制特定服務或模塊開始/停止將調試信息寫入日志文件。

2、通過FileDirectory設置日志文件的具體位置。

3、通過MaxFileSize設置輸出文件大小的最大值。

需要注意的是,我們無法選擇輸出日志文件的名稱,日志文件名稱取決于被調用服務或模塊的名稱,但我們可以通過符號鏈接來解決這個問題。

任意文件移動漏洞

場景一:MaxFileSize為默認值

在這個場景中,我們將路徑“C:\LOGS”設置為日志文件的輸出目錄,并啟用“File Tracing”功能:

怎么實現Windows Service Tracing中的權限提升CVE-2020-0668漏洞的分析

接下來,我們需要生成一些事件來觸發目標服務開始寫入日志文件。這里我們可以使用rasdial命令并配合PBK文件來初始化一個VPN連接:

怎么實現Windows Service Tracing中的權限提升CVE-2020-0668漏洞的分析

成功了!日志文件由“NT AUTHORITY\SYSTEM”寫入,當前日志文件大小約為24KB:

怎么實現Windows Service Tracing中的權限提升CVE-2020-0668漏洞的分析

場景二:MaxFileSize - 自定義值

在之前的測試中,我們可以看到輸出日志文件的大小約為24KB,因此這一次,我們要將MaxFileSize的值設置為“0x4000”(16384個字節大小),然后重新進行測試:

怎么實現Windows Service Tracing中的權限提升CVE-2020-0668漏洞的分析

根據“Process Monitor”捕捉到的事件,我們可以知道:

1、服務會獲取日志文件的基礎信息。我們可以看到EndOfFile的偏移量為23,906,這也是目前文件的大小值。由于我們設定的最大文件大小值為16,384個字節,因此這里系統會判斷沒有更多空間可用。

2、服務調用SetRenameInformationFile,其中FileName=C:\LOGS\RASTAPI.OLD。由于系統認為當前文件已滿,因此會將“C:\LOGS\RASTAPI.LOG”更改為“C:\LOGS\RASTAPI.OLD”。

3、服務創建一個新的“C:\LOGS\RASTAPI.LOG”文件,開始寫入數據。

怎么實現Windows Service Tracing中的權限提升CVE-2020-0668漏洞的分析

這里的文件移動操作由“NT AUTHORITY\SYSTEM”完成。因此,我們可以利用這一點將用戶所有的文件移動到目標系統中的任意位置,比如說“C:\Windows\System32\”。

漏洞利用

漏洞利用過程如下:

1、創建(或拷貝)一個大小超過0x8000(32,768)個字節的文件。

2、創建一個新的目錄,例如“C:\EXPLOIT\mountpoint\”,然后將其設置為一個指向“\RPC Control”的掛載點。

3、創建下列符號鏈接:

\RPC Control\RASTAPI.LOG -> \??\C:\EXPLOIT\FakeDll.dll (owner = current user)\RPC Control\RASTAPI.OLD -> \??\C:\Windows\System32\WindowsCoreDeviceInfo.dll

4、在注冊表中配置下列值:

FileDirectory = C:\EXPLOIT\mountpointMaxFileSize = 0x8000 (32,768? bytes)EnableFileTracing = 1

5、使用Windows API中的RasDial函數,觸發與RASTAPI相關的事件。

6、觸發Update Session Orchestrator服務,并利用“NT AUTHORITY\SYSTEM”權限加載相關DLL。

演示樣例

怎么實現Windows Service Tracing中的權限提升CVE-2020-0668漏洞的分析

看完上述內容,你們掌握怎么實現Windows Service Tracing中的權限提升CVE-2020-0668漏洞的分析 的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

阿克| 锡林郭勒盟| 三江| 邛崃市| 元阳县| 保靖县| 京山县| 讷河市| 牡丹江市| 于田县| 安化县| 如东县| 察雅县| 嘉鱼县| 鄂尔多斯市| 葵青区| 长岭县| 霍城县| 长宁区| 紫金县| 玉门市| 大石桥市| 阆中市| 堆龙德庆县| 迁西县| 高淳县| 珲春市| 湖口县| 休宁县| 白城市| 和林格尔县| 武宣县| 临清市| 鄂托克前旗| 平乡县| 茂名市| 慈溪市| 崇左市| 临江市| 应城市| 康乐县|