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 ~ # بيروح لفولدر ال home
ls
– 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.txt
mkdir
– Make Directorymkdir test
rm
– Removerm file.txt
rm -r folder/ # لحذف مجلد
استخدمه بحذر. ودايمًا خد بالك من rm -rf /
اوعي تجربها هتمسح ملفات النظام
find
– البحث عن الملفاتfind / -name "passwd"
مهم جدًا في مرحلة جمع المعلومات (Enumeration) لو عايز تلاقي ملفات حساسة.
help
يعرض مساعدة للأوامر الداخلية للـ shell:
help cd
man
– Manual Pagesman ls
صفحات فيها شرح كل حاجة عن الأمر.
whatis
يعطيك تعريف سريع لأي أمر:
whatis ls
alias
ينشئ اختصار لأمر معين:
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 $USER
env
📌 أهم متغير:
echo $PATH
nmap
، النظام بيدوّر عليه في المسارات اللي في $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.txt
cut -c 5 sample.txt
⬅️ بيطبع الحرف رقم 5 من كل سطر.
cut -f 2 sample.txt
⬅️ بيستعمل TAB كفاصل افتراضي.
cut -f 1 -d ";" sample.txt
⬅️ الفاصل دلوقتي ;
والنتيجة هتكون الجزء قبل الـ ;
🎯 كمهاجم:
مفيد جدًا لما يكون معاك بيانات بصيغة CSV أو ملفات Config وتقسم الحقول علشان تحللهم.
sample2.txt:
The
quick
brown
fox
paste -s sample2.txt
⬅️ بيفصل بينهم TAB.
paste -d ' ' -s sample2.txt
⬅️ الناتج: The quick brown fox
🎯 مفيد في دمج أسطر في ملفات config أو توليد أوامر معينة بشكل آلي.
head
– يعرض أول سطور:head -n 5 /etc/passwd
tail
– يعرض آخر سطور:tail -n 5 /var/log/syslog
🎯 هجوميًا:
tail -f /var/log/auth.log # show file changes live
expand
: يحول التاب لمسافات.expand file.txt
unexpand
: العكس.🎯 أداة مفيدة في تحليل ملفات متنسقة بالتاب.
split
– تقسيم ملفات:split -l 100 big.txt parts_
⬅️ يقسم الملف كل 100 سطر لملف جديد.
join
– دمج سطور من ملفين (على أساس العمود الأول المشترك):join file1.txt file2.txt
sort users.txt
🎯 لازم تستخدمه قبل uniq
لو عايز تحذف تكرارات.
tr a-z A-Z
⬅️ يحوّل كل النصوص لحروف كبيرة.
🎯 مفيد في sanitization، خاصة في الأدوات اللي بتحتاج تنسيق أسماء أو data موحدة.
apple
apple
banana
banana
orange
uniq file.txt
uniq -c file.txt
uniq -d file.txt
🎯 معلومة مهمة: لازم الأسطر تكون متتالية.
✅ الحل: استخدم sort
قبلها:
sort file.txt | uniq
wc
: عد الكلمات والأسطر:wc /etc/passwd
# عدد السطور – الكلمات – البايتات
wc -l /etc/passwd # عدد السطور فقط
nl
: يرقم الأسطر:nl file.txt
grep fox sample.txt
grep -i fox sample.txt
env | grep USER
ls /etc | grep '\\.conf$'
🎯 أداة لا غنى عنها لأي مهاجم أو محلل بيانات.
cut
استخراج كلمات سر أو أسماء من ملفات
tee
مشاهدة النتيجة وتسجيلها أثناء التشغيل
sort/uniq
ترتيب الملف او توحيده
tr
تحويل التنسيق لمقارنة بيانات
grep
البحث عن مؤشرات اختراق أو كلمات سر
wc
عد الأسطر مثل في ملفات logs أو users
head/tail
معاينة أول أو آخر الأحداث
env
استخراج معلومات المستخدم والبيئة