Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2021-40444 — CVE-2021-40444 - استغلال RCE كامل التسليح لـ Microsoft Office Word | Kitploit
أدوات/GitHubGitHub/klezvirus/cve-2021-40444
توليد الحمولةتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبتحليل البرمجيات الخبيثةالقيادة والسيطرةالتعلم والتعليم
GitHubklezvirus/cve-2021-40444

CVE-2021-40444

CVE-2021-40444 - استغلال RCE كامل التسليح لـ Microsoft Office Word

عرض المستودع
832164127منذ 2 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

سلاح كامل لـ CVE-2021-40444

مُولّد مستندات docx خبيثة لاستغلال ثغرة CVE-2021-40444 (تنفيذ عن بُعد في Microsoft Office Word)، ويعمل مع ملفات DLL عشوائية.

تحديث 31/05/2022 - CVE-2022-30190 - Follina

الآن أصبح المُولّد قادرًا على إنشاء المستند المطلوب لاستغلال هجوم "Follina" أيضًا (الاستفادة من ms-msdt).

خلفية

على الرغم من وجود العديد من PoCs على الإنترنت، فقد قررت أن أجرب بنفسي تحويل هذه الثغرة إلى سلاح عملي، لأن ما وجدته متاحًا كان يفتقر إلى المعلومات القيّمة التي تستحق المشاركة، خاصةً مع أن Microsoft أصدرت بالفعل تصحيحًا لهذه الثغرة.

حتى الآن، المصادر القيّمة الوحيدة التي رأيتها لإنشاء مُولّد يعمل بكامل طاقته هي:

  • مدونة من Ret2Pwn
  • تغريدة من j00sean
  • تغريدة من wdormann

المصادر أعلاه توضح الكثير من المتطلبات اللازمة لبناء سلسلة كاملة. لتجنب تكرار الكثير من المعلومات غير الضرورية، سألخص التفاصيل ذات الصلة.

سلسلة الاستغلال

  1. يتم فتح ملف docx
  2. العلاقة المخزنة في document.xml.rels تشير إلى HTML ضار
  3. يتم تشغيل معاينة Internet Explorer لفتح رابط HTML
  4. تحتوي JScript داخل HTML على كائن يشير إلى ملف CAB، وإطار iframe يشير إلى ملف INF، مسبوقًا بالتوجيه ".cpl:"
  5. يتم فتح ملف cab، ويُخزّن ملف INF في دليل %TEMP%\Low
  6. بسبب ثغرة اجتياز المسار (ZipSlip) في CAB، من الممكن تخزين INF في %TEMP%
  7. ثم، يتم فتح ملف INF بالتوجيه ".cpl:"، مما يتسبب في التحميل الجانبي لملف INF عبر rundll32 (إذا كان هذا ملف DLL)

المتطلبات المُغفلة

هناك العديد من المتطلبات المُغفلة لهذا الاستغلال لكي يعمل، مما تسبب حتى في فشل PoCs جيدة، مثل هذا PoC من lockedbyte، في العمل بشكل صحيح.

ربما لم يقم أحد بنشرها صراحةً لتجنب استغلال الثغرة أكثر. لكن الآن تم تصحيحها، لذا لا ينبغي أن تسبب الكثير من المتاعب لنشر التفاصيل.

ملف HTML

وفقًا لهذه التغريدة من Will Dormann، يجب أن يكون حجم HTML على الأقل 4096 بايتًا من أجل تشغيل "المعاينة" داخل MS Word.

ملف CAB

يحتاج ملف CAB إلى تعديل بايتات لتجنب أخطاء الاستخراج ولتحقيق ZipSlip:

  • يجب أن يصبح filename.inf ../filename.inf
  • filename.inf يجب أن يكون بالضبط <12-char>.inf ليس صحيحًا تمامًا، الجزء المهم هو تعديل coffCabStart
  • CFFOLDER.typeCompress يجب أن يكون 0 (غير مضغوط)
  • يجب زيادة CFFOLDER.coffCabStart بمقدار 3 (بسبب إضافة '../')
  • CFFOLDER.cCfData يجب أن يكون 2
  • يجب أن يكون CFFILE.cbFile أكبر من CFHEADER.cbCabinet بأكمله
  • CFDATA.csum يجب إعادة حسابه (أو تصفيره) [اختياري]

أسباب هذه القيود كثيرة، ولم أمضِ وقتًا كافيًا لفهمها كلها بعمق، ولكن دعنا نرى الأهم:

  • TypeCompress: إذا كان CAB مضغوطًا، فإن الحيلة لفتحه داخل كائن ملف لتشغيل كتابة INF ستفشل غير صحيح، لقد تمكنت من تحقيق نفس النتيجة بعينة مضغوطة بـ MSZIP
  • CoffCabStart: يعطي CoffCabStart الموضع المطلق لأول بنية CFDATA، وبما أننا أضفنا '../'، نحتاج إلى زيادة هذا بمقدار 3 للإشارة إلى الملف (هذا أقرب إلى تخمين)
  • cCfData: نظرًا لوجود ملف واحد فقط، يجب أن يكون لدينا CFDATA واحد فقط، لست متأكدًا لماذا يجب أن يكون مضبوطًا على 2 بالفعل، يمكننا تركه كـ 1
  • cbFile: المثير للاهتمام، إذا انتهى استخراج CAB بدون أي خطأ، فسيتم وضع علامة على ملف INF للحذف بواسطة WORD، مما يفسد الاستغلال. الطريقة الوحيدة لمنع ذلك هي جعل WORD يعتقد أن الاستخراج فشل. إذا تم تعريف قيمة cbFile على أنها أكبر من ملف الكابينة نفسه، فسيصل المستخرج إلى نهاية الملف قبل قراءة جميع البايتات المحددة في cbFile، مما يسبب خطأ في الاستخراج.
  • [اختياري] يبدو أن هذه القيمة لا يتم التحقق منها بواسطة MS Word. على أي حال، للحصول على CAB صحيح، يجب إعادة حساب قيمة csum. لحسن الحظ، كما أشار j00sean ووفقًا لوثائق MS، يمكن أن تكون هذه القيمة 0

