7-Zip 是开源的免费软件。大部分代码都在 GNU LGPL 许可下。代码的某些部分在 BSD 3 条款许可下。代码的某些部分也有 unRAR 许可限制。阅读 7-Zip 许可证信息。
您可以在任何计算机上使用 7-Zip,包括商业组织中的计算机。您无需注册或支付 7-Zip。
CVE-2022-29072
Windows 上的 7-Zip 到 21.07 允许在扩展名为 .7z 的文件被拖到帮助>内容区域时进行权限升级和命令执行。
7-zip 软件中包含的零日漏洞是基于 7z.dll 的错误配置和堆溢出。7-zip软件安装后,HELP>contents内容中的帮助文件通过Windows HTML Helper文件工作,但命令注入后,7zFM.exe进程下出现子进程,
这是在命令注入之后看到的,这很有趣,在这种情况之后,7-zip 和 WinAFL 进行了 fuzzing 过程。由于基于堆的溢出漏洞和错误授权,注意到当使用7z.dll文件的权力应用进程注入技术(在内存中)并再次调用命令提示符时,它被授权在cmd.exe 使用管理员模式。在这个过程之后开发的payload中,psexec.exe文件被用作原始文件;
由于命令“psexec -s cmd.exe -nobanner”,已经访问了
NT AUTHORITYSYSTEM 权限。
在这个阶段,7-zip 表示该漏洞是由 hh.exe 引起的,但他们被告知如果有来自 hh.exe 的命令注入,则应该在 hh.exe 下创建一个子进程,所以特别是 heap-此漏洞的溢出端不会与社区共享。
查看漏洞的发现阶段;
众所周知,Microsoft HELPER 即 hh.exe 文件“html 帮助。全名 microsoft html 帮助可执行文件。打开带有 chm 扩展名的帮助文件的程序。” 被定义为。XXE、Command Execution等很多操作都是通过hh.exe文件进行的。在每个使用 hh.exe 接口的程序中都可能看到 XXE 或命令执行等漏洞。在发现 WinRAR 检测到的 XXE 漏洞后,我想到了这个问题。(https://www.exploit-db.com/exploits/47526) 虽然 7-zip 的开发者说微软现在应该修复从 hh.exe 获得的命令执行权限,但观察到最后,这要归功于 7zFM.exe 中的堆溢出和命令hh.exe中的执行功能,在管理员模式下提供权限提升。
poc视频:
https://user-images.githubusercontent.com/33525376/163654035-d40ca72a-7dbc-425f-ade2-3820cfababb2.mp4
缓解措施
第一种方法:如果 7-zip 没有更新,删除 7-zip.chm 文件就足以关闭漏洞。
第二种方法:7-zip 程序应该只有读取和运行权限。(适用于所有用户)
https://github.com/kagancapar/CVE-2022-29072/blob/main/README.md
原文始发于微信公众号(Khan安全攻防实验室):CVE-2022-29072 7-zip 权限升级和命令执行