امتيازات المستخدم المتميز مطلوبة لتنفيذ الأمر. الامتيازات في Linux: ما هي وكيفية العمل معها

26.03.2019
|

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

متطلبات

  • مهارات Linux الأساسية.
  • خادم لينكس (اختياري).

مستخدمي لينكس

بما أن Linux نظام متعدد المستخدمين، فمن المهم فهم كيفية عمل المستخدمين والمجموعات. دعونا ننظر إلى هذه المفاهيم بمزيد من التفصيل.

هناك نوعان من المستخدمين في Linux: مستخدم نظامي وعادي. تم تصميم مستخدمي النظام لأداء غير تفاعلي و عمليات الخلفيةوالمستخدمون العاديون مسؤولون عن إكمال المهام التفاعلية. عندما تقوم بتسجيل الدخول إلى نظام Linux الخاص بك لأول مرة، ربما لاحظت أنه يبدأ كثيرًا مستخدمي النظام، والتي بدورها إطلاق خدمات مختلفةوالتي يعتمد عليها النظام.

لعرض كافة المستخدمين على النظام، تحقق من الملف /etc/passwd. يحتوي كل سطر في هذا الملف على معلومات حول مستخدم فردي، بدءًا من اسم المستخدم (قبل حرف النقطتين الأولين). لعرض محتويات الملف على الشاشة، أدخل:

المستخدم المتميز

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

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

مجموعات لينكس

المجموعات هي مجموعات من 0 مستخدمين أو أكثر. ينتمي المستخدم إلى المجموعة الافتراضية ويمكنه أيضًا أن يكون عضوًا في أي من المجموعات الأخرى.

لعرض جميع المجموعات المتاحة وقوائم أعضائها، افتح /etc/group.

ملكية الملفات وحقوق الوصول

في Linux، ينتمي كل ملف إلى مستخدم واحد ومجموعة واحدة الإعدادات الفرديةوصول.

لعرض الأذونات، استخدم الأمر ls. يحتوي على قائمة طويلة من الخيارات (على سبيل المثال ls -l myfile). لعرض إعدادات الوصول إلى الملفات في الدليل الحاليقم بتشغيل الأمر بدون وسيطات:

للاستعلام عن محتويات الدليل /etc، أدخل:

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

بشكل عام، من السهل جدًا فهم مخرجات الأمر ls، ربما باستثناء العمود الأول الذي يصف أذونات الملف. يبدو شيء من هذا القبيل:

com.drwxrwxrwx
دروكسروكس ---
-رو-رو----
دروكس------
-رو-------

لفهم ما تعنيه هذه الحروف والواصلات، دعونا نقسم محتويات العمود إلى مكوناته. يمكن تقسيم السطر الأول من المثال أعلاه إلى الفئات التالية:

د روكس (1) روكس (2) روكس (3)

  • د – حقل نوع الملف .
  • rwx(1) – حقوق المستخدم الذي يملك الملف.
  • rwx(2) – حقوق المجموعة المالكة.
  • rwx(3) – حقوق المستخدمين الآخرين.

أنواع الملفات

هناك نوعان رئيسيان من الملفات في Linux: عادية وخاصة.

يتم تعريف الملفات العادية بواسطة واصلة في حقل النوع. الملفات العادية هي ملفات بسيطة، حيث يمكن تخزين البيانات.

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

الوصول إلى الطبقات

كما ذكرنا سابقًا، يحتوي كل ملف على إعدادات لثلاث فئات (أو فئات) للوصول:

  1. المستخدم - مالك الملف؛
  2. المجموعة - مالك الملف (تتضمن هذه الفئة جميع أعضاء المجموعة التي ينتمي إليها المستخدم - مالك الملف)؛
  3. والمستخدمين الآخرين (تتضمن هذه الفئة جميع المستخدمين الذين لا ينتمون إلى الفئات السابقة).

تتبع جميع توزيعات Linux ترتيب الامتيازات هذا.

أنواع الوصول

  • ص (قراءة) - الحق في قراءة الملف،
  • ث (الكتابة) - الحق في التغيير (تحرير)،
  • x (تنفيذ) - الحق في التشغيل (في بعض حالات خاصةيمكن استخدام رمز آخر بدلاً من x).

