I haven't posted any poc code anywhere for privilege escalation attack. The poc codes found have nothing to do with privilege escalation. For your information.
7-Zip 是一个自由且免费的归档工具。7-Zip 的命令行版本可用于类 Unix 系统,甚至包括 AmigaOS。同时它也兼容 DOS,可以通过 Dost Portu 或 HX-DOS 扩展在 Windows 命令行中运行。
我将用土耳其语写一些,这样你们也能学点土耳其语。
首先,我想谈谈我发现这个漏洞的过程。我在 WinRAR 上看到了一个利用 XXE 漏洞的 payload。同时,它还利用 HTML Helper 文件,通过 JavaScript 中的 ActiveXObject 和 WScript.Shell 实现命令执行。这与 lolbin 中使用的 HTA 本质上没有区别,我思考如何将这种情况转化为对我有利的局面。
(https://www.exploit-db.com/exploits/47526)
实际上,我的目标是双击 7z、zip、rar 等压缩文件扩展名后,在目标计算机上获取反向 shell,为此我考虑能否使用 HTML Helper 文件。经过使用 WinAFL 进行长时间模糊测试后,我发现 FzGM.exe 存在堆溢出漏洞。但由于堆溢出后权限仍然属于同一用户,这毫无意义。因此我没有使用 CreateRemoteThread,因为我需要调用该 API,而要触发该 API 就需要一个 chm 文件。在分析源码时,我注意到特别是在两个地方调用 Windows API 时存在错误操作,这直接导致了授权问题。这个发现点如下图所示,它在 FzGM.exe 下创建了一个子进程。正常情况下,我们期望这个子进程在 hh.exe 下运行。


如果我没有包含该 API,而是通过函数进行了正确的配置,我会期望在 hh.exe 下创建子进程。但 7-zip.chm 文件会通过自身调用该 API —— 一个典型的例子是,如果你编辑 7-zip.chm 文件并执行命令,就能看到这一点。堆溢出之后,所调用的 API 存在授权问题,之后我利用了 7z.dll 文件中存在的错误配置,为此我已经努力了很长时间。使用 CreateRemoteThread() 没有意义。我需要在 payload 中执行和调用的并不是 HTML Helper API 本身,而是该 API 在 7-zip 中被 hook 的点,并且我能够执行那个点。但这个 payload 仅能与 hh.exe 集成工作,因此它通过拖放等功能运行。7-zip.chm 文件通过 7-zip 的 HELP 按钮调用,而调用地址的“基指针”导向存在授权问题的 payload,从而将我们提升到更高权限的用户。接下来的步骤是在 payload 中包含 psexec,并通过命令 psexec -s cmd.exe 提升为 nt authority/system 的系统权限。

poc 视频:
很多问题都是关于 ActiveX 警告的。这个问题可以这样解决:在 payload 运行之前,通过 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0' -Name '1201' -Value '0' -PropertyType "DWord" 进行检查。如果该值为 1,则弹出提示;如果被赋值为 0,则被绕过。但需要指出的是,这只会影响当前运行 payload 的用户。
我已经向开发者指出了必要的问题,并且 CVE 也已确认。我无法理解为什么有人会自以为是权威,并认为我应该向他们提供 exploit。我已经明确表示会在更新后发布,但在更新之前就出现这种不尊重的行为,我认为这只是因为他们自以为是权威。我可能永远不想发布权限提升攻击的 poc 代码,这是我的自由意志,我根本不在乎任何人对此正确性的质疑。
第一方法:如果 7-Zip 不进行更新,可以删除 7-zip.chm 文件。 第二方法:程序中的所有用户应仅以读取和执行权限访问。
相关 sigma 规则:https://github.com/kagancapar/CVE-2022-29072/blob/main/7z_CVE-2022-29072.yml