🚀 10- Post-Exploitation


#🚀 مقدمة إلى ما بعد الاختراق (Post-Exploitation)

🗣️ ما بعد الاختراق؟: هي المرحلة النهائية من عملية اختبار الاختراق (Penetration Testing). تتضمن هذه المرحلة جميع التكتيكات والتقنيات والإجراءات (TTPs) التي يقوم بها المهاجمون أو مختبرو الاختراق بعد الحصول على وصول مبدئي (Initial Access) إلى نظام مستهدف.

🗣️ منهجية ما بعد الاختراق:

  1. تعداد المعلومات المحلية (Local Enumeration): جمع معلومات مفصلة عن النظام المستهدف بعد اختراقه مثل معلومات النظام، والمستخدمين والمجموعات، ومعلومات الشبكة، والعمليات والخدمات.

  2. نقل الملفات (File Transfer): نقل الأدوات والملفات من نظام المهاجم إلى النظام المستهدف، أو العكس، لمساعدتك في تعميق الاختراق.

  3. ترقية الشيل (Upgrading Shells): تحويل جلسة الشيل غير التفاعلية التي تحصل عليها بعد الاستغلال إلى جلسة تفاعلية أو إلى جلسة Meterpreter الأكثر قوة.

  4. رفع الامتيازات (Privilege Escalation): الحصول على صلاحيات أعلى داخل النظام المستهدف، مثل صلاحيات المسؤول (Administrator) على Windows أو الجذر (Root) على Linux.

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

  6. تفريغ وتكسير الهاشات (Dumping & Cracking Hashes): استخراج كلمات المرور المشفرة (الهاشات) من النظام المستهدف ومحاولة فك تشفيرها للحصول على كلمات المرور بالنص الواضح.

  7. الارتكاز (Pivoting): استخدام النظام الذي تم اختراقه كنقطة انطلاق للوصول إلى أنظمة أخرى داخل نفس الشبكة الداخلية التي لا يمكن الوصول إليها مباشرة من نظام المهاجم.

  8. مسح الآثار (Clearing Tracks): إزالة جميع آثار وجودك وأنشطتك من النظام المستهدف لتقليل فرص اكتشافك.


💻 1. تعداد معلومات النظام (System Information)

🗣️ لماذا نجمع معلومات النظام؟: معلومات النظام تشمل تفاصيل حول نظام التشغيل، مثل اسمه وإصداره، ومعمارية النظام (32 بت أو 64 بت)، وتفاصيل الأجهزة، وحتى التحديثات المثبتة (Hotfixes). فهم هذه المعلومات يمكن أن يكشف عن نقاط ضعف محتملة أو تحديثات مفقودة يمكن استغلالها لرفع الامتيازات.

🗣️ أمثلة على المعلومات المستهدفة والأدوات:

  • معلومات أساسية: اسم المضيف، نوع نظام التشغيل (مثلاً Windows Server 2012R2، Linux Ubuntu)، ومعمارية نظام التشغيل (64 بت).

    • الأدوات:

      • Meterpreter: sysinfo.

      • Windows Command Shell: hostname، systeminfo.

      • Linux Bash Shell: hostname، uname -a، cat /etc/os-release.

  • التحديثات المثبتة (Hotfixes) على Windows: تعتبر قائمة التحديثات المثبتة حاسمة لتحديد ما إذا كان النظام قد تم تحديثه ضد ثغرات أمنية معينة.

    • الأدوات: systeminfo (يظهر قائمة)، wmic qfe get Caption,Description,HotFixID,InstalledOn (يظهر جدولاً منظماً).

  • الحزم المثبتة على Linux: قائمة بالحزم المثبتة وإصداراتها يمكن أن تكشف عن برامج قديمة تحتوي على ثغرات أمنية.

    • الأدوات: dpkg -l (لتوزيعات Debian/Ubuntu) أو rpm -qa (لتوزيعات Red Hat/CentOS).


👤 2. تعداد المستخدمين والمجموعات (Enumerating Users & Groups)

🗣️ لماذا نعدد المستخدمين والمجموعات؟: تحديد المستخدمين والمجموعات على النظام المخترق أمر أساسي لتقييم الامتيازات. يساعد في الكشف عن حسابات المستخدمين النشطة، وصلاحياتهم، والمجموعات التي ينتمون إليها، مما قد يؤدي إلى مسارات لرفع الامتيازات أو التحرك الجانبي.