إذا كان هناك واصلة بدلاً من الرمز، فهذا يعني هذه الفئةلا يملك الحق ذو الصلةوصول. على سبيل المثال:

في هذه الحالة، يتمتع المستخدم والمجموعة - أصحاب الملف - بجميع حقوق الوصول، وبالنسبة للمستخدمين الآخرين، يتم رفض الوصول إلى الملف تمامًا.

دعونا نلقي نظرة فاحصة على ما يوفره كل نوع من أنواع الوصول بالضبط.

ملحوظة: لضمان الوصول العادي إلى الملفات والأدلة، غالبًا ما يتم استخدام أنواع الوصول مع بعضها البعض.

إذن لقراءة الملف

الحق في قراءة الملف العادي هو القدرة على عرض محتوياته.

يسمح إذن القراءة في الدليل للمستخدم بعرض أسماء الملفات المخزنة فيه.

الحق في تغيير الملف

وفي حالة الملف العادي، فإن هذا الحق يمنح المستخدم القدرة على تغيير محتويات الملف أو حذفه.

إذا كان لدى المستخدم حق تحرير الدليل، فيمكن لهذا المستخدم حذف الدليل وتغيير محتوياته (أي إنشاء الملفات الموجودة فيه أو إعادة تسميتها أو حذفها) ومحتويات الملفات المخزنة فيه.

الحق في الانطلاق

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

إذا كان للمستخدم الحق في تشغيل الدليل، فيمكنه قراءة هذا الدليل وكذلك الوصول إلى بيانات التعريف الخاصة بالملفات المخزنة.

أمثلة على الامتيازات

الآن دعونا نلقي نظرة على بعض مفيدة أمثلة شائعةحقوق الوصول إلى الملفات.

  • -rw——-: فقط المستخدم الذي يملك الملف لديه حق الوصول إلى الملف.
  • -rwxr-xr-x: يمكن لأي مستخدم على النظام تشغيل مثل هذا الملف.
  • -rw-rw-rw-: يحق لأي مستخدم للنظام تغيير مثل هذا الملف.
  • drwxr-xr-x: يمكن لأي مستخدم على النظام قراءة هذا الدليل.
  • drwxrwx —: لا يمكن قراءة محتويات الدليل وتعديلها إلا بواسطة المستخدم والمجموعة المالكة.

كما ترون، فإن المستخدم الذي يملك الملف عادةً ما يكون لديه كافة الحقوق في الملف (أو، وفقًا لـ على الأقل، لديه حقوق أكثر من الطبقات الأخرى). لأسباب أمنية، يجب أن يكون الوصول إلى الملفات متاحًا فقط للمستخدمين الذين يحتاجون الوصول إليها لسبب محدد.

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

ملحوظة: لمعرفة كيفية تغيير حقوق الوصول، اقرأ. يتحدث عن استخدام أوامر chown وchgrp وchmod.

خاتمة

أنت الآن على دراية بالمفاهيم الأساسية المتعلقة بالأذونات والملكية في بيئة Linux.

العلامات:

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

مقدمة

كما تتذكر (وكما يجب أن يتذكر كل مسؤول مناسب)، لا يُنصح بشدة بالعمل في Linux تحت الجذر. في عالم مثالي، لن تستخدمه إلا لتكوين الخادم وتثبيت البرامج وتحديثاتها وغيرها من المهام الإدارية البحتة. والمشكلة هي أننا نعيش في عالم عادي، وهو بعيد جدا عن المثالية. لذلك، لا يزال مثل هذا الموقف يحدث في بعض الأحيان. صحيح أن هذا يرجع في معظم الحالات إلى الإهمال البحت، لأنه حدث تاريخيًا أنه كان على مستخدمي Linux فهم كيفية عمل نظام التشغيل الخاص بهم. وحتى لو فهمت القليل عن النظام وآلياته الأمنية، فلن تتمكن من البقاء تحت الجذر. لذلك، اليوم، على عكس Windows، حيث تحدثنا عن الحصول على امتيازات النظام كمسؤول، سننظر فقط في خيارات زيادة الامتيازات من مستخدم لا يتمتع بالامتيازات إلى الجذر. اذا هيا بنا نبدأ.

مآثر

