Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2021-43229 — CVE-2021-43229 دليل تشغيل | Kitploit
أدوات/GitHubGitHub/citizen13x/cve-2021-43229
تحليل الثغرات الأمنيةالاستغلالالهندسة العكسيةالتعلم والتعليماستغلال الملفات الثنائية
GitHubcitizen13x/cve-2021-43229

CVE-2021-43229

CVE-2021-43229 دليل تشغيل

عرض المستودع
11منذ 4 سنواتلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2021-43229 دليل تفصيلي

معلومات عامة

ثغرة رفع الامتياز في Windows NTFS

مميزة عن:

  • CVE-2021-43230
  • CVE-2021-43231

التصحيح: 14 ديسمبر 2021

وفقًا لـ @AravGarg3 على Twitter، يبدو أن CVE-2021-43229 قابل للاستغلال ومرتبط بـ فيضان عدد صحيح.

المصدر: https://twitter.com/AravGarg3/status/1479447843458863104

إصدارات Windows 10

الإصدارات الفرعية من Windows 10تواريخ الإصدار
138711/22/2021
141512/14/2021

الجزء الأول - التباين (Diffing)

باستخدام BinDiff مع IDA Pro، نتائج مقارنة التصحيح مع التغييرات التالية:

يبرز ثلاثة مرشحين في المقدمة:

  • NtfsRenameToPrivateDir
  • TxfAllocateAndStoreNameForTxLogging
  • TxfAllocateFullFilePathForChangeNotify

وفقًا لـ دليل تحديث الأمان من Microsoft لشهر ديسمبر، أربعة CVEs مرتبطة بـ NTFS:

  • CVE-2021-43229: Windows NTFS Elevation of Privilege Vulnerability
  • CVE-2021-43230: Windows NTFS Elevation of Privilege Vulnerability
  • CVE-2021-43231: Windows NTFS Elevation of Privilege Vulnerability
  • CVE-2021-43240: NTFS Set Short Name Elevation of Privilege Vulnerability

يبدو أن CVE-2021-43240 مرتبط بـ NtSetShortNameInfo.

جميع NtfsRenameToPrivateDir و TxfAllocateAndStoreNameForTxLogging و TxAllocateFullFilePathForChangeNotify لديهم نفس التحقق الجديد من الطول، ويبدو أنهم مرتبطون بـ CVE-2021-43229 و CVE-2021-43230 و CVE-2021-43231، وليس بالضرورة بهذا الترتيب. حاليًا، ليس من الممكن معرفة أي منها، Microsoft بخيلة قليلاً بشأن هذه المعلومات.

التحليل

في جميع CVEs الثلاثة، يحدث فيضان عدد صحيح أثناء حساب حجم التخصيص (طول مسار الدليل + طول اسم الملف)، مما يؤدي إلى تجاوز سعة المخزن المؤقت القائم على التجمّع مع memmove التاليين لمسار الدليل واسم الملف.

الجزء الثاني - المسار

المحاولة الأولى: NtfsRenameToPrivateDir

المسار إلى NtfsRenameToPrivateDir موضح أدناه:

root@kitploit:~
NtfsCommonSetInformation
       |__________________
       |                  |
       v                  v
NtfsSetLinkInfo   NtfsSetRenameInfo
       |__________________|
       |
       v
NtfsRemoveSupersededTarget
       |
       v
NtfsRenameToPrivateDir

أولاً، لاستدعاء NtfsCommonSetInformation، فقط قم باستدعاء NtSetInformationFile. ثم، للمرور عبر NtfsSetLinkInfo و NtfsSetRenameInfo، استخدم FileLinkInformationEx و FileRenameInformationEx على التوالي كفئة معلومات الملف في NtSetInformationFile.

للوصول إلى NtfsRemoveSupersededTarget عبر NtfsSetRenameInfo، من الضروري تعيين علامات FILE_RENAME_REPLACE_IF_EXISTS و FILE_RENAME_POSIX_SEMANTICS. أعد تسمية ملف باسم ملف موجود للوصول إلى NtfsRemoveSupersededTarget. بالنسبة لـ NtfsRenameToPrivateDir، الأمر صعب بعض الشيء، لأن الملف المستبدل يجب أن يكون مفتوحًا بواسطة أي عملية.

لسوء الحظ، يتم إجراء فحص الطول قبل استدعاء NtfsRemoveSupersededTarget.

الطريقة مع NtfsSetLinkInfo مشابهة لـ NtfsSetRenameInfo، فقط أسماء العلامات تختلف، ومعانيها لا تزال كما هي. ولكن مثل NtfsSetRenameInfo، يتم إجراء فحص آخر قبل استدعاء NtfsRemoveSupersededTarget.

