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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
LocalPotato_CVE-2023-21746 — استغلال إثبات المفهوم لتصعيد الامتيازات المحلية على ويندوز (CVE-2023-21746) يسيء استخدام المصادقة المحلية NTLM للحصول على امتيازات SYSTEM عبر الوصول إلى مشاركة SMB واختطاف DLL. | Kitploit
أدوات/GitHubGitHub/muhammad-ali007/localpotato_cve-2023-21746
تصعيد الامتيازاتتحليل الثغرات الأمنيةالاستغلالالحركة الجانبيةما بعد الاستغلالاختبار الاختراقتطوير الحمولاتاستغلال الملفات الثنائية

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
GitHub
muhammad-ali007/localpotato_cve-2023-21746

LocalPotato_CVE-2023-21746

استغلال إثبات المفهوم لتصعيد الامتيازات المحلية على ويندوز (CVE-2023-21746) يسيء استخدام المصادقة المحلية NTLM للحصول على امتيازات SYSTEM عبر الوصول إلى مشاركة SMB واختطاف DLL.

عرض المستودع
322منذ 3 سنواتلم تتم المراجعة بعد

تم الإبلاغ عن ثغرة تصعيد صلاحيات محلية (LPE) في ويندوز إلى مايكروسوفت في 9 سبتمبر 2022 بواسطة Andrea Pierini (@decoder_it) وAntonio Cocomazzi (@splinter_code). كانت الثغرة ستسمح لمهاجم يمتلك حسابًا بصلاحيات منخفضة على جهاز بقراءة/كتابة ملفات تعسفية بصلاحيات SYSTEM.

في حين أن الثغرة بحد ذاتها لن تسمح مباشرة بتنفيذ أوامر بصلاحيات SYSTEM، يمكننا دمجها مع عدة نواقل لتحقيق هذه النتيجة. وبشكل ملائم، في 13 فبراير، تم نشر PoC آخر لتصعيد الصلاحيات بواسطة BlackArrowSec يستغل خدمة StorSvc، مما يسمح للمهاجم بتنفيذ كود بصلاحيات SYSTEM طالما يمكنه كتابة ملف DLL إلى أي دليل في PATH.

يستفيد PoC الخاص بـ LocalPotato من خلل في حالة خاصة من مصادقة NTLM تسمى المصادقة المحلية NTLM لخداع عملية متميزة لمصادقة جلسة يبدأها المهاجم ضد خادم SMB المحلي. ونتيجة لذلك، ينتهي الأمر بالمهاجم بالحصول على اتصال يمنحه الوصول إلى أي مشاركات بصلاحيات العملية المخدوعة، بما في ذلك المشاركات الخاصة مثل C$ أو ADMIN$.

العملية التي يتبعها الاستغلال هي كما يلي:

  • سيقوم المهاجم بتشغيل عملية متميزة للاتصال بخادم مارق تحت سيطرته. يعمل هذا بشكل مشابه لاستغلالات Potato السابقة، حيث يمكن لمستخدم غير متميز إجبار نظام التشغيل على إنشاء اتصالات تستخدم مستخدمًا متميزًا (عادةً SYSTEM).
  • سيقوم الخادم المارق بإنشاء سياق أمان A للاتصال المتميز لكنه لن يعيده فورًا. بدلاً من ذلك، سيشغل المهاجم عميلًا مارقًا يبدأ في الوقت نفسه اتصالًا ضد خادم SMB المحلي (مشاركة ملفات ويندوز) ببيانات اعتماده الحالية غير المتميزة. سيرسل العميل رسالة Type1 لبدء الاتصال، وسيرد الخادم بإرسال رسالة Type2 مع المعرف لسياق أمان جديد B.
  • سيقوم المهاجم بتبديل معرفات السياق من كلا الاتصالين بحيث تستقبل العملية المتميزة سياق اتصال خادم SMB بدلاً من سياقها الخاص. ونتيجة لذلك، سيربط العميل المتميز مستخدمه (SYSTEM) بسياق الأمان B لاتصال SMB الذي أنشأه المهاجم. ونتيجة لذلك، يمكن لعميل المهاجم الآن الوصول إلى أي مشاركة شبكة بصلاحيات SYSTEM!

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