يمكن تقسيم جميع طرق الحصول على حقوق المستخدم المتميز في Linux إلى فئتين. الأول هو على وجه التحديد استخدام مآثر. على عكس نظام التشغيل Windows بآليته التثبيت التلقائيالتحديثات، يتعين على متابعي Penguin في الغالب مراقبة إصدار التصحيحات وتثبيتها بأنفسهم. وفي هذا الصدد، فإن فرصة مواجهة نظام لم يتم تصحيحه بالكامل بين أجهزة Linux أعلى بكثير. ما هي المنافع هذه الطريقةيمكنك تسليط الضوء؟ في البداية، تستخدم معظم برامج استغلال الثغرات نقاط ضعف في نواة نظام التشغيل، مما يسمح لها بالحصول على أقصى قدر من الامتيازات. العثور على كود استغلال مناسب ليس بالأمر الصعب، وربما تعرف بعض الموارد. بالإضافة إلى ذلك، للاستفادة من إحدى الثغرة الأمنية، في بعض الأحيان لا تحتاج إلى فهم جميع تعقيدات الثغرة الأمنية المستخدمة - تحتاج فقط إلى تجميعها بشكل صحيح وتشغيلها (ومع ذلك، في بعض الأحيان، يتعين عليك تخصيصها قليلاً، ولكن في كثير من الأحيان سيعمل كل شيء دون تعديله باستخدام ملف). في منظر عامتبدو خوارزمية العمل بالطريقة الآتية:

  1. تحديد إصدار النواة والتوزيع.
  2. احصل على القائمة الأدوات المتاحةلتجميع sploit.
  3. قم بتسليم الخدعة إلى الجهاز المستهدف.
  4. ترجمة (إذا لزم الأمر) وتشغيلها.
  5. استمتع بالجذر الناتج.

حسنا، الآن عن كل خطوة بمزيد من التفصيل.

تعريف

