用于 CVE-2022-26809 的 PoC,分析和注意事项见 github.io。
该 PoC 是通过重写 Impacket 函数编写的。
测试环境:impacket 版本 0.10.0
该 PoC 尚未被完全测试,因为它应该触发该漏洞, 即整数溢出,导致堆上的缓冲区溢出,需要在发送 1048576 个数据包后才会触发,因为 1048576*4096 溢出了 32 位整数。
我没有找到任何绕过大小限制的方法,在我看来,16 位的分片长度会与真实负载大小进行核对,两者必须保持一致。
局限性:
该项目包含 rpcrt dll 的易受攻击版本和已修补版本,RPC 服务器在这里:RPC 服务器
最后,我在一次分析结束时编写了这个 PoC,只是为了挑战自己,并对 RPC 实现有更多了解。
促使我编写这个 PoC 的分析在我的 GithubPages 上。