أمن المعلومات

تطبيق reverse shell بإستخدام برتوكول ICMP – الجزء الأول

السلام عليكم و رحمة الله و بركاته اصدقائنا الأعزاء زوار و متابعي موقعكم موقع تكناوي.نت,

نعود اليكم بعد انقطاع قصير بهذا المقال والذي نتمنى ان يلاقي اعجابكم, حيث كنت قرأت عن هذا الموضوع في مجموعة من المواقع الأجنبية و أردت ان اقوم بشرحه لكم باللغة العربية 🙂

ملاحظة : المقال مترجم من عدة مواقع تقنية عالمية متخصصة في امن المعلومات وهذا ما تم ذكره بتاريخ نشرنا للمقال على الصفحة بالمنشور التالي رابط المنشور

في هذا المقال سنتعرف على ال ICMP Reverse Shell ولكن قبل ذلك دعونا نتعرف على الأمور التالية :

ماهو الشيل (Shell) ؟

الشيل (Shell) يمكن وصفه بشكل بسيط على انه مجموعة من الأكواد البرمجية او برنامج والذي يمكن استخدامه للحصول او تنفيذ الأوامر على الأجهزة بإختلاف انواعها سواء اكانت اجهزة حاسب شخصي او خوادم او موبايل او غيرها من الأجهزة المختلفة.

انواع الشيل (Shell) : هنالك نوعين من انواع الشيل وهي :

1- Reverse Shell : يعتبر هذا النوع هو نوع من انواع الشيل الذي يقوم من خلاله الجهاز المستهدف الإتصال مع جهاز المخترق, بحيث يكون جهاز المخترق يتنصت على منفذ معين يتم من خلاله استقبال جميع الإتصالات من الجهاز المستهدف (المخترق) .

1

الشكل السابق يبين مبدأ ال reverse shell

2- Bind Shell : يعتبر هذا النوع من انواع الشيل الذي يقوم من خلاله الجهاز المستهدف بفتح منفذ خاص ليتنصت عليه و ينتظر الأوامر و الإتصالات القادمة من جهاز المخترق, بحيث يقوم المخترق بالإتصال مع الجهاز المستهدف عن طريق المنفذ المفتوح على الجهاز المستهدف (المخترق).

2

الشكل السابق يبين مبدأ ال Bind shell

هنالك العديد من السكريبتات و ملفات الشيل الموجودة عبر الإنترنت والتي تشترك مع بعضها البعض بالإتصال عبر بروتوكول TCP. و من الامثلة عليها :
– Reverse TCP Meterpreter
– Netcat
– Weevely
وغيرها العديد العديد…

لو فرضنا بأن الإتصال بين جهازي المخترق و الجهاز المستهدف محمي بجدار ناري بالإتجاهين (من و الى الجهاز المستهدف) ويقوم هذا الجدار الناري بفلترة جميع الإتصالات و منع الشيل من اجراء عمليات اتصال بين الجهازين (سواء bind port و reverse port), علينا اذا التعامل مع الجدار الناري وفتح المنفذ المطلوب عليه سواء كان bind او reverse. لكن ماذا لو كان الجدار الناري عبارة عن جهاز مستقل موجود بين الجهازين؟؟؟
3

صورة توضح حجب الإتصال من قبل الجدار الناري

في هذه الحالة يجب علينا التفكير في طريقة اخرى, وهي ما سنتكلم عنها في مقالنا اليوم إن شاء الله تعالى.

من المعروف بان معظم الأنظمة و الخوادم تسمح و تستجيب لطلبات ال ping من حيث الإرسال و الطلب, حيث ان هذه الطلبات تعمل بإستخدام بروتوكول ICMP. حيث يعتبر بروتوكول ICMP هو بروتوكول يستخدم في ارسال الرسائل بين اجهزة الشبكات المختلفة عند حدوث الأخطاء مثل ان الخدمة المطلوبة غير متوفرة او الجهاز المطلوب لا يمكن الوصول اليه و غيرها من الأخطاء التي يمكن ان تحدث على الشبكات. ويختلف هذا البروتوكول عن غيره من بروتوكولات الشبكات (TCP & UDP) حيث انه لا يقوم بارسال البيانات بين الأجهزة المختلفة.

