
PoC يستغل Aligned Chunk Confusion في Segment Heap لنواة Windows
يحتوي هذا المستودع على استغلال PoC يستخدم تقنية استغلال تُسمى "Aligned Chunk Confusion". يمكن العثور على تفاصيل التقنية في الورقة البحثية.
يستغل هذا الاستغلال تجاوزًا في سعة الكومة (heap overflow) في كومة نواة ويندوز لرفع صلاحياته من Low إلى SYSTEM.
كان الهدف من البحث هو تطوير استغلال عام لثغرة تجاوز سعة الكومة في Pool الخاص بالنواة.
عند استغلال تجاوز سعة الكومة، يكون حجم الكائن القابل للاستغلال (الكائن الذي يفيض) مهمًا، لأنه سيؤثر على مكان وكيفية تخصيصه. أيضًا، نوع الـ pool الذي سيُخصص فيه له صلة لنفس الأسباب.
لهذا، لكي يكون الاستغلال عامًا، يجب أن:
يمكن للاستغلال المعروض أن يعمل في كل من PagedPool و NonPagedPool؛ ويستخدم تقنيات مشابهة مع كائنات مختلفة.
الثغرة المستغلة ليست حقيقية، وهي مُنشأة عبر برنامج تشغيل (driver) يعرض تجاوز سعة كومة تحت السيطرة الكاملة.
الاستغلال هو PoC وليس مستقرًا تمامًا. يعمل غالبًا مع الأحجام من 0x130 إلى 0x300، لكن يمكن تكييفه ليعمل مع أي حجم. يمكن أيضًا تحسين استقرار الاستغلال بشكل كبير باستخدام تقنيات أفضل للتحكم في الكومة (heap massaging).
يمكن تجميع برنامج التشغيل باستخدام Visual Studio، باستخدام الحل الموجود في Driver.
يمكن لملف makefile تجميع الاستغلال كاملًا المكتوب بلغة C.
يعتمد على gcc-mingw-w64-x86-64.
make
يمكن تجميعه في وضع التصحيح (debug mode)، والذي سيضيف فحوصات باستخدام برنامج التشغيل ومخرجات أكثر تفصيلًا.
make debug
تم تقديم هذا العمل في SSTIC 2020 وفي OPCDE 8. شرائح كلا العرضين متاحة هنا.