التعامل مع Scheduled Tasks في Windows لصيد التهديدات

Cyber Attacks
سنتعلم كيفية التعامل مع Scheduled Tasks في Windows باستخدام CMD و GUI، وكيف يمكن للمخترقين استغلالها لاكتشاف التهديدات
Taha Rabie
Sept. 15, 2024, 6:33 p.m.
taha_rabie
التعامل مع  Scheduled Tasks  في Windows لصيد التهديدات

مهمة مجدولة (Scheduled Task)

هي عملية أو نشاط معين يتم تنفيذه بشكل دوري ومنتظم في نظام الكمبيوتر أو الخادم، وذلك وفقاً لجدول زمني محدد مسبقاً. يتم إنشاء هذه المهام لتنفيذ مجموعة متنوعة من المهام التي يمكن أن تشمل العمليات الأتوماتيكية مثل نسخ ملفات، تشغيل برامج، تنفيذ سكريبتات، إرسال رسائل بريد إلكتروني، وغير ذلك الكثير.

يعتمد الجدول الزمني لتنفيذ هذه المهام على الاحتياجات الخاصة بالمستخدم أو بالنظام، ويمكن ضبط هذا الجدول لتشغيل المهمة يومياً، أسبوعياً، شهرياً، أو حتى في أوقات محددة في اليوم.

تستخدم مهام مجدولة في العديد من السيناريوهات، مثل:

  • عمليات النسخ الاحتياطي: حيث يمكن جدولة عمليات النسخ الاحتياطي للبيانات لتشغيلها تلقائياً في أوقات مناسبة دون تدخل يدوي.
  • تحديثات البرمجيات: يمكن استخدام المهام المجدولة لتنفيذ عمليات تحديث التطبيقات أو البرمجيات في أوقات محددة دون تدخل من المستخدم.
  • مراقبة النظام: يمكن استخدام المهام المجدولة لتنفيذ عمليات مراقبة دورية لأداء النظام، مثل فحص استخدام موارد النظام أو تسجيل الأحداث.
  • تنفيذ العمليات الآلية: يمكن برمجة المهام لتنفيذ سلسلة من الخطوات الآلية بمجرد وقوع شرط معين، مما يسمح بتنفيذ العمليات بشكل آلي وفقاً للظروف المحددة.

لعرض المهام المجدولة على جهازك، قم بالوصول إلى برنامج جدولة المهام.

انقر فوق أي مهمة لعرض خصائص مثل الحالة والمشغلات و وقت التشغيل التالي ووقت التشغيل الأخير وحساب المستخدم المرتبط بالمهمة التي ستنفذها.

يمكنك أيضًا إنشاء مهمة جديدة من خلال النقر على "مهمة جديدة" وإعطائها اسمًا وتحديد المستخدم وتحديد الحدث (مثل تشغيل برنامج أو إرسال بريد إلكتروني أو عرض رسالة). بالإضافة إلى ذلك، يمكنك تحرير وحذف مهام محددة.

يمكن إدارة المهام المجدولة في Windows باستخدام موجه الأوامر (cmd) عن طريق استخدام الأمر "schtasks".

  • عرض المهام الموجودة:
      •    schtasks /query
  • إنشاء مهمة جديدة:  الأمر يقوم بإنشاء مهمة مجدولة يومية لتشغيل سكريبت "BackupScript.bat" الساعة 23:00، باستخدام حساب مستخدم محدد وكلمة مرور
      • schtasks /create /tn DailyBackup /tr "C:\Path\to\BackupScript.bat" /sc DAILY /st 23:00 /ru username /rp password
        •  /tn يحدد اسم المهمة.
        •  /tr يحدد مسار واسم البرنامج القابل للتنفيذ أو البرنامج النصي الذي سيتم تشغيله.
        •  /sc يحدد تكرار الجدول ، كل دقيقة ، ساعة، يوميًا، أسبوعيًا، شهريًا، مرة واحدة، عند البدء، عند تسجيل الدخول
        •  /st يحدد وقت البدء للمهمة.
        •  /ru يحدد حساب المستخدم الذي سيتم تشغيل المهمة من خلاله.
        •  /rp يحدد كلمة المرور
  • حذف مهمة:
      • schtasks /delete /tn TaskName
  • تعديل مهمة:
      • schtasks /change /tn TaskName [options]
      • schtasks /change /tn BackupTask /st 03:00

يتيح لك هذا الأمر تعديل خصائص مختلفة لمهمة موجودة، مثل الجدول الزمني والبرنامج أو البرنامج النصي المطلوب تشغيله والمزيد.

  • تمكين أو تعطيل مهمة:
      •  schtasks /change /tn TaskName /enable | /disable
  • تشغيل مهمة يدويًا :
      • schtasks /run /tn TaskName

بعدما تعرفنا على مهام التخطيط المجدولة وكيفية استخدامها بشكل شرعي، يجب أن ندرك أيضًا كيف يمكن للمخترقين استغلالها بشكل غير مشروع.

اساءه استخدام scheduled tasks