إذا حكمنا من خلال الخطة، نحتاج أولاً إلى معرفة أين انتهى بنا الأمر، ونوع التوزيعة التي نستخدمها وما هو إصدار النواة. يمكن استرداد إصدار kernel باستخدام الأمر uname -a المعروف أو نظائره. للحصول على معلومات حول التوزيعة التي تستخدمها، يجب عليك إلقاء نظرة على ملف *-release الموجود في الدليل etc (اعتمادًا على التوزيع، يمكن تسميته بشكل مختلف: lsb-release في Ubuntu، وredhat-release في Red) قبعة/CentOS وغيرها):
cat /etc/*-release

من خلال معرفة إصدار التوزيع والنواة، يمكنك الانتقال إلى المرحلة الثانية - العثور على "المفتاح الرئيسي" المناسب.

ابحث عن استغلال

بمجرد كل شيء معلومات ضروريةسيكون في متناول اليد، وحان الوقت للبحث عن استغلال مناسب. أول ما يتبادر إلى الذهن هو استغلال db.com، ولكن هناك أيضًا بدائل: 1337day، SecuriTeam، ExploitSearch، Metasploit، Securityreason، seclists. ففي النهاية، هناك جوجل بالتأكيد الذي يعرف عن الثغرات أكثر من أي شخص آخر. بالنظر إلى الأمام قليلاً، سأقول: في بعض الأحيان، لسبب ما، قد لا يعمل "المفتاح الرئيسي"، أو تحتاج إلى تكييفه قليلاً مع شروط معينة أو احتياجاتك، أي المرور عبره باستخدام ملف. وفي هذه الحالة، لن يضرك معرفة معلومات إضافية عنها، والتي يمكن الحصول عليها من أحد المصادر التالية:
www.cvedetails.com
packetstormsecurity.org
cve.mitre.org

لذا، لنفترض أنك عثرت على برمجية إكسبلويت مناسبة تمنحك بطاقة دخول إلى عالم الجذر. كل ما تبقى هو نقله بطريقة أو بأخرى إلى السيارة.

توصيل منزلي

من أجل توصيل الموزع إلى الموقع، هناك الكثير من الطرق، بدءًا من cURL/wget وNetcat وFTP وSCP/SFTP وSMB المعروفة إلى استخدام DNS سجلات TXT. لمعرفة أي من هذه الأدوات لدينا، قم بتشغيل:

ابحث عن / -name wget ابحث عن / -name nc* ابحث عن / -name netcat* ابحث عن / -name tftp* ابحث عن / -name ftp

لنفترض أننا وجدنا Netcat. لنقل ملف باستخدامه، قم بتشغيل الأمر على الجانب المتلقي:
nc -l -p 1234 > ملف out

أي أننا نستمع إلى المنفذ 1234. وعلى المنفذ المرسل نقوم بما يلي:
نك-ث 3 1234< out.file

إذا حدث النقل من * لا شىء على نظام * لا شىء، وهذا هو، هناك وهناك المرافق القياسية، ثم يمكنك استخدام الضغط لتسريع عملية النقل. في هذه الحالة ستكون الأوامر كالتالي:

نك -ل -ص 1234 | فك الضغط -ج | tar xvfp - // للحصول على tar cfp - /some/dir | ضغط -ج | nc -w 3 1234 // للإرسال

الخيارات الأخرى أبسط، لذلك لن نأخذها بعين الاعتبار باستخدام wgetو FTP وغيرها من الطرق المعروفة.

الغميضة

حسنًا، لقد اكتشفنا كيفية تسليمها. ولكن كيف يمكنك تجنب التعرض للحرق؟ إذا تم اكتشاف استغلالك، فكن مطمئنًا إلى أنه سيتم إغلاق الثغرة بسرعة. لذلك تحتاج إلى استضافته وتجميعه وتشغيله من مكان غير واضح. في Linux، تكون الدلائل التي تبدأ بنقطة (على سبيل المثال، .secret_folder) مخفية. ولذلك، سيكون من المنطقي استخدامها لإخفاء نشاطهم. على سبيل المثال، ضع كود الاستغلال فيها: /tmp/.nothingthere/exploit.c . ومع ذلك، في هذه الحالة، يجب عليك أولاً التأكد من تثبيت tmp بدون خيار noexec ويمكنك تشغيل الاستغلال المجمع منه (للقيام بذلك، استخدم الأمر mount).

بناء وتشغيل الاستغلال

بمجرد تسليم Sploit ووضعه، سيتعين تجميعه/تكوينه. كقاعدة عامة، تتم كتابة الثغرات بلغة C أو إحدى لغات البرمجة النصية Python/Perl/PHP. القراء العاديون ] يعرفون أن ترك مترجم على الخادم الخاص بك ليس هو الأفضل القرار الأفضل، لذلك يتم قطعها عادة. إذا كان سؤالك حول الإصدار مترجم دول مجلس التعاون الخليجي-v باش سوف يقسم دول مجلس التعاون الخليجي: الأمر غير معثور عليه، فأنت "محظوظ" وسيتعين عليك أن تسلك منعطفًا. أي إما أن تبحث عن جدول بيانات بلغة Python أو Perl أو أي شيء آخر، أو تقوم بتجميعه فيه آلة افتراضيةمع إصدار مماثل لنظام التشغيل والنواة. ثم انقل الملف القابل للتنفيذ الناتج إلى المضيف الهدف (ومع ذلك، هذه الطريقة لا تضمن التشغيل بنسبة 100%؛ فقد تسقط الاستغلالات وتؤدي إلى تعطل النظام، لذا كن حذرًا هنا). ومع ذلك، كما تبين الممارسة، يجب أن يكون هناك مترجم لإحدى اللغات المذكورة في النظام. لذلك لا يجب أن تستسلم على الفور، وبدلاً من ذلك، دعنا نتحقق من جميع الخيارات:

ابحث عن / -name perl* ابحث عن / -name python* ابحث عن / -name gcc* ابحث عن / -name cc

إذا نجحت، كل ما عليك فعله هو تشغيل البرنامج المستغل والاستمتاع بالترويج. حسنًا، أو اكتشف سبب فشل ذلك، اعتمادًا على حظك.

مكافحة الحيل

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

الحقوق والملفات والمسارات والتكوينات

الفئة الثانية التي يمكن تمييزها في رفع الامتيازات هي الأساليب التي لا تتعلق باستخدام برمجيات إكسبلويت، ولكنها تعتمد على البحث عن الملفات ذات الحقوق المحددة بشكل غير صحيح. هنا، كما هو الحال في Windows، هناك بعض الحيل، ولكن في الأساس لا يزال نفس العمل المتمثل في جمع البيانات وتحليلها. عادةً، أول ما يجب البحث عنه هو الملفات التي يمكن للجميع قراءتها وكتابتها:
العثور على / - بيرم 2 ! -نوع l -ls

قد يكون هناك ما يكفي من هذه رقم ضخمومن بينها يمكنك العثور على شيء مثير للاهتمام: ملفات التكوينومصادر المواقع/التطبيقات والبرامج النصية التي تم تشغيلها بواسطة init أو cron. من حيث المبدأ، يعد الوضع الذي يكون فيه الملف قابلاً للقراءة والكتابة من قبل الجميع أمرًا طبيعيًا. تنشأ المشاكل عندما يبدأ المستخدمون/المسؤولون/البرامج النصية في تغيير الأذونات دون قصد. لذلك عندما تقوم بتغيير الأذونات، حاول تجنب استخدام chmod 777 . حسنًا، قم بإجراء عمليات تدقيق دورية لـ ملفات مهمةلم تكن متاحة للجميع.

سيتويد+سيتجيد

كما تنص الوثائق، فإن setuid وsetgid عبارة عن إشارات أذونات تسمح بتشغيل الملفات التنفيذية مع حقوق المالك أو مجموعة الملف القابل للتنفيذ (عادةً الجذر). يمكن لمثل هذه الملفات القابلة للتنفيذ، عند تشغيلها بامتيازات مرتفعة، الوصول إلى المزيد من المعلومات المميزة. على سبيل المثال، إذا قمت بتعيين setuid على الأمر ls، فستتمكن من عرض محتويات الأدلة التي تم رفض الوصول إليها في البداية. وفي حالة vim، يمكنني تعديل ملفات التكوين التي لم يكن لي الحق في الاطلاع عليها من قبل.

وفقًا لذلك، إذا كانت التطبيقات التي تحتوي على مجموعة علامات setuid/setgid تحتوي على ثغرات أمنية مثل تجاوز سعة المخزن المؤقت أو إدخال الأوامر، فيمكن للمهاجم تنفيذ تعليمات برمجية عشوائية بامتيازات مرتفعة. لذلك، عادةً ما يكون الخيار التالي هو البحث عن الملفات القابلة للتنفيذ التي تحتوي على هذه العلامات.
Sudo find / -xdev \(-perm 4000\) -type f -print0 -exec ls -s () \;

من حيث المبدأ، يمكنك القيام بذلك دون استخدام sudo، وهذا ضروري فقط للتحقق من الأدلة التي لا يمكنك الوصول إليها.

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

سودو

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

طريق

كما هو الحال في نظام التشغيل Windows، ستساعد المسارات التي تم تكوينها بشكل غير صحيح في Linux أيضًا على زيادة امتيازاتك. يحدث هذا عادةً مع متغير بيئة PATH (استخدم printenv لمشاهدته). هل نظرت؟ عظيم، أخبرني الآن: ماذا لو كان متغير البيئة PATH يبدأ بـ. (.:/bin:/usr/sbin ....)؟ يتم ذلك عادة من قبل المستخدمين الذين لا يريدون الاتصال برقم اثنين شخصيات اضافيةأي أنهم يريدون استدعاء الأمر على النحو التالي: برنامج $ بدلاً من $ ./program . إضافة. في PATH تعني القدرة على تنفيذ الملفات/البرامج النصية من دليل العمل. يمكنك إضافتها على النحو التالي:

PATH=.:$(PATH) تصدير PATH

تخيل الآن أن لدينا مستخدمين اثنين: جو (المهاجم) وبوب. يعرف جو أن بوب لديه امتيازات sudo لتغيير كلمات مرور المستخدم، بما في ذلك الجذر. الى جانب ذلك، بوب كسول وأضاف. إلى متغير البيئة PATH. يكتب Wile Joe برنامجًا سيغير كلمة مرور الجذر، ويسميه ls ويضعه في المجلد الذي يحب بوب البحث فيه. الآن، عندما يدخل الأخير إلى المجلد ويريد الاطلاع على محتوياته، سيتم تنفيذ البرنامج الذي كتبه جو وتغيير كلمة مرور الجذر. لهذا السبب نتحقق دائمًا متغيرات البيئةلوجود أشياء مثيرة للاهتمام، ولأنفسنا نستخلص الاستنتاجات التالية:

  1. نحن لا نستخدمها أبدا. في متغير PATH.
  2. إذا كانت النقطة لا تزال موجودة هناك، ضعها السطر التاليفي .bashrc أو .profile:
    PATH= صدى $PATH | sed -e "s/::/:/g; s/:.:/:/g; s/:.$//; s/^://"

أدوات

لأتمتة البحث نقاط الضعفيمكنك استخدام الأدوات التالية:

1. LinEnum هو برنامج نصي bash سيقوم بكل الأعمال القذرة نيابةً عنك، حيث يقوم بإجراء جميع عمليات التحقق الموضحة في ورقة الغش هذه. في المجمل، يحتوي البرنامج على حوالي 65 عملية فحص مختلفة، بدءًا من الحصول على معلومات حول إصدار النواة وحتى البحث عن ملفات SUID/GUID المثيرة للاهتمام. وبالإضافة إلى ذلك، يمكنك تمرير البرنامج النصي الكلمة الرئيسية، والذي سيبحث عنه في كافة ملفات التكوين والسجل. يبدأ الفحص كما يلي: ./LinEnum.sh -k الكلمة الرئيسية -r report -e /tmp/ -t . بعد اكتمال الفحص، سيتم تقديم تقرير مفصل إلى حد ما أماكن مثيرة للاهتماموالتي سيتم تسليط الضوء عليها باللون الأصفر.
2. LinuxPrivChecker - برنامج نصي بلغة Python مفيد أيضًا في البحث عن الخيارات المحتملة لتصعيد الامتيازات. بشكل عام، يقوم بنفس الأشياء القياسية: التحقق من الامتيازات، والحصول على معلومات حول النظام... لكن ميزته الرئيسية هي أنه بعد اكتمال الفحص، سيقدم لك قائمة ببرامج استغلال الثغرات التي، في رأيه، ستساعدك رفع الامتيازات. هذا رجل جيد :).
3. يونيكس-privesc-التحقق - هذا البرنامج النصييسمح لك بالبحث عن خيارات لرفع مستوى الامتيازات ليس فقط في Linux، ولكن أيضًا في Solaris وHPUX وFreeBSD. يحاول اكتشاف أخطاء التكوين التي من شأنها أن تسمح لمستخدم لا يتمتع بامتيازات بالظهور في النظام.
4. مدونة g0tmi1k - وهي مدونة يتم فيها وصف جميع عمليات التحقق التي يتم إجراؤها بواسطة الأدوات الثلاثة المذكورة بشكل جيد. لذا أنصحك بشدة بإلقاء نظرة هناك والتعرف عليها حتى تتمكن من تخيل كيفية عمل هذه الأدوات من الداخل.



يحتوي LinuxPrivChecker على قائمة كبيرةاستغلال، والتي يتم تحديثها باستمرار من قاعدة بيانات استغلال

خاتمة

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

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

في Linux، يحق للمستخدم الجذر فقط إدارة نظام الملفات الجذر وإنشاء الملفات هناك.

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

قد يستغرق الأمر وقتًا طويلاً لسرد ما لا يستطيع مستخدم Linux العادي فعله؛ ومن الأسهل تحديد ما يحق له القيام به، أي متى اعداد افتراضيأذونات الملفات في Linux، يمكن للمستخدم العادي:

  • قراءة وكتابة وتغيير سمات الملفات في الدليل الخاص بك
  • قراءة وكتابة وتغيير سمات الملفات في الدليل /tmp
  • قم بتنفيذ البرامج حيث لا يُحظر استخدام علامة noexec
  • قراءة الملفات التي تم تعيين علامة القراءة عليها لجميع المستخدمين.

إذا أردنا القيام بشيء أكثر، فسنحتاج إلى حقوق مستخدم جذر Linux. يحق لـ Root القيام بكل شيء على نظام الملفات الخاص بك، بغض النظر عن الأذونات التي تم تعيينها على الملف.

تسجيل الدخول كمستخدم متميز

لتسجيل الدخول كجذر، يمكنك التبديل إلى أحد وحدات التحكم الافتراضية، على سبيل المثال، باستخدام اختصار لوحة المفاتيح Ctrl+Alt+F1 ثم أدخل جذر تسجيل الدخول و كلمة مرور الجذرمستخدم.

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

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

التبديل إلى المستخدم المتميز في المحطة

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

مستخدم خيارات $su

فيما يلي خياراته الرئيسية:

  • -ج، --الأمر- تنفيذ الأمر
  • -ز، --المجموعة- تعيين مجموعة المستخدمين الرئيسية (للجذر فقط)
  • -G --supp-group - مجموعات إضافيةالمستخدم (الجذر فقط)
  • -، -ل، --تسجيل الدخول- وضع تسجيل الدخول، سيتم مسح جميع متغيرات البيئة وتهيئتها مع مراعاة المستخدم الجديد، كما سيتم تغيير الدليل الرئيسي
  • -p، - الحفاظ على البيئة
  • -s، --shell- ضبط قذيفة تسجيل الدخول
  • --إصدار- عرض إصدار البرنامج.

الآن دعونا نجرب قليلاً لفهم كيفية عمل أمر su linux.

أولاً، لنقم بتشغيل su بدون معلمات، ولكن أولاً سنقوم بإنشاء متغير بيئة للتحقق من كيفية تعامل هذا الأمر معهم:

الآن نقوم بما يلي:

الآن دعونا نرى ما حدث:

من أنا
$pwd
$ صدى $ VAR
$ صدى $PATH
$ الخروج

من هذه الأوامر نرى أننا الآن المستخدم الجذر، ولكن الدليل الرئيسي يعتبر هو الدليل لمستخدمنا السابق ولم يتم حفظ المتغير الخاص بنا، وتم تغيير متغير PATH، والآن يتم إضافة المسار /sbin هناك .

الآن نستخدم وضع تسجيل الدخول:

ودعونا نكرر نفس التركيبة:

من أنا
$pwd
$ صدى $ VAR
$ صدى $PATH
$ الخروج

نفس الوضع، لكن هذه المرة تغير الدليل الرئيسيإلى الدليل الجذر. ولكن يمكننا حفظ متغيرات البيئة الخاصة بنا إذا لزم الأمر، هناك خيار -p لهذا:

كما ترون، يبقى المتغير لدينا. يمكنك أيضًا التبديل إلى أي مستخدم آخر. على سبيل المثال:

يتم استخدام الحصول على حقوق المستخدم المتميز بهذه الطريقة في العديد من التوزيعات، على سبيل المثال، Debian، وOpenSUSE، وArchLinux، وGentoo، وما إلى ذلك. ولكن في Ubuntu، كتوزيع للمبتدئين، يتم تعطيل تسجيل الدخول كمستخدم جذر. ويتم ذلك لأنه أيضًا ليس آمنًا جدًا؛ فقد تنسى أنك تقوم بتنفيذ أمر كجذر وتفعل شيئًا خاطئًا في النظام. لذلك، دعونا ننتقل إلى البرنامج التالي.

الحصول على حقوق الجذر دون التبديل

لتنفيذ الواجهة الأكثر أمانًا للعمل مع حقوق المستخدم المتميز في Linux، تم تطوير الأمر sudo. دعونا نلقي نظرة على ما هو سودو. تتم كتابة هذا الأمر قبل كل أمر يجب تنفيذه كمستخدم متميز، ولتنفيذه، تحتاج إلى إدخال كلمة المرور ليس للجذر، ولكن فقط للمستخدم الخاص بك. تماما مثل سابقتها، هذه الأداة لديها خياراتها الخاصة. دعونا نلقي نظرة على بناء الجملة أولا:

أمر خيارات $ sudo

خيارات البرنامج:

  • - تنفيذ الأداة المساعدة التي تم إطلاقها في الخلفية
  • -E- حفظ متغيرات البيئة
  • - قم بتشغيل الأمر من المجموعة
  • - استخدم الدليل الرئيسي
  • - عرض قائمة أذونات Sudo للمستخدم الحالي
  • - استخدم دور SELinux للأمر
  • - استخدام قذيفة
  • - قم بتشغيل الأمر كمستخدم، إذا لم يتم تحديده، استخدم الجذر
  • -أنا- لا تنفذ الأمر، بل أدخل الصدفة، أي ما يعادل su -

يمكنك إجراء نفس التجارب، فقط لهذا الأمر، لفهم كيفية استخدام أمر sudo. على سبيل المثال:

يعد استخدام Sudo هو الطريقة الموصى بها لتشغيل الأوامر كجذر على Linux. بهذه الطريقة لن تنسى ما تتعامل معه وستكون أقل عرضة لخطر إتلاف النظام. ولكن هناك سؤال آخر لم يتم حله بعد - ماذا تفعل بالأدوات المساعدة الرسومية؟ بعد كل شيء، لا يقوم الأمر sudo بتشغيلها، كما أن تشغيل الصدفة الرسومية كجذر أمر غير آمن. وهذا ما سننظر إليه بعد ذلك.

التطبيقات الرسومية كمستخدم متميز

للبداية التطبيقات الرسوميةموجودة نيابة عن المستخدم المتميز المرافق الخاصة. يحتفظون بجميع متغيرات البيئة والأذونات الضرورية. في KDE هذا هو الأمر kdesu، وفي Gnome هو الأمر gksu.

فقط اكتب gksu أو kdesu متبوعًا بالأمر الذي تريده:

سيتم تشغيل هذا الأمر مدير الملفاتكيدي مع حقوق المستخدم المتميز. في جنوم سيبدو مثل هذا:

سيطلب البرنامج كلمة مرور في النافذة الرسومية، ثم سيتم فتح مدير الملفات.

الاستنتاجات

هذا كل شئ. الآن أنت تعرف كيفية الحصول على حقوق المستخدم المتميز في Linux، وتعرف كيفية استخدام أمر sudo وما هو الفرق بين sudo وsu. الآن البرامج التي تتطلب امتيازات إضافية على النظام لن تسبب لك مشاكل. إذا كان لديك أي أسئلة، اكتب في التعليقات!

المستخدم الجذر و سودو

المستخدم الجذر في أنظمة GNU/Linux هو المستخدم الذي لديه الوصول الإداريإلى النظام الخاص بك. المستخدمين العاديينلم يكن لديك هذا الوصول لأسباب تتعلق بعدم وجود قوة. ومع ذلك، ليس لدى Kubuntu مستخدم جذر. وبدلاً من ذلك، يتم منح حق الوصول الإداري للمستخدمين الفرديين، الذين يمكنهم استخدام تطبيق "sudo" لأداء المهام الإدارية. أولاً حساب، الذي تم إنشاؤه أثناء تثبيت النظام، سيتمكن افتراضيًا من الوصول إلى تطبيق sudo. يمكنك رفض وصول Sudo أو منحه باستخدام أحد التطبيقات المستخدمين والمجموعات (راجع "المستخدمون والمجموعات").

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

لاستخدام سودو في سطر الأوامرفقط اكتب "sudo" قبل الأمر الذي تريد تشغيله. بعد ذلك، سيطلب منك Sudo إدخال كلمة المرور الخاصة بك.

سوف يتذكر Sudo كلمة المرور الخاصة بك ضبط الوقت(الافتراضي 15 دقيقة). تتيح هذه الميزة للمستخدمين الأداء عدد كبير منالمهام الإدارية دون الحاجة إلى إدخال كلمة المرور في كل مرة.

انتباه

كن حذرًا عند أداء المهام الإدارية - فقد تدمر نظامك!

بعض النصائح لاستخدام سودو:

    لاستخدام محطة المستخدم الجذر، اكتب "sudo -i" في موجه الأوامر

    المجموعه كلها المرافق الرسوميةيستخدم التكوين في Kubuntu بالفعل Sudo، لذلك سيُطلب منك كلمة مرور باستخدام التطبيق إذا لزم الأمر kdesu، الذي قذيفة رسومية sudo .

    خلف مزيد من المعلوماتعن طريق البرنامج sudoوغياب المستخدم الجذر في كوبونتو، راجع صفحة Sudo على Ubuntu wiki.

تشغيل البرامج يدويا بامتيازات الجذر

في بعض الأحيان يكون من الضروري تشغيل برنامج باستخدام امتيازات الجذر. من السهل القيام بذلك باستخدام الحوار الأمر Run .

انتباه

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

    حوار مفتوح الأمر Run عن طريق الضغط بديل -F2

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