Day1 Linux(CLI + Text-Fu)
7/21/2025

7/21/2025

التوزيعة مميزاتها مناسبة لمين؟ Debian مستقرة – مجانية – قوية مناسب لسيرفرات أو بيئة اختراق مستقرة RHEL موجهة للمؤسسات – مدفوعة – قوية جدًا مناسب لو هتشتغل في شركات Ubuntu سهلة – مدعومة – مستخدمة بكثرة مناسب للمبتدئين والمطورين
apt لتثبيت البرامج.yum أو dnf.
# مثال:sudo apt install nmap # في Debian/Ubuntusudo dnf install nmap # في RHEL/Fedora
الـ Shell هو البرنامج اللي بيتلقى أوامرك من الكيبورد وبيبعثها لنظام التشغيل علشان ينفذها.
في الأنظمة الرسومية (GUI)، ممكن تشوفه باسم "Terminal" أو "Console"، لكن جوه هو بيشغّل برنامج اسمه Shell.
في الكورس ده هنشتغل على Bash (Bourne Again Shell)، وده الافتراضي في أغلب توزيعات لينوكس.
فيه شيلز تانية (zsh, ksh, tsch)، لكن مش هنغوص فيها دلوقتي.
username@hostname:current_directory $
# مثال
pete@icebox:/home/pete $$ معناها إنك مستخدم عادي.# بدل $.🎯 معلومة لمهاجم:
لو دخلت على جهاز وشفْت الـ prompt فيه # بدل $، يبقى معاك صلاحيات root – مفتاح لأي حاجة تقريبًا.
echoيطبع أي نص على الشاشة.
echo Hello World📌 مفيد في السكربتات، اختبار متغيرات، أو إرسال بيانات في الاستغلالات.
pwd – Print Working Directoryيعرض المسار الحالي اللي أنت واقف فيه.
pwd
مهم جدًا كمهاجم عشان تعرف أنت شغال فين على السيرفر أو النظام.
cd – Change Directoryلتغيير المجلد الحالي:
cd /etc # بيروح لفولدر etc
cd .. # بيرجع لورا فولدر
cd ~ # بيروح لفولدر ال homels – List Filesلعرض الملفات والمجلدات.
ls
ls -l # عرض مفصل
ls -a # عرض الملفات المخفية
# تقدر تستخدم -la مع بعض عادي بدل -l -a
ls -la📌 ls -la مفضّلة عند المهاجمين لاستكشاف كل محتوى مجلد معين.
touchينشئ ملف فاضي.
touch test.txt🎯 ممكن تستخدمه لإنشاء ملفات مؤقتة في مراحل post-exploitation.
fileيعرض نوع الملف:
file test.txt📌 بيعرفك لو الملف تنفيذي، سكربت، صورة... الخ.
catلعرض محتوى ملف:
cat /etc/passwd
أداة قوية لمهاجمين بيستخرجوا بيانات من ملفات النظام زي passwd, shadow, authorized_keys.
lessلعرض ملفات طويلة بشكل قابل للتنقل.
less /var/log/syslogاستخدم الأسهم أو q للخروج.
historyيعرض الأوامر اللي استخدمتها قبل كده.
history
مهاجم محترف دايمًا يراجع history بتاعة الضحية علشان يعرف إيه البرامج أو الأوامر اللي استخدمها.
cp – Copycp file.txt /tmp/mv – Move / Renamemv file.txt newname.txtmkdir – Make Directorymkdir testrm – Removerm file.txt
rm -r folder/ # لحذف مجلد
استخدمه بحذر. ودايمًا خد بالك من rm -rf / اوعي تجربها هتمسح ملفات النظام
find – البحث عن الملفاتfind / -name "passwd"مهم جدًا في مرحلة جمع المعلومات (Enumeration) لو عايز تلاقي ملفات حساسة.
helpيعرض مساعدة للأوامر الداخلية للـ shell:
help cdman – Manual Pagesman lsصفحات فيها شرح كل حاجة عن الأمر.
whatisيعطيك تعريف سريع لأي أمر:
whatis lsaliasينشئ اختصار لأمر معين:
alias ll='ls -la'ممكن تستخدمه في إعداد بيئة استغلال خاصة بيك بإنك تجهز aliases لأوامر الهجوم.
لكن لو عايز تعمل اختصار دائم :
nano ~/.zshrc # وضيف اختصارك ف اخر الملف
# OR # علي حسب شغال ب shell
nano ~/.bashrc
# عشان تحفظ الملف
CTRL + S
CTRL + Xالأمر الوظيفة
echo طباعة نص
pwd عرض المسار الحالي
cd التنقل بين المجلدات
ls عرض محتوى المجلد
touch إنشاء ملف جديد
file معرفة نوع الملف
cat عرض محتوى ملف
less قراءة ملفات طويلة
history عرض الأوامر السابقة
cp نسخ ملفات
mv نقل أو إعادة تسمية
mkdir إنشاء مجلد
rm حذف ملف أو مجلد
find البحث عن الملفات
help شرح للأوامر الداخلية
man الدليل الكامل للأوامر
whatis تعريف مختصر للأمر
alias إنشاء اختصارات
في لينوكس، كل برنامج بيشتغل بيتعامل مع 3 أنواع من تدفق البيانات (Streams):
stdin "Standard Input" - مدخل البيانات (عادة من الكيبورد)
stdout "Standard Output" - الإخراج الطبيعي (اللي بيظهر على الشاشة) 1
stderr "Standard Error" - مكان ظهور الأخطاء (برضه على الشاشة غالبًا) 2
لو عايز اضيف حاجة ف ملف ع طول من غير ما اعمل ملف وبعد كدا اكتب جواه :
echo "will create new file" > filefromecho.txtعلامة السهم الواحد < معناها المطبوع علي الشاشة هيروح للملف اللي كاتبين اسمه<<echo "will add new line at the end of file" >> filefromecho.txtعلامة السهم + 2 معناها ان الاخطاء اللي هتظهر هتروح لملف معين <2
# will make error
ls iamnothere 2> error.txt كدا هيودي اي اخطاء ف ملف ال error.txt
لكن الاحسن نودي اي اخطاء علي الفولدر /dev/null
لأنه عامل زي ثقب اسود بيسحب اي حاجة بتجيله
# will make error
ls iamnothere 2> /dev/nullلو بتشغل أداة، زي nmap، وتبعت الناتج لملف:
nmap -sS 10.10.10.10 > scan.txt 2> errors.txt> بيحول stdout لملف.2> بيحول stderr لملف تاني.🎯 فكر هجومي:
لو بتشغّل سكربت استغلال وعايز ترصد الأخطاء أو نتائج معينة، لازم تكون فاهم إزاي تتحكم في الـ streams دي.
|) و tee|:cat /etc/passwd | grep root🎯 في الواقع الهجومي:
ps aux | grep apacheبتستخدمها تراقب العمليات اللي بتخص خدمة معينة.
tee:بتطبع الناتج على الشاشة وتخزنه في ملف في نفس الوقت.
whoami | tee output.txt🎯 مفيد لما تكون بتسجل ناتج السكربت live وأنت بتتفرج عليه.
$PATH)$USER)$PWD)echo $HOME
echo $USERenv📌 أهم متغير:
echo $PATHnmap، النظام بيدوّر عليه في المسارات اللي في $PATH.لو رفعت بايناري للاستغلال داخل /tmp/mytool وشغلته كده:
mytool
وغالبًا هتاخد:
command not found
لأن /tmp/mytool مش موجود في $PATH.
export PATH=$PATH:/tmp/mytoolأمر مهم جدًا لما تتعامل مع ملفات system أو outputs طويلة.
echo 'The quick brown; fox jumps over the lazy dog' > sample.txtcut -c 5 sample.txt⬅️ بيطبع الحرف رقم 5 من كل سطر.
cut -f 2 sample.txt⬅️ بيستعمل TAB كفاصل افتراضي.
cut -f 1 -d ";" sample.txt⬅️ الفاصل دلوقتي ; والنتيجة هتكون الجزء قبل الـ ;
🎯 كمهاجم:
مفيد جدًا لما يكون معاك بيانات بصيغة CSV أو ملفات Config وتقسم الحقول علشان تحللهم.
sample2.txt:
The
quick
brown
foxpaste -s sample2.txt⬅️ بيفصل بينهم TAB.
paste -d ' ' -s sample2.txt⬅️ الناتج: The quick brown fox
🎯 مفيد في دمج أسطر في ملفات config أو توليد أوامر معينة بشكل آلي.
head – يعرض أول سطور:head -n 5 /etc/passwdtail – يعرض آخر سطور:tail -n 5 /var/log/syslog🎯 هجوميًا:
tail -f /var/log/auth.log # show file changes live expand: يحول التاب لمسافات.expand file.txtunexpand: العكس.🎯 أداة مفيدة في تحليل ملفات متنسقة بالتاب.
split – تقسيم ملفات:split -l 100 big.txt parts_⬅️ يقسم الملف كل 100 سطر لملف جديد.
join – دمج سطور من ملفين (على أساس العمود الأول المشترك):join file1.txt file2.txtsort users.txt🎯 لازم تستخدمه قبل uniq لو عايز تحذف تكرارات.
tr a-z A-Z⬅️ يحوّل كل النصوص لحروف كبيرة.
🎯 مفيد في sanitization، خاصة في الأدوات اللي بتحتاج تنسيق أسماء أو data موحدة.
apple
apple
banana
banana
orangeuniq file.txtuniq -c file.txtuniq -d file.txt🎯 معلومة مهمة: لازم الأسطر تكون متتالية.
✅ الحل: استخدم sort قبلها:
sort file.txt | uniqwc: عد الكلمات والأسطر:wc /etc/passwd
# عدد السطور – الكلمات – البايتات
wc -l /etc/passwd # عدد السطور فقطnl: يرقم الأسطر:nl file.txtgrep fox sample.txtgrep -i fox sample.txtenv | grep USERls /etc | grep '\\.conf$'🎯 أداة لا غنى عنها لأي مهاجم أو محلل بيانات.
cut استخراج كلمات سر أو أسماء من ملفات
tee مشاهدة النتيجة وتسجيلها أثناء التشغيل
sort/uniq ترتيب الملف او توحيده
tr تحويل التنسيق لمقارنة بيانات
grep البحث عن مؤشرات اختراق أو كلمات سر
wc عد الأسطر مثل في ملفات logs أو users
head/tail معاينة أول أو آخر الأحداث
env استخراج معلومات المستخدم والبيئة