مرحبًا بكم في الجزء الثاني من سلسلة "أساسيات Linux" المعدلة. سنقوم بتطبيق معرفتنا من الدفعة الأولى في هذه السلسلة ، لذلك أوصي بشدة بإكمال الجزء الاول قبل المضي قدمًا.
في الجزء الثاني ، سنتخلى عن وظائف المتصفح ونساعدك على البدء في ما يُعد مهارة أساسية في القدرة على تسجيل الدخول والتحكم في المحطات الطرفية للأجهزة البعيدة. ليس هذا فحسب ، بل ستحتوي الغرفة أيضًا على:
- أطلق العنان لإمكانيات أوامرك القليلة الأولى من خلال تعريفك باستخدام العلامات والحجج
- تطوير معرفتك بنظام الملفات لأداء بعض الأوامر المفيدة مثل نسخ الملفات ونقلها
- تعريفك بآليات الوصول المعمول بها للحفاظ على أمان الملفات والمجلدات وكيفية تحديد الأشياء التي يمكن لمستخدمنا الحالي الوصول إليها أيضًا
- تشغيل أول عدد قليل من البرامج النصية والملفات التنفيذية!
تسمح غالبية الأوامر بتقديم الحجج. يتم تحديد هذه الوسيطات بواسطة واصلة وكلمة أساسية معينة تُعرف بالعلامات أو رموز التبديل.
سنناقش لاحقًا كيف يمكننا تحديد الأوامر التي تسمح بتقديم الحجج وفهم ما تفعله هذه بالضبط.
عند استخدام أمر ما ، ما لم يتم تحديد خلاف ذلك ، فإنه سيؤدي سلوكه الافتراضي. على سبيل المثال ، ls
يسرد محتويات دليل العمل. ومع ذلك ، لا تظهر الملفات المخفية. يمكننا استخدام الأعلام والمفاتيح لتوسيع سلوك الأوامر.
باستخدام مثالنا ls
، ls
يخبرنا أنه لا يوجد سوى مجلد واحد باسم "folder1" كما هو موضح في لقطة الشاشة أدناه. لاحظ أن المحتويات الواردة في لقطات الشاشة أدناه ليست سوى أمثلة.
tryhackme@linux2:~$ lsfolder1tryhackme@linux2:~$
ومع ذلك ، بعد استخدام -a
الوسيطة (اختصار لـ --all
) ، أصبح لدينا الآن إخراجًا يحتوي على عدد قليل من الملفات والمجلدات الأخرى مثل ".hiddenfolder". الملفات والمجلدات ذات " . " هي ملفات مخفية.
tryhackme@linux2:~$ ls -a .hiddenfolder folder1tryhackme@linux2:~$
الأوامر التي تقبل هذه سيكون لها أيضًا --help
خيار. سيقوم هذا الخيار بسرد الخيارات الممكنة التي يقبلها الأمر ، ويقدم وصفًا موجزًا ومثالًا عن كيفية استخدامه.
tryhackme@linux2:~$ ls --helpUsage: ls [OPTION]... [FILE]...List information about the FILEs (the current directory by default).Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.
Mandatory arguments to long options are mandatory for short options too. -a, --all do not ignore entries starting with . -A, --almost-all do not list implied . and .. --author with -l, print the author of each file -b, --escape print C-style escapes for nongraphic characters --block-size=SIZE with -l, scale sizes by SIZE when printing them; e.g., '--block-size=M'; see SIZE format below -B, --ignore-backups do not list implied entries ending with ~ -c with -lt: sort by, and show, ctime (time of last modification of file status information); with -l: show ctime and sort by name; otherwise: sort by ctime, newest first -C list entries by columns --color[=WHEN] colorize the output; WHEN can be 'always' (default if omitted), 'auto', or 'never'; more info below -d, --directory list directories themselves, not their contents -D, --dired generate output designed for Emacs' dired mode -f do not sort, enable -aU, disable -ls --color -F, --classify append indicator (one of */=>@|) to entries --file-type likewise, except do not append '*' --format=WORD across -x, commas -m, horizontal -x, long -l, single-column -1, verbose -l, vertical -C --full-time like -l --time-style=full-iso -g like -l, but do not list owner --group-directories-firsttryhackme@linux2:~$
هذا الخيار هو ، في الواقع ، ناتج منسق لما يسمى صفحة الدليل (اختصار يدوي) ، والتي تحتوي على وثائق لأوامر وتطبيقات Linux.
صفحة الدليل
تعد صفحات الدليل مصدرًا رائعًا للمعلومات لكل من أوامر النظام والتطبيقات المتاحة على كل من جهاز Linux ، والذي يمكن الوصول إليه من الجهاز نفسه وعبر الإنترنت .
للوصول إلى هذه الوثائق ، يمكننا استخدام man
الأمر ثم توفير الأمر الذي نريد قراءة التوثيق الخاص به. باستخدام مثال ls الخاص بنا ، سنستخدمه man ls
لعرض صفحات الدليل لما ls
يلي:
tryhackme@linux2:~$ man lsLS(1) User Commands LS(1)
NAME ls - list directory contents
SYNOPSIS
ls [OPTION]... [FILE]...
DESCRIPTION
List information about the FILEs (the current directory by default). Sort entries alphabetically if none of
-cftuvSUX nor --sort is specified.
Mandatory arguments to long options are mandatory for short options too.
-a, --all
do not ignore entries starting with .
-A, --almost-all
do not list implied . and ..
--author
with -l, print the author of each file
-b, --escape
print C-style escapes for nongraphic characters
--block-size=SIZE
with -l, scale sizes by SIZE when printing them; e.g., '--block-size=M'; see SIZE format below
Manual page ls(1) line 1 (press h for help or q to quit)
لقد غطينا بعضًا من أكثر الأوامر الأساسية عند التفاعل مع نظام الملفات على جهاز Linux. على سبيل المثال ، تناولنا كيفية سرد محتويات المجلدات والعثور عليها باستخدام ls
نظام find
الملفات والتنقل فيه cd
.
في هذه المهمة ، سنتعلم المزيد من الأوامر للتفاعل مع نظام الملفات للسماح لنا بما يلي:
- إنشاء الملفات والمجلدات
- نقل الملفات والمجلدات
- حذف الملفات والمجلدات
بشكل أكثر تحديدًا ، الأوامر التالية:
الامر | الاسم الكامل | فائدة الامر |
touch | touch | إنشاء ملف |
mkdir | make directory | قم بإنشاء مجلد |
cp | copy | انسخ ملفًا أو مجلدًا |
mv | move | انقل ملفًا أو مجلدًا |
rm | remove | قم بإزالة ملف أو مجلد |
file | file | حدد نوع الملف |
Protip: على غرار استخدام cat ، يمكننا توفير مسارات ملفات كاملة ، مثل directory1 / directory2 / note لجميع هذه الأوامر
إنشاء الملفات والمجلدات (المس ، مكدير)
يعد إنشاء الملفات والمجلدات على Linux عملية بسيطة. أولاً ، سنغطي إنشاء ملف. يأخذ الأمر touch وسيطة واحدة بالضبط - الاسم الذي نريد إعطاء الملف الذي ننشئه. على سبيل المثال ، يمكننا إنشاء ملف "note" باستخدام touch note
. تجدر الإشارة إلى أن اللمس ينشئ ملفًا فارغًا. ستحتاج إلى استخدام أوامر مثل echo أو محررات النصوص مثل nano لإضافة محتوى إلى الملف الفارغ.
tryhackme@linux2:~$ touch notetryhackme@linux2:~$ ls folder1 note
هذه عملية مماثلة لإنشاء مجلد ، والتي تتضمن فقط استخدام mkdir
الأمر وتقديم الاسم الذي نريد تعيينه للدليل مرة أخرى. على سبيل المثال ، إنشاء دليل "mydirectory" باستخدام mkdir mydirectory
.
tryhackme@linux2:~$ mkdir mydirectorytryhackme@linux2:~$ ls folder1 mydirectory note
إزالة الملفات والمجلدات (rm)
rm
أمر استثنائي من بين الأوامر التي غطيناها حتى الآن. يمكنك ببساطة إزالة الملفات باستخدام rm
. ومع ذلك ، تحتاج إلى توفير رمز -R
التبديل بجانب اسم الدليل الذي تريد إزالته.
tryhackme@linux2:~$ rm notetryhackme@linux2:~$ ls folder1 mydirectory
tryhackme@linux2:~$ rm -R mydirectorytryhackme@linux2:~$ ls folder1
نسخ الملفات والمجلدات ونقلها (cp، mv)
يعد نسخ الملفات ونقلها وظيفة مهمة على جهاز Linux. بدءًا بـ cp
، يأخذ هذا الأمر وسيطتين:
1. اسم الملف الموجود
2. الاسم الذي نرغب في تخصيصه للملف الجديد عند النسخ
cp
ينسخ محتويات الملف الموجود بالكامل في الملف الجديد. في لقطة الشاشة أدناه ، نقوم بنسخ "note" إلى "note2".
tryhackme@linux2:~$ cp note note2tryhackme@linux2:~$ ls folder1 note note2
يتطلب نقل ملف وسيطتين ، تمامًا مثل الأمر cp. ومع ذلك ، بدلاً من نسخ و / أو إنشاء ملف جديد ، mv
سيتم دمج أو تعديل الملف الثاني الذي نقدمه كوسيطة. لا يمكنك فقط mv
نقل ملف إلى مجلد جديد ، ولكن يمكنك أيضًا استخدامه mv
لإعادة تسمية ملف أو مجلد. على سبيل المثال ، في لقطة الشاشة أدناه ، نقوم بإعادة تسمية الملف "note2" ليتم تسميته "note3". "note3" ستحتوي الآن على محتويات "note2".
tryhackme@linux2:~$ mv note2 note3tryhackme@linux2:~$ ls folder1 note note3
تحديد نوع الملف
غالبًا ما يكون مضللًا وغالبًا ما يلفت انتباه الناس هو وضع افتراضات من الملفات حول الغرض أو المحتويات التي قد تكون. عادةً ما تحتوي الملفات على ما يُعرف بالامتداد لتسهيل ذلك. على سبيل المثال ، عادةً ما يكون للملفات النصية امتداد ".txt". ولكن هذا ليس ضروريا.
حتى الآن ، الملفات التي استخدمناها في أمثلةنا ليس لها امتداد. بدون معرفة سياق وجود الملف - لا نعرف حقًا الغرض منه. أدخل file
الأمر. هذا الأمر يأخذ حجة واحدة. على سبيل المثال ، سنستخدم file
لتأكيد ما إذا كان ملف "note" في الأمثلة لدينا هو بالفعل ملف نصي أم لا ، مثل ذلك file note
.
tryhackme@linux2:~$ file notenote: ASCII text
كما اكتشفت بالفعل الآن ، لا يمكن لبعض المستخدمين الوصول إلى ملفات أو مجلدات معينة. لقد اكتشفنا سابقًا بعض الأوامر التي يمكن استخدامها لتحديد نوع الوصول الذي نتمتع به وأين يقودنا.
في مهامنا السابقة ، تعلمنا كيفية توسيع استخدام الأوامر من خلال الأعلام والمفاتيح. خذ ، على سبيل المثال ، ls
الأمر الذي يسرد محتويات الدليل الحالي. عند استخدام -l
المفتاح ، يمكننا رؤية عشرة أعمدة كما في لقطة الشاشة أدناه. ومع ذلك ، نحن مهتمون فقط بالأعمدة الثلاثة الأولى:
tryhackme@linux2:~$ ls -lh-rw-r--r-- 1 cmnatic cmnatic 0 Feb 19 10:37 file1-rw-r--r-- 8 cmnatic cmnatic 0 Feb 19 10:37 file2
على الرغم من كونها مخيفة ، إلا أن هذه الأعمدة الثلاثة مهمة جدًا في تحديد خصائص معينة لملف أو مجلد وما إذا كان بإمكاننا الوصول إليه أم لا. يمكن أن يحتوي الملف أو المجلد على سمتين من الخصائص التي تحدد كلاً من الإجراءات المسموح بها والمستخدم أو المجموعة التي لديها القدرة على تنفيذ الإجراء المحدد - مثل ما يلي:
- اقرأ
- يكتب
- نفذ - اعدم
استخدام su للتبديل إلى user2
tryhackme@linux2:~$ su user2Password:user2@linux2:/home/tryhackme$
دعنا نستخدم ملف "cmnatic.pem" في لقطة الشاشة الأولية أعلى هذه المهمة. يحتوي على مؤشر "-" يبرز أنه ملف ثم يتبع "rw" بعده. هذا يعني أن مالك الملف فقط هو من يمكنه القراءة والكتابة إلى هذا الملف "cmnatic.pem" ولكن لا يمكنه تنفيذه.
باختصار: الاختلافات بين المستخدمين والمجموعات
لقد استكشفنا هذا باختصار في الجزء الأول من أساسيات Linux (أي الاختلافات بين مستخدم عادي ومستخدم نظام). إن الشيء العظيم في Linux هو أن الأذونات يمكن أن تكون دقيقة للغاية ، بحيث أنه بينما يمتلك المستخدم ملفًا تقنيًا ، إذا تم تعيين الأذونات ، فيمكن لمجموعة من المستخدمين أيضًا الحصول على نفس الأذونات أو مجموعة مختلفة من الأذونات لنفسها بالضبط ملف دون التأثير على مالك الملف نفسه.
دعونا نضع هذا في سياق العالم الحقيقي. يجب أن يكون لدى مستخدم النظام الذي يقوم بتشغيل خادم الويب أذونات لقراءة الملفات وكتابتها من أجل تطبيق ويب فعال. ومع ذلك ، يتعين على الشركات مثل شركات استضافة الويب السماح لعملائها بتحميل ملفاتهم الخاصة على مواقع الويب الخاصة بهم دون أن يكونوا مستخدمين لنظام خادم الويب - مما يعرض أمن كل عميل آخر للخطر.
سنتعرف على الأوامر اللازمة للتبديل بين المستخدمين أدناه.
التبديل بين المستخدمين
يعد التبديل بين المستخدمين على تثبيت Linux عملاً سهلاً بفضل su
الأمر. ما لم تكن أنت المستخدم الجذر (أو تستخدم أذونات الجذر من خلال sudo) ، فأنت مطالب بمعرفة شيئين لتسهيل هذا الانتقال لحسابات المستخدمين:
- المستخدم الذي نرغب في التبديل إليه
- كلمة مرور المستخدم
يأخذ su
الأمر بضعة مفاتيح قد تكون ذات صلة بك. على سبيل المثال ، تنفيذ أمر بمجرد تسجيل الدخول أو تحديد قذيفة معينة لاستخدامها. أشجعك على قراءة صفحة الرجل su
لمعرفة المزيد. ومع ذلك ، سوف أقوم بتغطية -l
أو --login
التبديل.
ببساطة ، من خلال توفير -l
التبديل إلى su
، نبدأ قذيفة تشبه إلى حد كبير المستخدم الفعلي الذي يقوم بتسجيل الدخول إلى النظام - نحن نرث الكثير من خصائص المستخدم الجديد ، مثل متغيرات البيئة وما شابه.
tryhackme@linux2:~$ su user2Password:user2@linux2:/home/tryhackme$
على سبيل المثال ، عند استخدام su
التبديل إلى "user2" ، فإن جلستنا الجديدة تنقلنا إلى الدليل الرئيسي للمستخدم السابق.
tryhackme@linux2:~$ su -l user2Password:user2@linux2:~$ pwduser2@:/home/user2$
أين الآن ، بعد -l
الاستخدام ، أسقطتنا جلستنا الجديدة إلى الدليل الرئيسي لـ "المستخدم" تلقائيًا.
/etc
يعد الدليل الجذر هذا أحد أهم أدلة الجذر على نظامك. المجلد الخ (اختصار لـ إلى آخره) هو موقع شائع لتخزين ملفات النظام التي يستخدمها نظام التشغيل الخاص بك.
على سبيل المثال ، يحتوي ملف sudoers المميز في لقطة الشاشة أدناه على قائمة بالمستخدمين والمجموعات التي لديها إذن لتشغيل sudo أو مجموعة من الأوامر كمستخدم أساسي.
كما تم تمييز ملفي " passwd " و " shadow " أدناه . هذان الملفان خاصان بنظام Linux حيث أنهما يوضحان كيفية قيام نظامك بتخزين كلمات المرور لكل مستخدم بتنسيق مشفر يسمى sha512.
tryhackme@linux2:/etc$ lsshadow passwd sudoers sudoers.d
/ var
يعد دليل "/ var" ، حيث تكون "var" اختصارًا للبيانات المتغيرة ، أحد مجلدات الجذر الرئيسية الموجودة في تثبيت Linux. يخزن هذا المجلد البيانات التي يتم الوصول إليها أو كتابتها بشكل متكرر بواسطة الخدمات أو التطبيقات التي تعمل على النظام. على سبيل المثال ، تتم كتابة ملفات السجل من الخدمات والتطبيقات قيد التشغيل هنا ( / var / log ) ، أو البيانات الأخرى التي لا ترتبط بالضرورة بمستخدم معين (مثل قواعد البيانات وما شابه).
tryhackme@linux2:/var$ lsbackups log opt tmp
/ root
على عكس الدليل / home ، فإن المجلد / root هو في الواقع المنزل لمستخدم النظام "الجذر". لا يوجد أي شيء لهذا المجلد بخلاف مجرد فهم أن هذا هو الدليل الرئيسي للمستخدم "الجذر". ولكن ، من الجدير بالذكر أن الافتراض المنطقي هو أن هذا المستخدم سيكون لديه بياناته في دليل مثل " / home / root " افتراضيًا.
root@linux2:~# lsmyfile myfolder passwords.xlsx
/ tmp
هذا دليل جذر فريد موجود في تثبيت Linux. اختصار لـ " مؤقت " ، يكون الدليل / tmp متغيرًا ويستخدم لتخزين البيانات المطلوبة فقط للوصول إليها مرة أو مرتين. على غرار الذاكرة الموجودة على جهاز الكمبيوتر الخاص بك ، بمجرد إعادة تشغيل الكمبيوتر ، يتم مسح محتويات هذا المجلد.
ما هو مفيد لنا في pentesting هو أنه يمكن لأي مستخدم الكتابة إلى هذا المجلد افتراضيًا. بمعنى أنه بمجرد أن نتمكن من الوصول إلى آلة ، فإنها تعمل كمكان جيد لتخزين أشياء مثل نصوص التعداد الخاصة بنا.
root@linux2:/tmp# ls
todelete trash.txt rubbish.bin
عمل جيد! كانت هذه الغرفة ثقيلة للغاية من الناحية النظرية وغطت مجموعة كبيرة من الأساسيات في التعرف على نظام Linux. للتلخيص السريع ، علمتك هذه الغرفة:
- كيفية الاتصال بجهاز Linux عن بعد باستخدام SSH
- تعزيز استخدامك للأوامر من خلال توفير العلامات والمفاتيح وأين يمكنك الذهاب للتعرف على هذه لكل أمر (صفحات الدليل)
- بعض الأوامر التي ستستخدمها كثيرًا للتفاعل مع نظام الملفات ومحتوياته
- مقدمة موجزة عن أذونات الملفات وتبديل المستخدمين
- فقرة موجزة لأدلة الجذر المهمة على تثبيت Ubuntu Linux وكيف يمكننا استخدام البيانات المخزنة داخلها.
تعليقات: (0) إضافة تعليق