
استغلال سلسلة كاملة Chrome 71.0.3578.98
https://googleprojectzero.blogspot.com/2019/04/virtually-unlimited-memory-escaping.html
استغلالات CVE-2019-7582 و CVE-2019-13768/P0 issue 1755
يستهدف Chrome 71.0.3578.98
لزم تحديث إثبات المفهوم الأصلي ليعمل على Windows 10 1909+.
كذلك كان ضرورياً زيادة الموثوقية على جهاز مستهدف معين حيث كانت موثوقية إثبات المفهوم الأصلي ~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 لم تعد موجودة في ntdll.dll على Windows 1909. بدلاً من ذلك، تُستخدم أدوات ROP mov rcx, rax ; test rcx, rcx ; setne al ; ret و mov rax, rcx ; add rsp, 0x28 ; ret في shell32.dll.
كان pipe.producer.close() يتسبب في تحرير الكتل المرشوشة بحجم 0x140. كانت الذاكرة تُنظف بسرعة كبيرة. لذلك تم تأجيل استدعاء الدالة حتى اكتمال الاستغلال.
تم تغيير شيل كود بحيث يمكن استخدام أمر تعسفي (يصل طوله إلى 0x200). لتعديل شيل كود، إما قم بتعديل shellcode.asm وشغل yasm -f bin -o shellcode.bin shellcode.asm أو قم بتحرير سلسلة الأوامر بالنظام الست عشري في shellcode.bin. الأمر الحالي في الحمولة هو calc.