🗣️ أمثلة على المعلومات المستهدفة والأدوات:

  • المستخدم الحالي وصلاحياته: معرفة هوية المستخدم الحالي وما هي الأذونات التي يمتلكها.

    • الأدوات:

      • Meterpreter: getuid, getprivs.

      • Windows Command Shell: whoami، whoami /priv.

      • Linux Bash Shell: getuid (من Meterpreter), id [اسم المستخدم].

  • جميع المستخدمين والمجموعات على النظام:

    • الأدوات (Windows):

      • Metasploit Post Module: post/windows/gather/enum_logged_on_users.

      • Command Shell: net user (قائمة المستخدمين)، net user [اسم المستخدم] (تفاصيل مستخدم)، net localgroup (قائمة المجموعات)، net localgroup [اسم المجموعة] (أعضاء المجموعة).

    • الأدوات (Linux):

      • Bash Shell: cat /etc/passwd (معلومات المستخدمين)، cat /etc/shadow (هاشات كلمات المرور – يتطلب صلاحيات root), cat /etc/group (قائمة المجموعات).

      • who أو w (المستخدمون المسجلون حالياً).


🌐 3. تعداد معلومات الشبكة (Enumerating Network Information)

🗣️ لماذا نعدد معلومات الشبكة؟: يساعد تعداد معلومات الشبكة في فهم كيفية اتصال النظام المخترق بالشبكة الداخلية والخارجية. يمكن أن يكشف ذلك عن مسارات للتحرك الجانبي (Lateral Movement) إلى أنظمة أخرى داخل الشبكة المحلية، أو عن وجود جدران حماية (Firewalls) قد تعيق الاتصال، أو عن تفاصيل مهمة لتخطيط هجمات الارتكاز (Pivoting).

🗣️ أمثلة على المعلومات المستهدفة والأدوات:

  • واجهات الشبكة وعناوين IP:

    • الأدوات:

      • Meterpreter: ipconfig (لـ Windows), ifconfig (لـ Linux).

      • Command Shell (Windows): ipconfig /all.

      • Bash Shell (Linux): ip a (أو ip address show).

      • cat /etc/network/interfaces (إعدادات الواجهات على Linux).

  • جدول التوجيه (Routing Table):

    • الأدوات:

      • Meterpreter: route.

      • Command Shell (Windows): route print.

      • Bash Shell (Linux): route (أو ip route show).

  • جدول ARP Cache:

    • الأدوات:

      • Meterpreter: arp.

      • Command Shell (Windows): arp -a.

      • Bash Shell (Linux): arp -a.

  • الاتصالات النشطة والمنافذ المفتوحة:

    • الأدوات:

      • Meterpreter: netstat.

      • Command Shell (Windows): netstat -ano.

      • Bash Shell (Linux): ss -tulpn (أو netstat -tulpn).

  • إعدادات جدار الحماية (Firewall Configuration) على Windows:

    • الأدوات: netsh advfirewall firewall show all profiles (حالة جدار الحماية)، netsh advfirewall firewall show rule name=all (قواعد جدار الحماية).

  • إعدادات DNS وملفات hosts على Linux:

    • الأدوات: cat /etc/resolv.conf (خوادم DNS)، cat /etc/hosts (تعيينات ثابتة لأسماء المضيفين).


⚙️ 4. تعداد العمليات والخدمات/المهام المجدولة (Processes & Services/Cron Jobs)

🗣️ ما الفرق بين العمليات والخدمات ولماذا نعددها؟:

  • العملية (Process): هي مثيل لبرنامج قيد التشغيل (مثل Google Chrome). تبدأ وتتوقف عند الحاجة.

  • الخدمة (Service): هي نوع خاص من العمليات يعمل في الخلفية دون تفاعل مباشر مع المستخدم، وهي حاسمة لتشغيل النظام (مثل خدمة الصوت أو الشبكة). تعداد كليهما يساعد في فهم البرامج والوظائف التي تعمل على النظام. يمكن أن يكشف عن عمليات مشبوهة، أو خدمات ضعيفة يمكن استغلالها لرفع الامتيازات، أو لضمان استمرار الوصول (Persistence).


🤖 5. أتمتة تعداد المعلومات المحلية (Automating Local Enumeration)

🗣️ لماذا نؤتمت تعداد المعلومات المحلية؟: بدلاً من تشغيل كل أمر يدوياً، يمكن استخدام السكريبتات الآلية لجمع معلومات شاملة دفعة واحدة، مما يوفر الوقت ويضمن عدم إغفال أي نقاط ضعف محتملة.


📂 نقل الملفات (File Transfer)

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


