
لينكس للهاكرز #8: قلب النظام الذي لا يُلمس، ومهام تعمل نيابة عنك وأنت نائم
Murtaja
🧭 قبل أن نبدأ
في هذه الحلقة الثامنة (قبل الأخيرة) من سلسلة Linux Basics for Hackers نغوص في أعمق طبقة من طبقات لينكس مع الفصل الخامس عشر: إدارة نواة لينكس ووحدات النواة القابلة للتحميل، ثم نتعلم كيف نجعل النظام يعمل لصالحنا آليًا دون تدخل يدوي في الفصل السادس عشر: أتمتة المهام بجدولة الوظائف.
🧠 الفصل الخامس عشر: إدارة نواة لينكس ووحدات النواة القابلة للتحميل (Managing the Linux Kernel and Loadable Kernel Modules)
🫀 النواة: الجهاز العصبي المركزي لنظام التشغيل
يفتتح الكاتب بتعريف واضح لمكانة النواة (Kernel):
"The kernel is at the center of the operating system and controls everything the operating system does, including managing memory, controlling the CPU, and even controlling what the user sees on the screen." — "النواة هي مركز نظام التشغيل، وتتحكم بكل ما يفعله النظام، بما في ذلك إدارة الذاكرة، التحكم بالمعالج، بل وحتى ما يراه المستخدم على الشاشة."
النواة منطقة محمية للغاية، يقتصر الوصول إليها على root أو الحسابات المميزة فقط، وهذا منطقي: من يتحكم بالنواة يتحكم فعليًا بكل شيء.
🧩 وحدات النواة القابلة للتحميل (LKMs): الميزة التي تتحول لثغرة
لينكس يستخدم بنية "نواة أحادية" (Monolithic Kernel) لكنها ذكية بما يكفي للسماح بإضافة وحدات (Modules) — مثل برامج تشغيل كرت الشاشة أو Bluetooth — دون إعادة بناء النواة بالكامل. هذه الوحدات تُسمى LKMs (Loadable Kernel Modules).
هذه الميزة العملية جدًا تحمل في طياتها خطرًا أمنيًا هائلًا، يشرحه الكاتب بوضوح:
"LKMs have access to the lowest levels of the kernel by necessity, making them an incredibly vulnerable target for hackers. A particular type of malware known as a rootkit embeds itself into the kernel of the operating systems, often through these LKMs." — "تحتاج وحدات LKM بالضرورة للوصول لأعمق مستويات النواة، مما يجعلها هدفًا شديد الحساسية للهاكرز. نوع خاص من البرمجيات الخبيثة يُعرف بـ rootkit يزرع نفسه داخل نواة النظام، غالبًا عبر هذه الوحدات بالذات."
هذا يعني أن أخطر أنواع الاختراق — تلك التي تمنح تحكمًا كاملًا وخفيًا بالنظام — غالبًا ما تبدأ بشيء يبدو بريئًا تمامًا: "برنامج تشغيل جديد لكرت الشاشة" مثلًا. إن اقتنع مسؤول نظام بتثبيت وحدة نواة تحتوي rootkit مخفيًا، فإن الهاكر يحصل على تحكم كامل بالنظام، بما في ذلك القدرة على التلاعب بما يراه النظام نفسه — أي يمكنه إخفاء نفسه من قوائم العمليات، المنافذ المفتوحة، وحتى مساحة القرص المستخدمة!
🔧 فحص وضبط النواة
للتحقق من إصدار النواة الحالي:
kali > uname -a
أو:
kali > cat /proc/version
لضبط معاملات النواة أثناء التشغيل (مثل إعدادات الذاكرة والشبكة)، نستخدم sysctl:
kali > sysctl -a | less
🎯 مثال عملي: تفعيل تمرير الحزم (IP Forwarding) لهجوم MITM
هنا يقدّم الكاتب مثالًا عمليًا مباشرًا يربط ضبط النواة بأحد أشهر أنواع الهجمات: هجوم الوسيط (Man-in-the-Middle / MITM)، حيث يضع الهاكر نفسه بين طرفي اتصال لمراقبة أو تعديل البيانات المتبادلة. لتمكين جهازك من "إعادة توجيه" الحزم التي يستقبلها (شرط أساسي لتنفيذ MITM)، يتم تفعيل معامل نواة واحد:
kali > sysctl -w net.ipv4.ip_forward=1
هذا التغيير مؤقت (يختفي عند إعادة التشغيل). لجعله دائمًا، يُعدَّل ملف /etc/sysctl.conf مباشرة بإزالة التعليق عن سطر net.ipv4.ip_forward=1.
⚠️ هذا المثال يوضح الآلية التقنية التي تجعل هجمات MITM ممكنة من منظور النظام، لأغراض فهم كيفية الدفاع عنها. تنفيذها على شبكة أو أجهزة لا تملكها هو مخالفة قانونية.
🛠️ إدارة الوحدات: lsmod، modinfo، وmodprobe
lsmod: يعرض كل الوحدات المحمّلة حاليًا في النواة.modinfo اسم_الوحدة: يعرض تفاصيل عن وحدة معينة (المطوّر، الترخيص، الاعتماديات).modprobe -a اسم_الوحدة: إضافة وحدة جديدة (الطريقة الحديثة والأكثر أمانًا، لأنها تتعامل تلقائيًا مع الاعتماديات).modprobe -r اسم_الوحدة: إزالة وحدة.
يفضّل الكاتب modprobe على الأداة القديمة insmod لأن الأخيرة لا تتعامل مع الاعتماديات تلقائيًا، مما قد يترك النواة في حالة غير مستقرة.
⏰ الفصل السادس عشر: أتمتة المهام بجدولة الوظائف (Automating Tasks with Job Scheduling)
🕰️ cron وcrontab: الجدولة المتكررة
بينما تعلمنا في الحلقة الثالثة أمر at للجدولة لمرة واحدة، هذا الفصل يقدّم cron، الأداة المخصصة للمهام المتكررة. صيغة جدول cron تتكون من سبعة حقول:
دقيقة ساعة يوم_الشهر الشهر يوم_الأسبوع المستخدم الأمر
مثال عملي: جدولة سكربت الفحص الذي بنيناه في الفصل الثامن (MySQLscanner.sh) ليعمل كل ليلة الساعة 2:30 صباحًا من الاثنين للجمعة:
30 2 * * 1-5 root /root/myscanningscript
- الرمز
*يعني "أي قيمة" (كل يوم، كل شهر...). - الفاصلة
,تحدد أيامًا غير متتالية (مثل2,4للثلاثاء والخميس). - الشرطة
-تحدد مدى متصلًا (مثل1-5للاثنين حتى الجمعة).
لتحرير الجدول:
kali > crontab -e
💼 مثال من منظور مسؤول النظام: نسخ احتياطي تلقائي
00 2 * * 0 backup /bin/systembackup.sh
يعني: عند الدقيقة صفر، الساعة الثانية صباحًا، أي يوم من الشهر، أي شهر، يوم الأحد، كمستخدم "backup"، شغّل هذا السكربت.
🕵️ مثال من منظور الهاكر: فحص متخفٍّ في التوقيت الأنسب
يعرض الكاتب مثالًا جميلًا يجمع بين ما تعلمناه سابقًا (سكربت MySQLscanner من الفصل الثامن) وهذا الفصل:
00 2 * 6-8 0,6 user /usr/share/MySQLsscanner.sh
هذا يعني: شغّل سكربت الفحص الساعة 2 صباحًا، فقط في أشهر الصيف (يونيو-أغسطس، 6-8)، وفقط في عطلات نهاية الأسبوع (0,6 = الأحد والسبت). لماذا هذا التوقيت بالذات؟ لأنه — كما يلمّح الكاتب — أقل وقت يُرجَّح أن يراقب فيه أحد حركة الشبكة. هذا مثال ممتاز على كيف يفكر الهاكر: ليس فقط "ماذا أفعل"، بل "متى أفعله بأقل احتمال للرصد".
⚡ اختصارات جاهزة
بدلًا من كتابة الحقول الخمسة كل مرة، يوفر cron اختصارات جاهزة:
@yearly @monthly @weekly @daily @midnight @noon @reboot
مثال: @midnight user /usr/share/MySQLsscanner.sh بدلًا من كتابة الحقول كاملة.
🚀 rc Scripts: تشغيل الخدمات تلقائيًا عند الإقلاع
بعيدًا عن الجدولة الزمنية، أحيانًا نريد أن تبدأ خدمة معينة تلقائيًا في كل مرة يُقلع فيها النظام — مثل قاعدة بيانات PostgreSQL التي نحتاجها مع Metasploit (تذكر الحلقة السادسة!). بدلًا من تشغيلها يدويًا في كل مرة، نستخدم:
kali > update-rc.d postgresql defaults
بهذا السطر الواحد، ستكون PostgreSQL جاهزة ومُشغَّلة تلقائيًا في كل مرة تبدأ فيها جلسة اختراق جديدة — توفير حقيقي للوقت لأي هاكر أو مسؤول نظام يستخدم نفس الأدوات يوميًا.
لمن يفضّل واجهة رسومية بسيطة بدلًا من الأوامر:
kali > apt-get install rcconf
kali > rcconf
💎 اقتباسات هذا الجزء تستحق التوقف عندها
- "النواة هي مركز نظام التشغيل، وتتحكم بكل ما يفعله." — الأساس الذي يفسر لماذا حماية النواة أولوية أمنية قصوى.
- "إن استطاع الهاكر إقناع مسؤول النظام بتحميل وحدة نواة خبيثة، فإنه يحصل على تحكم كامل بالنظام، غالبًا دون أن يعلم مسؤول النظام أصلًا." — الجملة التي تلخّص خطورة الهندسة الاجتماعية مقترنة بثغرات تقنية.
- الجدولة الذكية للسكربت في أوقات الصيف وعطلات نهاية الأسبوع — درس في أن "التوقيت" جزء من الاستراتيجية، لا مجرد تفصيل تقني.
🎯 خلاصة الجزء
هذان الفصلان يوضحان طرفي نقيض جميلين في فلسفة لينكس: من جهة، أعمق طبقة في النظام (النواة) التي تتطلب حذرًا شديدًا لأن أي خطأ فيها — متعمّدًا أو عرضيًا — قد يعطّل النظام بالكامل أو يمنح تحكمًا خفيًا لطرف خبيث؛ ومن جهة أخرى، أداة بسيطة جدًا (cron) تتيح لأي مستخدم عادي أتمتة مهامه اليومية دون أي تعقيد. الخيط المشترك: لينكس يمنحك دائمًا التحكم الكامل — والسؤال هو كيف تستخدم هذا التحكم بمسؤولية.
في الحلقة القادمة والأخيرة من هذه السلسلة، نختتم رحلتنا مع الفصل السابع عشر: أساسيات برمجة بايثون للهاكرز — حيث ننتقل من bash إلى لغة أكثر قوة ومرونة، ونبني أدوات هجومية حقيقية من الصفر: عملاء ومستمعي شبكة (TCP clients/listeners)، وحتى كاسر كلمات مرور بسيط. 🚀