
针对 CVE-2019-5782 和 CVE-2019-13768 的全链 Chrome 漏洞利用,包含自定义 ROP gadgets 和 shellcode,可在 Windows 10 1909+ 上实现任意命令执行。
https://googleprojectzero.blogspot.com/2019/04/virtually-unlimited-memory-escaping.html
利用 CVE-2019-7582 和 CVE-2019-13768/P0 issue 1755
需要更新原始PoC以在Windows 10 1909+上工作。
还需要在特定目标机器上提高可靠性,原始PoC在那里可靠性约为0%(但在另一个目标上约为100%)。
wget https://bootstrap.pypa.io/pip/2.7/get-pip.py -o get-pip.py
python2 get-pip.py
pip2 install cherrypy
python2 server.py
释放对象的替换未发生,因此将分配的0x140大小块的数量从0x88增加到0x8000。
在0x40404040000处分配页面未发生,因此将分配的页面数量从0xc88增加到2*0xc88。
ROP小工具mov rcx, rax ; mov rax, rcx ; add rsp, 28h ; ret在Windows 1909的ntdll.dll中不再存在。取而代之的是使用shell32.dll中的ROP小工具mov rcx, rax ; test rcx, rcx ; setne al ; ret和mov rax, rcx ; add rsp, 0x28 ; ret。
pipe.producer.close()导致已喷洒的0x140大小块被释放。内存清理过快。因此,函数调用被延迟到漏洞利用完成之后。
Shellcode已更改,以便可以使用任意命令(最多shellcode长度0x200)。要编辑shellcode,可以修改shellcode.asm并运行yasm -f bin -o shellcode.bin shellcode.asm,或者使用十六进制编辑器将命令行字符串编辑到shellcode.bin中。当前payload命令为calc。