📈 رفع الامتيازات (Privilege Escalation)

🗣️ لماذا نرفع الامتيازات؟: غالباً ما يمنحك الوصول الأولي (Initial Access) صلاحيات محدودة (مثل مستخدم عادي أو مستخدم خدمة). لكي تتمكن من تنفيذ مهام ما بعد الاختراق الهامة مثل تفريغ الهاشات، أو إنشاء مستخدمين دائمين، أو تعديل إعدادات النظام، تحتاج إلى "رفع الامتيازات" للحصول على صلاحيات أعلى (مثل Administrator على Windows أو Root على Linux).


🛡️ الحفاظ على الوصول (Persistence)

🗣️ لماذا نحافظ على الوصول؟: الحفاظ على الوصول (Persistence) أو Maintain Access يعني اتخاذ إجراءات لضمان بقاء وصولك إلى النظام المستهدف حتى بعد إعادة التشغيل (restarts)، أو تغيير بيانات الاعتماد (credentials)، أو أي انقطاعات أخرى قد تقطع اتصالك. بدون Persistence، ستضطر في كل مرة إلى البدء من الصفر.

  • الصلاحيات: تتطلب معظم تقنيات Persistence صلاحيات المسؤول (Administrator) أو الجذر (Root) لتنفيذها.


💻 1. الحفاظ على الوصول على Windows (Windows Persistence)

🗣️ طرق الحفاظ على الوصول على Windows: يمكن تحقيق Persistence على Windows من خلال إنشاء خدمات دائمة، أو حسابات مستخدمين خلفية (backdoor users)، أو تعديل إعدادات تسجيل الدخول عن بعد (RDP).

🛠️ أ. Persistence عبر الخدمات (Persistence Via Services)

🗣️ ما هي الخدمات الدائمة؟: يمكن إنشاء خدمة جديدة تعمل في الخلفية على النظام المستهدف. هذه الخدمة تقوم بتشغيل "حمولة" (payload) بانتظام تتصل بدورها بمستمع (listener) على نظام Kali Linux الخاص بك، مما يوفر لك جلسة Meterpreter جديدة باستمرار.

🖥️ ب. Persistence عبر RDP (Remote Desktop Protocol)

🗣️ ما هو Persistence عبر RDP؟: يتضمن إنشاء حساب مستخدم خلفي (backdoor user) بصلاحيات إدارية على نظام Windows. يتم إخفاء هذا المستخدم من شاشة تسجيل الدخول وتمكينه للوصول عبر بروتوكول سطح المكتب البعيد (RDP).


🐧 2. الحفاظ على الوصول على Linux (Linux Persistence)

🗣️ طرق الحفاظ على الوصول على Linux: يمكن تحقيق Persistence على Linux من خلال استغلال مفاتيح SSH، أو المهام المجدولة (Cron Jobs)، أو تعديل ملفات بدء التشغيل.

🔑 أ. Persistence عبر مفاتيح SSH (Persistence Via SSH Keys)

🗣️ ما هي مفاتيح SSH Persistent؟: يمكن الحصول على المفتاح الخاص لحساب مستخدم على النظام المستهدف لاستخدامه لتسجيل الدخول عبر SSH في أي وقت دون الحاجة إلى كلمة مرور، حتى لو تم تغيير كلمة المرور.

⏰ ب. Persistence عبر Cron Jobs (Persistence Via Cron Jobs)

🗣️ ما هي Cron Jobs Persistent؟: الـ Cron Jobs هي مهام مجدولة يتم تنفيذها تلقائياً على نظام Linux يمكن إنشاء Cron Job خاصة بالمهاجم لتشغيل "حمولة" (payload) بانتظام (مثل Reverse Shell) تتصل بمستمع على نظام Kali Linux، مما يوفر وصولاً مستمراً.


🗑️ تفريغ وتكسير الهاشات (Dumping & Cracking Hashes)

🗣️ لماذا نفرغ ونكسر الهاشات؟: تفريغ (Dumping) كلمات المرور المجزأة (Hashes) من النظام المستهدف ثم محاولة كسرها (Cracking) للحصول على كلمات المرور بالنص الواضح هو خطوة حاسمة. يمكن استخدام كلمات المرور هذه للوصول إلى أنظمة أخرى، أو للوصول المشروع إلى النظام المخترق، أو لتعزيز Persistence.


💻 1. تفريغ وتكسير هاشات NTLM على Windows (Dumping & Cracking NTLM Hashes)