استخدام scheduled tasks بشكل غير مسؤول أو انتهاك أمان النظام قد يحدث عندما يستخدم المهاجمون هذه الأداة القوية بأشكال مختلفة لتنفيذ هجمات أو لتعطيل الأنظمة. هنا بعض الأمثلة على كيفية اساءه استخدام scheduled tasks

  • تنفيذ برامج خبيثة: يمكن للمهاجمين استخدام scheduled tasks لتشغيل برامج خبيثة على الأنظمة المستهدفة. يمكن أن تكون هذه البرامج تجسسية، أو مفتاحية للدخول (keyloggers)، أو حتى برامج فدية (ransomware) التي تشفر الملفات.
  • التجسس وسرقة البيانات: يمكن للمهاجمين استخدام scheduled tasks لتنفيذ أدوات التجسس أو برامج سرقة البيانات بشكل دوري، مما يتيح لهم سرقة المعلومات الحساسة من الأنظمة المصابة.
  • زرع Backdoor: يمكن استخدام scheduled tasks لزرع Backdoor على الأنظمة المستهدفة، مما يسمح للمهاجمين بالوصول إلى الأنظمة بشكل غير مصرح به في وقت لاحق.
  • هجمات Pivotingبعد اختراق جهاز واحد، يمكن للمهاجمين استخدام scheduled tasks لإنشاء نقاط انطلاق إضافية مثل Reverse Shells على أجهزة أخرى في شبكة الضحية.
  • تصعيد الامتيازات: قد يستخدم المهاجمون المهام المجدولة لتصعيد الامتيازات عن طريق تشغيل المهام ضمن حسابات مميزة، مما يمكنهم من الحصول على وصول مرتفع إلى النظام.

Threat Hunting Using Windows Scheduled Tasks

تم إنشاء مهمة مجدولة. يتم تسجيل الحدث 4698 في كل مرة يتم فيها إنشاء مهمة مجدولة جديدة، وهو مهم لأنه حدث للتحكم في التغيير. يتم تعريف كل مهمة بشكل فريد من خلال اسم المهمة الخاص بها.

في لقطات الشاشة، يظهر سجل إنشاء مهمة مجدولة جديدة برقم الحدث 4698. يحتوي الحدث على جزئين رئيسيين:

  1. الجزء الأول: المعلومات عن المستخدم (Subject): يشير إلى المستخدم الذي قام بإنشاء المهمة المجدولة الجديدة، والذي هو "dadmin".
  2. الجزء الثاني: معلومات المهمة (Task Information): يقدم تفاصيل حول المهمة المجدولة.
    • الحقل الأول في هذا القسم هو اسم المهمة، وهو "StartListener".
    • الحقل الثاني هو محتوى المهمة، والذي يحتوي على تفاصيل المهمة بتنسيق XML في السطر الأول من محتوى المهمة، يقدم Microsoft إصدار XML، وإصدار المهمة، ورابط يصف تنسيق XML كمرجع.
    • بعد ذلك، نجد قسم <RegistrationInfo> الذي يشير إلى الطابع الزمني لإنشاء المهمة ومنشئها.
    • من قسم <Triggers> يمكننا ملاحظة أن المهمة ستتم تشغيلها في الوقت المحدد.
    • في قسم <Exec>، يظهر أن المهمة المجدولة تم إنشاؤها لتنفيذ الأمر "C:\Documents\listener.exe".

من هنا، ننتقل إلى المسار المحدد ونقوم بحساب الهاش (Hash) لهذه العملية، ثم نفحصها باستخدام أدوات تحليل التهديدات مثل Virustotal للتحقق من مدى صحتها.

مثل هذا الحدث يعتبر مفيد للمستجيبين للحوادث وصائدي التهديدات في اكتشاف والتحقيق في الأنشطة غير الطبيعية، مثل إنشاء مهمة مجدولة لتنفيذ عملية مشبوهة لتنفيذ عملية مشبوهة.

للكشف عن المهام المجدولة باستخدام Event ID 4698 في SIEM، يمكنك اتباع الخطوات التالية:

  • تحديد الـ Event ID: ابحث عن Event ID 4698 الذي يسجل عند إنشاء مهمة مجدولة جديدة.

  • إعداد البحث: استخدم الاستعلام التالي  SIEM Splunk لتجميع البيانات: 

index=* sourcetype="WinEventLog:Security" EventCode="4698" | table ComputerName, Account_Name, Task_Name, Task_Description, _time

شرح الاستعلام:

  • sourcetype=WinEventLogEventCode=4698: يبحث في مصدر WinEventLog:Security للحدث 4698.
  • table ComputerName, Account_Name, Task_Name, Task_Description, _time: يعرض المعلومات الرئيسية في جدول، مثل اسم الكمبيوتر، اسم الحساب، اسم المهمة، وصف المهمة، ووقت الحدث.

يمكنك ضبط الاستعلام بناءً على التفاصيل التي تريد استخراجها أو إضافة شروط إضافية لتصفية النتائج حسب الحاجة.

مراجعة النتائج: افحص النتائج للبحث عن أي مهام مشبوهة، خاصة تلك التي تحتوي على مسارات أو ملفات غير مألوفة.

