
إعادة بناء تعليمية لدودة ستكسنت (Stuxnet) لأغراض تحليل البرمجيات الخبيثة والبحث الدفاعي. تتضمن وحدات لتصعيد الامتيازات، ووظائف الروت كيت (rootkit)، وحقن الحمولة في وحدات التحكم المنطقية القابلة للبرمجة (PLC) التي تستهدف أنظمة Siemens Step 7 ووحدات S7 PLC.
يحتوي هذا المستودع على إعادة بناء تعليمية وبحثية بحتة لدودة ستكسنت (Stuxnet) سيئة السمعة. وهو نتاج ساعات لا تُحصى من أعمال الهندسة العكسية التي أجراها مجتمع أبحاث الأمن العالمي على العينات الثنائية الأصلية التي اكتُشفت في عام 2010.
إخلاء مسؤولية: هذا الكود مُقدَّم حصريًا للدراسة الأكاديمية، والتدريب على تحليل البرمجيات الخبيثة، والبحث الدفاعي. ليس المقصود منه استخدامه لأي أغراض خبيثة، ولا يُعد برمجية خبيثة قابلة للنشر. لا يقرّ المؤلفون والمساهمون بالأنشطة غير القانونية أو غير الأخلاقية.
جدول المحتويات
نظرة عامة
المكونات الأساسية
البنية التقنية
تعليمات البناء
الاستخدام
الجانب القانوني والترخيص
شكر وتقدير
تُعرف ستكسنت على نطاق واسع بأنها أول سلاح إلكتروني معروف صُمم لإحداث تدمير مادي لأنظمة التحكم الصناعية (ICS). استهدفت على وجه التحديد برنامج سيمنز Step 7 وأجهزة التحكم المنطقي القابل للبرمجة (PLC) من طراز S7-300/400، وفي النهاية تلاعبت بمحركات تحويل التردد لإتلاف دوّارات أجهزة الطرد المركزي.
هذا المستودع هو كود مصدري مُعاد بناؤه مشتق من الملفات الثنائية المفككة. يحافظ على المنطق الأصلي ونواقل الهجوم مع تنظيم بنية الكود لسهولة القراءة والتحليل.
الخصائص الرئيسية
الهدف: سيمنز SIMATIC WinCC، وStep 7، وأجهزة S7 PLC.
الانتشار: محركات أقراص USB (استغلالات LNK)، ومشاركات الشبكة (Print Spooler)، والند للند (P2P).
الحمولة: تعديل منطق كتل PLC (OB1/OB35) لتغيير ترددات المحركات.
التخفي: قدرات متقدمة للجذور الخفية (Rootkit) (MRxCls.sys، MRxNet.sys) لإخفاء الملفات والعمليات ومفاتيح التسجيل.
يُنظَّم المستودع وفقًا للوحدات الأساسية التي تم تحديدها أثناء تحليل البرمجية الخبيثة الأصلية.
الوحدة: المُحمِّل/الحاقن (Loader/Dropper) اسم الملف: winsta.exe، ~WTR4141.tmp الوصف: نقطة الدخول المسؤولة عن الإصابة الأولية، وتصعيد الامتيازات، ونشر المكونات الأخرى.
الوحدة: تصعيد الامتيازات اسم الملف: ~WTR4132.tmp الوصف: تستغل ثغرة Win32k.sys للحصول على امتيازات على مستوى النظام.
الوحدة: مكتبة ربط S7 اسم الملف: s7otbxdx.dll الوصف: استبدال خبيث للملف الأصلي s7otbxsx.dll. تعترض الاتصال بين Step 7 وجهاز PLC.
الوحدة: مكتبة ربط Step7 اسم الملف: s7aaapix.dll الوصف: تعترض استدعاءات واجهة برمجة تطبيقات AUT (أداة الأتمتة) داخل بيئة هندسة Step 7.
الوحدة: الجذر الخفي (نظام الملفات) اسم الملف: mrxcls.sys الوصف: برنامج تشغيل بوضع النواة يُستخدم لإخفاء ملفات وعمليات ومفاتيح تسجيل ستكسنت عبر ربط SSDT.
الوحدة: الجذر الخفي (الشبكة) اسم الملف: mrxnet.sys الوصف: يصفّي طلبات نظام الملفات لإخفاء الملفات الخبيثة ويتيح الانتشار عبر الند للند (P2P).
الوحدة: الحمولة (الهجوم) اسم الملف: s7plcmain الوصف: المنطق الأساسي المسؤول عن هجوم "التلاعب بالتردد" الذي يُتلف أجهزة الطرد المركزي.
يصف ما يلي التدفق التنفيذي عالي المستوى لإطار عمل ستكسنت.
المرحلة 1: ناقل الإصابة الأولي (USB/الشبكة) المرحلة 2: الحاقن وتصعيد الامتيازات المرحلة 3: فحص البيئة المرحلة 4أ: تم العثور على الهدف (برمجيات سيمنز) -> تثبيت روابط S7 المرحلة 4ب: غير مستهدف -> التدمير الذاتي/الخمول المرحلة 5: مراقبة كتابات PLC المرحلة 6: اكتشاف كتابة OB1/OB35 -> حقن الحمولة المرحلة 7: تعديل مخرجات التردد المرحلة 8: التدمير المادي لأجهزة الطرد المركزي المرحلة 9: تثبيت الجذر الخفي (MRxCls) المرحلة 10: إخفاء الملفات ومفاتيح التسجيل المرحلة 11: تحميل وحدة الشبكة (MRxNet) المرحلة 12: الانتشار عبر الند للند (P2P)
تدفق التنفيذ
استطلاع البيئة: تتحقق الدودة من وجود برمجيات سيمنز محددة (WinCC، Step 7) وأجهزة PLC مستهدفة محددة (S7-315، S7-417).
حقن DLL: تعترض استدعاء الدالة s7blk_write.
حقن الكود: عندما يقوم المستخدم بتنزيل مشروع إلى جهاز PLC، يُلحق الكود الخبيث بكتل OB1/OB35.
التأثير المادي: ينفذ جهاز PLC الكود المتلاعب به، مما يتسبب في دوران محركات التردد المتغير (VFDs) المتصلة بترددات غير طبيعية (عالية/منخفضة)، مما يؤدي إلى تلف ميكانيكي.
تعليمات البناء
مهم: صُممت قاعدة الكود هذه للتحليل الثابت وتصحيح الأخطاء في بيئة افتراضية خاضعة للتحكم. ليس المقصود نشرها مباشرة على أي بنية تحتية حيوية.
المتطلبات
بيئة البناء: Microsoft Visual Studio 2019/2022 (ويندوز) أو mingw-w64.
نظام التشغيل المستهدف: Windows XP / Windows 7 (لتوافق برامج التشغيل).
حزمة برامج التشغيل: Windows Driver Kit (WDK) 7600 (إذا كنت تريد تجميع برامج تشغيل النواة).
بناء وحدات وضع المستخدم
استنساخ المستودع
git clone https://github.com/Sadpainy/Stuxnet.git cd stuxnet-analysis
بناء الحاقن الرئيسي
cd winsta nmake /f Makefile.win
بناء مكتبة ربط S7
cd ../s7otbxdx cl /LD s7otbxdx.c user32.lib ws2_32.lib
هذا الكود مخصص لما يلي:
تحليل البرمجيات الخبيثة: فهم منطق الكود المحدد المستخدم في التهديدات المستمرة المتقدمة (APTs).
البحث الدفاعي: تطوير توقيعات الكشف لأدوات أمن أنظمة التحكم الصناعية (ICS) (مثل قواعد YARA، وتوقيعات Snort).
الدراسة الأكاديمية: فحص التقاطع بين الأمن السيبراني وحماية البنية التحتية الحيوية.
إعداد التحليل
عزل البيئة: استخدم جهازًا افتراضيًا (VMWare/VirtualBox) مع تفعيل شبكة Host-Only. عطّل الاتصال بالإنترنت.
تحميل الوحدات: حلل ملفات .dll و .sys باستخدام أدوات مثل IDA Pro أو Ghidra أو x64dbg.
مراقبة النشاط: استخدم Process Monitor (ProcMon) وProcess Hacker وWireshark لمراقبة السلوك.
الجانب القانوني والترخيص
هذا المشروع مرخّص بموجب رخصة جنو العمومية العامة الإصدار 3.0. راجع ملف LICENSE للحصول على التفاصيل.
الكود الموجود في هذا المستودع هو نتاج هندسة عكسية لأغراض تعليمية فقط. المؤلفون الأصليون لدودة ستكسنت مجهولون، لكن إعادة البناء الواردة هنا هي عمل باحثين مستقلين في مجال الأمن.
لا يدّعي المؤلفون ملكية البرمجية الخبيثة الأصلية.
الكود مُقدَّم "كما هو" دون أي ضمان من أي نوع.
المؤلفون غير مسؤولين عن أي إساءة استخدام أو ضرر ناتج عن هذا الكود.
باستخدامك لهذا المستودع، فإنك تقرّ بأنك وحدك المسؤول عن ضمان الامتثال لجميع القوانين واللوائح المعمول بها.
لم يكن هذا البحث وإعادة البناء ممكنين لولا التحليل الموسع واستخبارات التهديدات التي قدمها بائعو الأمن السيبراني العالميون.
Symantec (ملف W32.Stuxnet)
Kaspersky Lab (ملحمة ستكسنت)
ESET (ستكسنت تحت المجهر)
Amr Thabet وChristian Roggia (research-virus/stuxnet)
هذه إعادة بناء أكاديمية. استخدمها لبناء دفاعات أقوى، لا لإحداث الضرر.