win10本地提權0day預警
0x00 漏洞背景
win10中任務調度服務導出的函數沒有驗證調用者的許可權,任意許可權的用戶調用該函數可以獲取系統敏感文件的寫許可權,進而提權。
0x01 漏洞影響
漏洞影響win10和windows server 2016。目前發布的EXP暫時只能用於x64系統。
0x02 漏洞詳情
win10系統Task Scheduler任務調度服務中ALPC調用介面導出了SchRpcSetSecurity函數,該函數能夠對一個任務或者文件夾設置安全描述符。
該服務是通過svchost的服務組netsvcs所啟動的,對應的dll是schedsvc.dll。
在xp系統中,任務存放在C:WindowsTasks目錄,後綴為.job;而win7及以後的版本任務以xml的格式存放在C:WindowsSystem32Tasks目錄。
可能是為了兼容的考慮,SchRpcSetSecurity函數在win10中仍然會檢測C:WindowsTasks目錄下是否存在後綴為.job的文件,如果存在則會寫入DACL數據。如果將job文件硬鏈接到特定的dll那麼特定的dll就會被寫入DACL數據,本來普通用戶對特定的dll只具有讀許可權,這樣就具有了寫許可權,接下來向dll寫入漏洞利用代碼並啟動相應的程序就獲得了提權。
那麼首先需要找到一個普通用戶具有讀許可權而系統具有寫入DACL許可權的dll,EXP中用的是C:WindowsSystem32DriverStoreFileRepositoryprnms003.inf_amd64_4592475aca2acf83Amd64printconfig.dll,然後將C:WindowsTasksUpdateTask.job硬鏈接到這個dll。
在調用SchRpcSetSecurity函數使普通用戶成功獲取了對該dll寫入的許可權之後寫入資源文件中的exploit.dll。
printconfig.dll和系統列印相關,並且沒有被print spooler服務默認啟動。所以隨後調用StartXpsPrintJob開始一個XPS列印。
整個漏洞利用程序編譯出來是個dll,把它注入到notepad中運行,發現spoolsv.exe創建的notepad已經具有SYSTEM許可權,而系統中的printconfig.dll也被修改成了資源文件中的exploit.dll。
0x03 防禦措施
建議用戶安裝360安全衛士等終端防禦軟體攔截利用此類漏洞的攻擊,不要打開來源不明的程序。
0x04 時間線
2018-08-27漏洞詳情公開披露
2018-08-29360CERT發布漏洞預警
0x05 參考鏈接
https://github.com/SandboxEscaper/randomrepo
https://msdn.microsoft.com/en-us/library/cc248452.aspx
TAG:360CERT |