تطوير البرامج الخبيثة Malware Dev

تطوير المالوير الجزء الثاني : البدء بالمشروع وهيكلية العمل

تناولنا في الجزء الأول في سلسلة تطوير المالوير الأفكار والمبادئ الرئيسية لكتابة 

أي مالوير بشكل عام , وفي هذا الجزء سوف نقوم بشرح المبادئ العامة لكتابة 

متحكم للمالوير ويسمى ب(C2).

:(Structure)الهيكلية 

تكون الهيكلية العامة للمتحكم عادةً عبارة عن Client  و  Server, اما الكلاينت فيكون هو البرمجية التي تعمل على النظام المستهدف , والسيرفر هو المتحكم الذي يرسل الاوامر الى البرمجية.

وكما تحدثنا سابقاً عن لغة البرمجة , فيمكن ان تكون البرمجية مكتوبة بعدة لغات مثل c/c++/c#/go/Nim/rust/delphi..etc 

كذلك ايضاً المتحكم يمكن ان يكون مكتوب بنفس هذه اللغات البرمجية .

يوضح الشكل التالي الية الاتصال بين المتحكم والبرمجية المنصبة على نظام المستهدف :-

) :-The Configurationبيانات التكوين (

وهي عبارة عن بيانات تخزن داخل البرمجية التي ستثبت على الأنظمة المستهدفة 

ومنها:

-الهوست او الاي بي الخاص بالسيرفر.

– معمارية الأنظمة التي ستستهدف (x86/x64).

-بيانات أخرى متعلقة بالنظام المستهدف مثل الدومين , اسم الجهاز , المنطقة الجغرافية ..الخ

ويتم تخزين هذه البيانات اما داخل البرمجية في قسم (.data) وهو عبارة عن قسم 

داخل الملفات التنفيذية (PE Files) يستخدم لتخزين جميع المتغيرات الثابتة في وقت التشغيل (Runtime).

او من خلال جلبها من طرف ثالث خارجي , وتكون هذه البيانات عادةً مشفرة 

بإحدى خوارزميات التشفير مثل AES/XOR/RSA/ BlueFish..etc

لضمان عدم التعرف عليها بشكل مباشر من أنظمة الحماية او فرق التحليل الجنائي.

كما وجب التنويه ان هناك ايضاً نوعان للبرمجيات التي يتم تنصيبها على الأنظمة 


المستهدفة وهي : برمجيات مرحلية وبرمجيات غير مرحلية .

البرمجيات المرحلية (Staged Payloads) :-

وهي البرمجيات التي تنفذ العمليات الخاصة بها على عدة مراحل , بمعنى ان 

البرمجية لا تقوم بتشغيل كافة الخصائص مرة واحدة بل تحمل كل خاصية عن بعد 

من الهوست , على سبيل المثال , اذا كان هناك خاصية لتسجيل نقرات المفاتيح 

فان هذه الخاصية تكون عبارة عن ملف منفصل مخزن على الهوست يتم تحميله في 

مرحلة التشغيل الخاصة بالبرمجية وتشغيله على الذاكرة من دون ان يلمس القرص 

الصلب.

البرمجيات الغير المرحلية (Stageless Payloads) :-

وهي بعكس البرمجيات المرحلية , فانها تقوم بتنفيذ كافة الخصائص بمجرد تشغيل 

البرمجية على النظام المستهدف .

مسار التنفيذ (Execution Path) :-

تعتبر هذه المرحلة هي المرحلة الأولية قبل بداية تشغيل كافة الخصائص الخاصة 

بالبرمجية بل وقبل الاتصال بالهوست , و تكمن أهمية هذه المرحلة في انها تقوم 

بعمل عدة خطوات للتحقق على سبيل المثال ما اذا كانت البرمجية تعمل على نظام 

تشغيل حقيقي ام نظام وهمي وبناءاً عليه ستقوم اما باستكمال باقي خطوات التحقق 

او الخروج واغلاق العملية , يمكننا تلخيص عدد من الخطوات التي تقوم بها معظم 

البرمجيات الخبيثة عند اول عملية تشغيل على النظام المستهدف :-

  1. التحقق ما اذا كان النظام حقيقي ام وهمي (SandBox).
  2. التحقق ما اذا كان النظام المستهدف هو نفس النظام الذي نريد استهدافه ام لا عن طريق بيانات التكوين التي شرحناها سابقاً.
  3. التعرف على أنظمة الحماية الموجودة للتعامل معها لاحقاً.
  4. التحقق من إمكانية الوصول للهوست (متحكم البرمجية) لاستلام الأوامر.
  5. تحميل المكونات الإضافية للبرمجية في حال كانت البرمجية مرحلية والتأكد من سلامة المكونات.

يمكننها تلخيصها في مثل هذه الصورة :-

وغيرها من الخطوات التي يمكن القيام بها قبل عملية البدء في ارسال البيانات .

والى هنا نكون قد وصلنا الى نهاية هذه الجزء , نلتقي ان شاء الله في الجزء القادم …

Mohammed Hassan

باحث في تحليل وتطوير البرامج الخبيثة و الأمن السيبراني ، حاصل على درجة البكالوريوس في هندسة البرمجيات ، ولدي معرفة وخبرة كبيرة في لغات البرمجة مثل #x86 \ x64 IA ، C / C ++ / C ، والتعامل مع Debuggers مثل OllyDbg ، x64dbg ، هدفي هو نقل المعرفة والمهارة إليك بأسهل الطرق.

مقالات ذات صلة

تعليق واحد

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

زر الذهاب إلى الأعلى