المحاولة الثانية: TxfAllocateAndStoreNameForTxLogging

المسار إلى TxfAllocateAndStoreNameForTxLogging موضح أدناه:

root@kitploit:~
NtfsCommonCreate
      |
      v
NtfsCreateNewFile
      |
      v
TxfNewFileCreate
      |
      v
TxfAllocateAndStoreNameForTxfLogging

أولاً، لاستدعاء NtfsCommonCreate، فقط قم باستدعاء CreateFile.

الوظيفة TxfNewFileCreate مسبوقة بـ Txf والتي تعني "Transactional NTFS" ويتم استدعاؤها عند إنشاء ملف معاملات. يتم استدعاء TxfAllocateAndStoreNameForTxfLogging أثناء العملية لتخزين مسار الملف المعامل.

استدعاءان فقط ضروريان:

  • CreateTransaction
  • CreateFileTransacted

الجزء الثالث - إثبات المفهوم (PoC)

الكود القابل للثغرة لـ TxfAllocateAndStoreNameForTxLogging موضح أدناه:

root@kitploit:~
...
and     di, 2
add     di, [rsi+UNICODE_STRING.Length]                      ; File name
add     di, [rsp+68h+RelativeNormalizedDirectoryPath.Length] ; OVERFLOW HERE
cmp     [rsp+68h+arg_20], r12b
jnz     loc_16592C

movzx   edx, di
add     rdx, size UNICODE_STRING ; NumberOfBytes
mov     ecx, cs:PoolType
or      ecx, 10h        ; PoolType
mov     r8d, 'afxT'     ; Tag
call    cs:__imp_ExAllocatePooliWthTag
...

من أجل تفعيل الفيضان، من الضروري إنشاء ملف بطول زائد، أكثر من 0xFFFF بايت (32767 حرفًا).

المشكلة التي تظهر هي أن اسم الملف أو الدليل لا يمكن أن يكون أكبر من 256 حرفًا - بما في ذلك حرف NULL. لحل هذه المشكلة، سيكون استخدام المجلدات الفرعية العميقة ضروريًا. بشكل غريب، ليس الأمر سهلاً للغاية، حتى مع إنشاء المجلدات الفرعية بنجاح، لا يمكن إنشاء الملف الفرعي، بالتأكيد بسبب بعض الفحوصات التي تم إجراؤها مسبقًا.

باستخدام شريط explorer يمكن ملاحظة التنسيق المستخدم لعرض مسار الدليل. ليس ما توقعته، فبدلاً من استخدام مسار "كلاسيكي"، يستخدم explorer التنسيق القديم لـ DOS، التنسيق القصير 8.3.

الاحتفاظ بإنشاء المجلدات الفرعية كما كان من قبل واستخدام الاسم القصير للمجلدات الفرعية أثناء إنشاء الملف يقوم بالمهمة.

من المهم ملاحظة أنه سيتم إضافة 16 بايت إلى الحجم المفيض، وهو حجم UNICODE_STRING الذي سيمثل المسار النهائي. وذلك لأن الذاكرة المطلوبة ستحتوي على UNICODE_STRING متبوعًا بمخزن هذا UNICODE_STRING.

الطريقة:

  • إنشاء مجلدات فرعية باسم طويل
  • إنشاء ملف باسم طويل وأسماء قصيرة لمسار الدليل

الظروف الحالية:

  • الفيضان يكتب فوق ما يعادل 64 كيلوبايت
  • حجم الذاكرة المخصصة يصل إلى 0x20C بايت
  • الذاكرة المخصصة موجودة في التجمّع المقسم إلى صفحات (Paged Pool)

الجزء الرابع - المؤشرات

تقرير مثير من Synacktiv في SSTIC 2020 يمكن أن يكون فكرة للاستكشاف، من خلال استهداف VS Heap.

تم تقديم CVE-2020-17087، حالة مماثلة من الاستغلال، بواسطة PixiePoint Security باستخدام التقنية المذكورة أعلاه.

تنزيل الأداة
SimiConfFunctionInfo
NOK0.980.99NtfsCommonSetInformation$fin$0تعديلات القفز
0.970.99NtSetShortNameInfo
0.960.99NtfsUpdateSecurity
NOK0.910.94NtfsRenameToPrivateDir$fin$1تعديلات القفز
0.890.98NtfsInitializeFileInDirectory
OK0.880.95TxfAllocateAndStoreNameForTxLoggingفحص الطول
OK0.870.93NtfsRenameToPrivateDirفحص الطول
OK0.810.95TxfAllocateFullFilePathForChangeNotifyفحص الطول
0.760.94NtfsCommonSetInformation