لاحظ أن الثغرة موجودة في بروتوكول NTLM وليس في خادم SMB، لذلك يمكن نظريًا استخدام نفس ناقل الهجوم ضد أي خدمة تستخدم المصادقة عبر NTLM. عمليًا، ومع ذلك، يجب التعامل مع بعض المحاذير عند اختيار البروتوكول المستهدف. يستخدم الـ PoC خادم SMB لتجنب بعض الحمايات الإضافية الموضوعة للبروتوكولات الأخرى ضد نواقل الهجوم المماثلة، وينفذ حتى تجاوزًا سريعًا لجعل الاستغلال يعمل ضد خادم SMB. منشور مؤلف الاستغلال الأصلي - (https://decoder.cloud/2023/02/13/localpotato-when-swapping-the-context-leads-you-to-system/)

حتى الآن، استخدمنا LocalPotato لكتابة ملفات تعسفية على الجهاز المستهدف. للحصول على شل بصلاحيات متميزة، ما زلنا بحاجة إلى معرفة كيفية استخدام الكتابة التعسفية لتشغيل أمر.

مؤخرًا، تم العثور على ناقل تصعيد صلاحيات آخر، حيث يمكن للمهاجم اختطاف DLL مفقود لتشغيل أوامر تعسفية بصلاحيات SYSTEM. المشكلة الوحيدة في هذا الناقل كانت أن المهاجم يحتاج إلى كتابة DLL في PATH الخاص بالنظام لتشغيله. افتراضيًا، يتضمن PATH الخاص بويندوز فقط الدلائل التي لا يمكن للحسابات المتميزة الكتابة فيها. بينما قد يكون من الممكن العثور على أجهزة غيّر فيها تثبيت تطبيقات معينة متغير PATH وجعل الجهاز عرضة للخطر، فإن ناقل الهجوم ينطبق فقط على سيناريوهات معينة. دمج هذا الهجوم مع LocalPotato يسمح لنا بالتغلب على هذا القيد والحصول على استغلال تصعيد صلاحيات يعمل بالكامل.

StorSvc واختطاف DLL كما اكتشف BlackArrowSec (https://github.com/blackarrowsec/redteam-research/tree/26e6fc0c0d30d364758fa11c2922064a9a7fd309/LPE via StorSvc)، يمكن للمهاجم إرسال استدعاء RPC إلى طريقة "SvcRebootToFlashingMode" التي توفرها خدمة "StorSvc"، والتي سينتهي بها الأمر إلى تشغيل محاولة لتحميل DLL مفقود يسمى "SprintCSP.dll". إذا لم تكن معتادًا على RPC، فاعتبرها واجهة برمجة تطبيقات (API) تكشف وظائف بحيث يمكن استخدامها عن بُعد. في هذه الحالة، تكشف خدمة StorSvc عن طريقة SvcRebootToFlashingMode، والتي يمكن لأي شخص لديه وصول إلى الجهاز استدعاؤها. نظرًا لأن StorSvc تعمل بصلاحيات SYSTEM، فإن إنشاء SprintCSP.dll في مكان ما في PATH سيؤدي إلى تحميله كلما تم إجراء استدعاء إلى SvcRebootToFlashingMode.

تجميع الاستغلال رابط الاستغلال - (https://github.com/decoder-it/LocalPotato) لاستخدام هذا الاستغلال، ستحتاج أولاً إلى تجميع كلا الملفين المقدمين:

  • SprintCSP.dll: هذا هو DLL المفقود الذي سنقوم باختطافه. سنحتاج إلى تغيير الأمر لتشغيل شل عكسي.
  • RpcClient.exe: سيقوم هذا البرنامج بتشغيل استدعاء RPC إلى SvcRebootToFlashingMode. اعتمادًا على إصدار ويندوز الذي تستهدفه، قد تحتاج إلى تعديل كود الاستغلال قليلاً، حيث تستخدم إصدارات ويندوز المختلفة معرّفات واجهة مختلفة لكشف SvcRebootToFlashingMode. يمكن العثور على مشاريع كلا الملفين في الدليل "LPE via StorSvc".

لنبدأ بالتعامل مع "RpcClient.exe". كما ذكرنا سابقًا، سنحتاج إلى تغيير الاستغلال اعتمادًا على إصدار ويندوز للجهاز المستهدف. للقيام بذلك، سنحتاج إلى تغيير الأسطر الأولى من "LPE via StorSvc\RpcClient\RpcClient\storsvc_c.c" بحيث يتم اختيار نظام التشغيل الصحيح. سيؤدي هذا إلى ضبط الاستغلال لاستخدام معرّف واجهة RPC الصحيح. الآن بعد تصحيح الكود، دعنا نفتح موجه أوامر مطور ونبني المشروع عن طريق تشغيل الأمر التالي: الأوامر: C:\LPE via StorSvc\RpcClient> msbuild RpcClient.sln C:\LPE via StorSvc\RpcClient> move x64\Debug\RpcClient.exe C:\Users\user\Desktop\ (ستجد الملف التنفيذي المُجمَّع على سطح المكتب الخاص بك.)

الآن لتجميع "SprintCSP.dll"، نحتاج فقط إلى تعديل دالة "DoStuff()" في "C:\LPE via StorSvc\SprintCSP\SprintCSP\main.c" بحيث تنفذ أمرًا يمنحنا وصولًا متميزًا إلى الجهاز. للتبسيط، سنجعل DLL يضيف مستخدمنا الحالي إلى مجموعة المسؤولين. يمكننا أيضًا الحصول على شل عكسي من الهدف إلى جهازنا. نقوم الآن بتجميع DLL عن طريق تشغيل الأمر التالي ونقل النتيجة مرة أخرى إلى سطح المكتب الخاص بنا: الأوامر: C:\LPE via StorSvc\SprintCSP> msbuild SprintCSP.sln C:\LPE via StorSvc\SprintCSP> move x64\Debug\SprintCSP.dll C:\Users\user\Desktop\

نحن الآن جاهزون لإطلاق الاستغلال. تأكد من امتلاكك لملفات الاستغلال "LocalPotato.exe" و"RpcClient.exe" و"SprintCSP.dll".

  • لنبدأ بالتحقق من أن مستخدمنا الحالي ليس جزءًا من مجموعة المسؤولين.
  • لاستغلال "StorSvc" بنجاح، نحتاج إلى نسخ "SprintCSP.dll" إلى أي دليل في PATH الحالي. يمكننا التحقق من PATH عن طريق تشغيل الأمر التالي: C:> reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" -v Path
  • سنستهدف دليل %SystemRoot%\system32، والذي يتم توسيعه إلى "C:\windows\system32". ومع ذلك، يجب أن تكون قادرًا على استخدام أي من الدلائل.
  • باستخدام LocalPotato، يمكننا نسخ SprintCSP.dll إلى system32 حتى لو كنا نستخدم مستخدمًا غير متميز: C:\Users\user\Desktop> LocalPotato.exe -i SprintCSP.dll -o \Windows\System32\SprintCSP.dll
  • مع وضع DLL في مكانه، يمكننا الآن تشغيل "RpcClient.exe" لتشغيل الاستدعاء إلى "SvcRebootToFlashingMode"، مما ينفذ الحمولة في DLL الخاص بنا بشكل فعال. C:\Users\user\Desktop> RpcClient.exe
  • للتحقق مما إذا كان استغلالنا يعمل كما هو متوقع، يمكننا التحقق مما إذا كان مستخدمنا الآن جزءًا من مجموعة المسؤولين. C:> net user user

الاكتشاف والتخفيف

الاكتشاف الآن بعد أن فهمنا كيف يعمل استغلال localpotato وكيف يمكن ربطه مع خدمة StorSrv لتنفيذ كود بصلاحيات SYSTEM، حان الوقت لمعرفة كيف يمكن اكتشاف ذلك داخل النظام وكيفية منع مثل هذه الهجمات.

قاعدة YARA: نظرًا لأن هذا الهجوم يتضمن ملفًا تنفيذيًا يعمل في سطر أوامر الطرفية مع وسائط، فإن طريقتين شائعتين لاكتشاف هذا النشاط ستكونان استخدام أداة مطابقة الأنماط YARA لاكتشاف أنماط الملفات وفحص الأحداث الناتجة عن تنفيذ أداة الاختراق هذه localpotato.exe. نظرًا لأن الهجوم يستخدم أداة الاختراق المعروفة باسم localpotato.exe، يمكننا إنشاء قاعدة YARA لاكتشاف وجود هذه الأداة داخل النظام باستخدام YARA أو أدوات اكتشاف أخرى مثل THOR لفحص الجهاز. (قاعدة YARA مرفقة في هذا المستودع، تبحث هذه القاعدة البسيطة عن أنماط سلاسل شائعة في الملف التنفيذي لـ localpotato).

قاعدة Sigma: SIGMA هي لغة توقيعات عامة تُستخدم لكتابة قواعد اكتشاف بناءً على الأنماط الموجودة في سجلات الأحداث. من أجل اكتشاف localpotato في الشبكة، من المتوقع أن تكون مراقبة السجلات المركزية مفعلة في المكان. قاعدة SIGMA التالية مأخوذة من المستودع الرسمي لـ SIGMA (https://github.com/SigmaHQ/sigma/blob/master/rules/windows/process_creation/proc_creation_win_hktl_localpotato.yml).

  • اكتشاف LocalPotato (القاعدة مرفقة في المستودع)
  • اكتشاف اختطاف Storsvc وSprintCSP.dll تعلمنا أن ثغرة localpotato يتم دمجها مع Storsvc لاختطاف SprintCSP.dll والتنفيذ كـ SYSTEM. يمكن استخدام قاعدة SIGMA المرفقة التالية المأخوذة من GitHub الرسمي لاكتشاف هذا النشاط.

يمكننا استخدام قواعد sigma هذه للتحويل إلى أداة الاكتشاف / المراقبة الموجودة والبحث في سجلات الأحداث لاصطياد الهجمات المحتملة.

التخفيف

  • تحديثات التصحيحات: يستهدف استغلال localpotato ثغرة في نظام التشغيل ويندوز. تأكد من تحديث جميع الأنظمة بأحدث التصحيحات الأمنية لمنع المهاجمين من استغلال هذه الثغرة. لا تؤثر هذه الثغرة على نظام التشغيل المُصَحَّح.
  • مبدأ الامتياز الأقل: إحدى الطرق لمنع المهاجمين من استغلال localpotato هي تطبيق مبدأ الامتياز الأقل. وهذا يعني تقييد وصول المستخدم فقط إلى الموارد التي يحتاجها لأداء وظائفه. من خلال القيام بذلك، تقل احتمالية حصول المهاجمين على الصلاحيات المرتفعة المطلوبة لتنفيذ الاستغلال.
  • مراقبة النشاط المشبوه: استخدم أدوات مثل "Splunk" لمراقبة النشاط المشبوه على شبكتك. ابحث عن علامات هجوم localpotato، مثل نشاط عمليات غير عادي أو محاولات لتنفيذ كود خبيث.
تنزيل الأداة