فعندما يقوم اي جهاز على الشبكة بفحص الإتصال بينه و بين اي جهاز آخر يتم استخدام اداة او امر PING والتي تتعامل مع بروتوكول ICMP لارسال طلبات تدعى ECHO Request و تنتظر استقبال الرد على شكل ECHO Response.
4

صورة من برنامج wireshark لل ECHO Request

5

صورة من برنامج wireshark لل ECHO Response

و بالنظر للطلبات و الردود الخاصة بالأمر PING يمكننا ملاحظة بأن الطلب تم من جهاز بعنوان (10.0.0.7) وهي تحتوي على 48 بت من البيانات (ECHO Request) و الجهاز الذي تم طلبه عنوان الإنترنت الخاص به هو (10.0.0.8) قام بالرد بنفس البيانات المرسلة على شكل ECHO Request.

و بالنظر أيضا الى شكل الحزمة الخاصة بكل من ECHO Request و ECHO Response يمكننا ملاحظة بأنهما لا يحتويان على منفذ كما هو موجود في الحزم الخاصة بكل من بروتوكولي TCP و UDP, مما يعني بانه يتم ارسالها بين الأجهزة و ليس عبر منافذ محددة.
aaaa

شكل حزمة ICMP

مما تم شرحه في الأعلى يمكننا الوصول الى انه يمكن استخدام الإتصال الناتج عن طريق بروتوكول ICMP للتواصل بشكل مباشر بين الأجهزة المختلفة عبر الشبكة, و ذلك عن طريق استخدام برنامج موجود على جهازي المخترق و الضحية.

هذه الطريقة تعتمد على :

1- ان يقوم البرنامج على جهاز المخترق بارسال الأوامر المراد تنفيذها في حزمة ICMP داخل جزء البيانات (Data) .
2- يتنصت البرنامج على جهاز الضحية على الحزم من نوع ICMP بحيث يقوم بقراءة الأوامر من جزء Data .
3- يقوم البرنامج على جهاز الضحية بتنفيذ الأمر المطلوب و ارسال الناتج على شكل حزمة ICMP ووضع الناتج داخل جز ال Data.
4- يقوم البرنامج على جهاز المخترق باستلام الحزم و قراءة جزء ال Data و عرض الناتج على جهاز المخترق.

kkkk

الشكل يمثل الخطوات الأربعة السابقة

بهذا نكون قد انتهينا من الجزء الأول من هذا الموضوع وهو الجزء النظري, سنتطرق في الجزء الثاني للجزء العملي و كيفية التعامل مع السكريبتات الخاصة بهذا النوع من ال Shell scripts.

اتمنى ان يكون هذا الجزء من المقال قد لاقى اعجابكم 🙂


لمتابعة المزيد من الأخبار و المقالات و الفيديوهات التعليمية, تابعونا على صفحتنا على موقع فيسبوك عبر الرابط التالي : صفحة موقع تكناوي.نت

محمد خريشة

مهندس حاسوب من الأردن مهتم ومهووس بكل ماله علاقة بالتقنية على اختلاف اصنافها, عملت و مازلت اعمل كمطور لمواقع الويب بشكل فردي, عملت بمؤسسات اردنية كمهندس شبكات ومن ثم مهندس انظمة و حماية و الآن أعمل كمدير لقواعد بيانات اوراكل بالإضافة الى ادراة خوادم *nix , لدي خبرة بالتعامل و ادارة نظام تشغيل OpenVMS و نظام البريد الإلكتروني Exchange Server من شركة مايكروسوفت . من اهتماماتي اثراء المحتوى التقني العربي بكل ما هو جديد.

مقالات ذات صلة

تعليق واحد

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

four + fifteen =

إغلاق