🗣️ ما هي هاشات NTLM؟: تخزن أنظمة Windows كلمات المرور المجزأة محلياً في قاعدة بيانات SAM (Security Account Manager). يستخدم Windows Vista والإصدارات الأحدث بشكل افتراضي هاشات NTLM، وهي أكثر أماناً من LM لأنها لا تقسم كلمات المرور، وتدعم حساسية حالة الأحرف، وتسمح بالرموز والأحرف الخاصة.

  • LSA (Local Security Authority): هو المسؤول عن مصادقة المستخدمين والتحقق من بيانات اعتمادهم.

  • SAM File: قاعدة بيانات تحتوي على حسابات المستخدمين وكلمات المرور المجزأة. لا يمكن نسخ أو فتح ملف SAM أثناء تشغيل Windows، لأنه يكون "مغلقاً" (locked) بواسطة عملية LSA في الذاكرة.


🐧 2. تفريغ وتكسير هاشات كلمات مرور Linux (Dumping & Cracking Linux Password Hashes)

🗣️ ما هي هاشات كلمات مرور Linux؟: تخزن أنظمة Linux معلومات حسابات المستخدمين في ملف /etc/passwd، بينما يتم تخزين هاشات كلمات المرور في ملف /etc/shadow. ملف /etc/shadow محمي ولا يمكن للمستخدم الجذر (root) فقط قراءته عادةً. أنواع الهاشات المستخدمة يمكن تمييزها بالبادئة في ملف Shadow (مثل $1$ لـ MD5، $6$ لـ SHA-512).


🔁 الارتكاز (Pivoting)

🗣️ ما هو الارتكاز (Pivoting)؟: ا تقنية ما بعد الاختراق تسمح للمهاجم باستخدام النظام المخترق كنقطة انطلاق (bridge) للوصول إلى أنظمة أخرى داخل نفس الشبكة الداخلية التي لا يمكن الوصول إليها مباشرة من نظام المهاجم. هذا فعال بشكل خاص في الشبكات المقسمة حيث يكون نظام المهاجم في شبكة خارجية، بينما يتصل النظام المستهدف الأول بشبكة داخلية أخرى تحتوي على أنظمة إضافية.


🧹 مسح الآثار (Clearing Tracks)

🗣️ لماذا نمسح الآثار؟: هي الخطوة النهائية الغرض منها هو إزالة جميع الأدلة على وجودك وأنشطتك من النظام المستهدف، مما يقلل من فرص اكتشافك من قبل فرق الاستجابة للحوادث (Incident Response) أو مسؤولي النظام. يتضمن ذلك حذف الملفات المؤقتة، وتنظيف سجلات الأحداث (Event Logs) على Windows، ومسح سجلات Bash History على Linux.

  • التخفي (Stealth): مسح الآثار هو جزء أساسي من الحفاظ على التخفي.


💻 1. مسح الآثار على Windows (Clearing Your Tracks On Windows)

🗣️ طرق مسح الآثار على Windows: تتضمن مسح سجلات أحداث Windows، وحذف الملفات التي تم رفعها.

🗑️ أ. مسح سجلات أحداث Windows (Clearing Windows Event Logs)

  • لماذا نمسح سجلات الأحداث؟: تسجل أنظمة Windows جميع الأنشطة (بما في ذلك تسجيلات الدخول والعمليات الأمنية) في سجلات الأحداث (Event Logs). مسح هذه السجلات يزيل الأدلة على وصولك.

  • باستخدام Meterpreter:

    • لو كنت داخل جلسة Meterpreter.

    • لو كتبت الأمر clearev.

    • فسوف يقوم هذا الأمر بمسح جميع سجلات الأحداث (Application, System, Security) على النظام المستهدف.


🐧 2. مسح الآثار على Linux (Clearing Your Tracks On Linux)

🗣️ طرق مسح الآثار على Linux: تتضمن مسح سجلات Bash History وحذف الملفات التي تم رفعها.

🗑️ أ. مسح سجلات Bash History

  • لماذا نمسح سجلات Bash History؟: يقوم Linux بتخزين الأوامر التي يتم إدخالها في Shell في ملف يسمى .bash_history (مخفي). مسح هذا السجل يزيل الأدلة على الأوامر التي قمت بتنفيذها.

  • الاستخدام:

    • لو كنت داخل جلسة Bash Shell.

    • لو كتبت الأمر history -c (لمسح سجل الأوامر الحالي).

    • لإزالة ملف .bash_history بالكامل: rm ~/.bash_history.


Last updated