بهذا الشكل، يمكنك مراقبة إنشاء المهام المجدولة وتحليلها بشكل فعال لاكتشاف الأنشطة المشبوهة.


سنقوم بتطبيق الشرح النظري في عملية فعلية الآن. دعونا نبدأ بالتحقيق في إنذار SOC الذي تم تلقيه من منصة LetsDefend

SOC144 EventID:91 — New scheduled task created

قبل حل التنبيه إليكم البيانات المقدمة حول الحالة:

حدثت حالة غير مرغوب فيها بعد إنشاء مهمة مجدولة جديدة على جهاز "Helena"، والذي يحمل عنوان  IP 172.16.17.36

نحن نتعامل مع ملف Python يسمى "Sorted-Algorithm.py" عند استخدام هاش الملف المتوفر للفحص على Virustotal، لسوء الحظ، تبين أن الملف غير ضار.

 

ولكن سنقوم بتنزيل الملف ومراجعة الكود نظرًا لأن هذا مجرد كود لبايثون.

يقوم الجزء الأول من البرنامج بطباعة تمثيل فني ASCII لزرافة ، ثم يقوم بفرز قائمة من حروف العلة بترتيب تصاعدي وتنازلي، وأخيرًا يقوم بفرز قائمة من الصف بناءً على العنصر الثاني من كل صف.

يقوم الجزء التالي من التعليمات البرمجية بتنزيل ملف باسم "x86_x64_setup.exe" من عنوان URL"http://92.27.116.104/" ويحفظه في الدليل المحلي "C:/Windows/Temp/" باستخدام وحدة urllib.request.urlretrieve:

 ثم يستخدم ()os system وظيفة لإنشاء مهمة مجدولة تسمى "DailyRoutine" تقوم بتشغيل الملف القابل للتنفيذ الذي تم تنزيله كل يوم في الساعة 11:00 صباحًا.

لذا، يحاول البرنامج تنزيل الملف من مصدر غير معروف وجدولة مهمة لتشغيله كل يوم. وهذا بالتأكيد أمر ضار للغاية. عند فحص عنوان IP، نجد أنه ضار ومشبوه.

  

دعنا نلقي النظر إلى صفحة السجل  لنا اذا كان هناك اي اتصال بهذا IP بالفعل هناك اتصال علي جهاز "Helena"  في Proxy

تحليل واستخراج الأنشطة المشبوهة:

  • الطلب من  GitHubعنوان 140.82.121.4IP :
    • العنوان: https://github.com/pythonguru2021x/SortedAlgorithm/archive/refs/heads/master.zip

      هذا الرابط يؤدي إلى ملف مضغوط من GitHub، وقد يحتوي على شيفرة برمجية ضارة إذا كان المصدر غير موثوق. لذلك، يجب التحقق من محتويات الملف بعد تنزيله. مصدر الملف الذي تم تشغيله هو Sorted-Algorithm.py.

    • طلبات من مواقع تعليمية  Coursera، مصدر تعليمي معروف، لا يوجد ما يثير القلق. طلبات من مواقع التواصل الاجتماعي  LinkedIn يبدو عاديًا.

بعد التحقق من سجلات ERD، يمكننا التأكد من أن Helena قامت بتنفذت الملف الذي تم تنزيله.

تم تشغيل ملف Sorted-Algorithm.py، والذي احتوى على كود لإنشاء مهمة مجدولة باستخدام سطر الأوامر SCHTASKS /CREATE /SC DAILY /TN DailyRoutine /TR C:/Windows/Temp/x86_x64_setup.exe هذا الأسلوب يُعرف بتقنية الاستمرارية (Persistence)

ليس لدينا نسخة من الملف x86_x64_setup.exe لتحليله، ولكن المعلومات المتاحة كافية لتأكيد صحة الإنذار.

ملخص:

تم تحميل ملف من مصدر غير موثوق وتشغيله، حيث كان يحتوي على كود لإنشاء مهمة مجدولة باستخدام سطر الأوامر: SCHTASKS /CREATE /SC DAILY /TN DailyRoutine /TR C:/Windows/Temp/x86_x64_setup.exe. هذا الأمر ضار لأنه ينشئ مهمة مجدولة لتشغيل ملف مشبوه بشكل يومي.

بعد التأكد من حدوث الاختراق، يجب اتخاذ الإجراءات التالية:

  • عزل الجهاز المصاب.
  • حذف الملفات الضارة.
  • التأكد من عدم وجود أي اتصال من أجهزة أخرى مع عناوين IP الخاصة بالملف الضار.
  • حجب جميع مؤشرات الاختراق (IOCs) مثل عناوين IP، وطلبات HTTP، والهاشات (hashes) في أجهزة الحماية مثل الـ Firewall والـ Antivirus وغيرها.

 

اللهم انصر إخواننا في فلسطين،وارفع عنهم الظلم، وأمنحهم القوة والصبر، واجعل النصر قريبًا له

مصادر:

 

BlueTeam DFIR soc cyberSecurity ThreatHunting ScheduledTasks