ملاحظة1: يكتشف Defender الآن ما إذا كان ملف CAB يحتوي على PE باستخدام قيمة _IMAGE_DOS_HEADER.e_magic كتوقيع، مما قد يمنع تضمين ملفات PE في CAB. هل يمكن تجاوز هذا التوقيع؟ لست متأكدًا ولكن، كما لوحظ سابقًا، هذه ثغرة تم تصحيحها، لذا لا أخطط لاستثمار المزيد من الوقت في هذا. الأمر متروك للقارئ الفضولي لتطوير هذا أكثر.

ملاحظة2: يحجب تصحيح Microsoft مخططات URI التعسفية، ويبدو أنه يستخدم نهج القائمة السوداء (هذا مجرد افتراض)

هجوم DLL

سلسلة الهجوم الرئيسية المرتبطة بـ CVE-2021-40444 هي هجوم DLL الذي يتم تحميله عبر مخطط .cpl URI. لاستغلال ذلك، يحتاج المهاجم إلى إنشاء DLL مصمم خصيصًا. إذا كنت تريد اختباره، جرب سكربت evildll-gen الخاص بي.

JScript، VBScript، Java، MSIexec، ...

كما أشار Max Maluin، من الممكن التفاعل مع عدة أنواع ملفات بإساءة استخدام IE و مخطط URI المرتبط بامتداد الملف. بينما قد تكون هذه طريقة جيدة لاستغلال IE، إلا أن لها قيودًا.

في الواقع، يجب ملاحظة أن الطريقة المستخدمة في الاستغلال لتنزيل الملفات تعتمد على تحديثات تحكم ActiveX، ولا يمكن استخدامها لتنزيل ملفات عشوائية. وفقًا لوثائق Microsoft، يمكن أن تشير علامة codebase فقط إلى بضعة أنواع ملفات: OCX و INF و CAB.

حتى لو تمكنا من تنزيل ملف OCX أو INF مباشرة، لا يزال لا يمكننا التأكد من تنزيل الملف في الموقع الصحيح داخل النظام. مع استغلال الكابينة، من الممكن نقل ملف .inf إلى مسار معروف باستخدام اجتياز المسار، لكن في أي حالة أخرى سيتم تخزين الملف في دليل عشوائي، مما يجعل من المستحيل تقريبًا الإشارة إليه.

حتى اليوم، لم أجد طريقة لربط التنزيل والتنفيذ بدون ملف CAB.

ملاحظة: بالحديث عن IE فقط، يمكن أن يكون تهريب HTML سيناريو محتملاً لاستغلال الثغرة.

هجوم خالٍ من الكابينة باستخدام ملف RAR هجين

تم الكشف عن هذه التقنية لأول مرة بواسطة Eduardo Braun على تويتر وشرحت بالتفصيل في هذه الورقة.

يرجى ملاحظة أنه باستخدام هذه التقنية، تختلف سلسلة الهجوم قليلاً. يتطلب هذا الهجوم من المستخدم تنزيل ملف RAR مصمم خصيصًا، يتم الحصول عليه من خلال ربط سكربت WSF صالح وملف RAR صالح. بمجرد فتحه، سيحتوي RAR على DOCX مع مرجع إلى HTML، والذي بدوره سيحاول تحميل ملف RAR كسكربت WSF.

للتلخيص:

  1. يتم تنزيل ملف RAR مصمم خصيصًا (على الأرجح مجلد التنزيلات)
  2. يتم استخراج DOCX وفتحه
  3. العلاقة المخزنة في document.xml.rels تشير إلى HTML ضار
  4. يتم تشغيل معاينة IE لفتح رابط HTML
  5. تحتوي JScript داخل HTML على سكربت / iframe يشير إلى ملف RAR، مسبوقًا بمخطط ".wsf:" URI
  6. نظرًا لأن RAR تم تصميمه ليكون في الوقت نفسه ملف RAR صالح وسكربت WSF صالح، يتم تنفيذ السكربت

ما هي PoCs للاستغلال التي ينفذها الأداة

يمكن للأداة المولدة حاليًا إعادة إنتاج الهجمات التالية:

الهجومقوالب HTMLالهدفطريقة التسليمطريقة التنفيذيعمل
النسخة الأصلية من الهجومcab-orig-*WORDDOCXCAB + DLLنعم
هجوم j00sean الخاص بـ IE فقطcab-orig-j00sanIEHTMLCAB + DLLنعم
نسختي بدون DLLcab-uri-*WORDDOCXCAB + JS/VBSلا1
هجوم Eduardo B. "CABless" باستخدام RARcabless-rar-*WORDRARWSFنعم
هجوم j00sean المعدل + تهريب HTMLcabless-smuggling-*IEHTMLJS/VBSنعم2
هجوم Follinacabless-msdt-*WORDDOCX/RTFMSDT + PSنعم3

1لا يتم تنزيل CAB بشكل صحيح في بعض البيئات

2يحتاج المستخدم إلى النقر على "حفظ" لتنزيل الملف على IE

3لا يعمل حقًا على جميع إصدارات Windows/MS Word

محلل ملفات CAB

تنزيل الأداة