أدوات وبرامجأمن وحماية الشبكاتالمقال المثبتمواضيع ومقالات

مقال : إختراق نظام لا تستطيع الوصول إليه بشكل مباشر من خلال أسلوب Pivoting

تم أرشفة هذا المحتوى


بسم الله الرحمن الرحيم

السلام عليكم ورحمة الله وبركاته ,,

في هذا المقال سأتحدث عن موضوع شيق جدًا وهو ما يطلق عليه Pivoting لا أعرف معنى الكلمة بالعربي للأسف ولكن هذا المصطلح يشير إلى “الوصول إلى نظام لا تستطيع الوصول إليه مباشرة ولذلك تستخدم نظام قمت باختراقه مسبقًا للوصول إليه”.

لنوضح الفكرة بشكل أكبر دعونا نرى الصورة التالية:

pivoting_1

 

السيناريو الذي نريد تصوره هو أننا نريد الوصول إلى الجهاز المسمى بـ iSec2 ولكننا لا نملك الوصول إلى هذه الشبكة، فهي شبكة منفصلة عنا.

لدينا ثلاثة أجهزة في هذا السيناريو وشبكتين:

الشبكة الأولى: 192.168.1.0

الشبكة الثانية: 192.168.56.0

وثلاثة أجهزة:

جهاز وسيط يحمل عنوان IP من الشبكتين، والجهاز المهاجم الخاص بنا، والجهاز الأخير هو الجهاز الهدف الذي نريد الوصول إليه في هذا السيناريو.

لكي نستطيع الوصول إلى الهدف المسمى iSec2 يجب علينا أولاً أن نقوم باختراق الهدف المسمى iSec1 ونقوم بتمرير كل الطلبات من خلاله للوصول إلى الهدف المسمى iSec2.

لن أقوم بشرح كيفية تنفيذ الاختراق، ولكني سأقوم بشرح كيفية صنع الـRoute الذي سيوصل بين الجهاز المهاجم الذي يحمل عنوان الـIP 192.168.1.6 وبين الجهاز الهدف المسمى iSec2 الذي يحمل عنوان الـIP 192.168.56.103.

لدي الآن Meterpreter Session متاحة بيني وبين النظام iSec1 كما هو موضح في الصورة:

pivoting_2

سأقوم بالاستفادة منها وجعلها الـRoute الوسيط بيني وبين النظام iSec2، لتأكيد استحالة الوصول بين الشبكتين سأقوم بعمل Ping بين النظام المهاجم والنظام المراد اختراق وهو iSec2 كما هو موضح في الصورة:

pivoting_3

كما نرى في الصورة السابقة، فلم تصل أيًا من الحزم الخاصة بنا إلى الهدف وذلك لأنه على شبكة أخرى. في هذه الحالة نحن بحاجة إلى طريقة تمكننا من تمرير الحزم الخاصة بنا إلى النظام المسمى iSec2 وذلك من خلال النظام iSec1 الذي قمنا باختراقه مسبقًا. هذه الطريقة ما يمكن أن نطلق عليه مصطلح Pivoting.

سنقوم باستخدام سكربت متاح في الميتاسبلويت لنقوم بعمل الـRoute الذي نريده وذلك من خلال السكربت المسمى autoroute.

pivoting_4

سنقوم باستخدام السكربت الموضح في الصورة السابقة كما نرى الآن:

pivoting_5

ما قمنا بفعله في الصورة السابقة، هو أننا قمنا باستخدام الـMeterpreter Session وذلك لإنشاء الـRoute وذلك من خلال الأمر الأول وبعد ذلك قمنا بطباعة الـRoute النشطة من خلال الأمر الثاني.

بهذه السهولة قمنا بصنع الـRoute، دعنا الآن نقوم بتجربة عمل TCP Scan للنظام iSec2.pivoting_6

كما نرى، نجحنا في عمل فحص للنظام iSec2. ولكن المشكلة أننا لا نستطيع فعل ذلك خارج مشروع الميتاسبلويت وحلاً لهذه المشكلة يمكننا تنصيب Proxy يقوم بتوصيل الطلبات الخاصة بنا إلى النظام الهدف وذلك باستخدام ما يسمى بالـProxyChains.

لفعل ذلك يمكننا استخدام Auxiliary في الميتاسبلويت يقوم بهذه المهمة، كما هو موضح في الصورة التالية:

pivoting_7
لقد قمنا بتنصيب Proxy Server يعمل على البورت 1080 والـLocalhost الخاص بالنظام. لكن قبل استخدامه يجب علينا التعديل على ملف الإعدادات الخاص بالـProxyChains وإضافة الـProxy الخاص بنا إليه. يمكننا فعل ذلك من خلال التعديل على ملف الإعدادات الموجود في المسار التالي:

pivoting_8

قمت في الصورة السابقة باستخدام محرر النصوص Vim ولكن طبعًا متاح لكم استخدام أي محرر نصوص آخر.

pivoting_9

قمت بإضافة سطر جديد وهو socks4 127.0.0.1 1080 وهو مطابق لما قمنا باستخدامه في الميتاسبلويت. وستلاحظون أيضًا أن هناك سطر سابق موجود بشكل افتراضي في الملف وهو socks4 127.0.0.1 9050 وهو الـProxy الافتراضي الذي يعمل عليه مشروع Tor الغني عن التعريف ولكننا قمنا بحذفه وقمنا بإضافة البورت 1080 والذي قمنا باستخدامه في الميتاسبلويت وذلك لأننا إن تركنا السطر السابق سيعمل البروكسي على البورت 9050 وليس البورت 1080.

سنقوم بعدها بحفظ الملف بالسطر الجديد الذي قمنا بإضافته وتجربة عمل فحص من خلال الـNmap خارج مشروع الميتاسبلويت.

pivoting_10

 

الصورة السابقة تثبت نجاح الفحص 🙂

الجزء الأخير من المقال سأتحدث فيه عن شرح استغلال الـRoute الذي قمت بصنعه في الجزء الأول من المقال لاختراق النظام iSec2.

pivoting_11

في الصورة السابقة استخدمنا الثغرة الشهيرة في ويندوز XP وهي الموجودة في خدمة SMB، وذلك لسهولة توصيل فكرة تنفيذ الاختراق من خلال الـRoute. يجب التنويه أن الـMeterpreter Session التي قمنا بصنع الـRoute من خلالها تعمل في الـBackground وإلا استغلالنا لهذه الثغرة لن يعمل.

pivoting_12

ما يهمني في الصورة السابقة، هو أنني قمت باختيار نوع الـPayload وقمت باختياره ليكون Bind وليس Reverse وذلك لأننا قمنا باستغلال الثغرة من خلال الـRoute. ولكن إن أردنا استغلاله من خلال Payload من نوع Reverse فيجب أن تكون قيمة الـLHOST هي عنوان الـIP الخاص بالنظام الذي تم اختراقه مسبقًا iSec1.

pivoting_13
تمت العملية بنجاح وأصبحنا نملك جلستين Meterpreter وليس جلسة واحدة. بهذه ينتهي مقالنا لهذا اليوم.

أتمنى أن تكونوا قد استفدتم وإن شاء الله نلتقي في مقال أخر 🙂

عمر أحمد

عمر أحمد من مصر، عضو مؤسس في شركة iSecur1ty، مهتم بأمن المعلومات واختبار الاختراق وبجديد تكنولوجيا المعلومات، وكل ما يخص الحاسوب.

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

‫19 تعليقات

  1. بارك الله فيك اخي الكريم . ولكن لدي سوال: وهو كيف تتخطى انظمة IDS وال IPS اذا كانت في موجودة في الشبكة الثانية: 192.168.56.0

    1. نظام iSec1 المستخدم في المقال كان ويندوز 7، ولقد قمت باختراقه باستخدام Payload مشفر لكي يتخطى أنظمة الـحماية. ولكن الفكرة من المقال لم تكن كيفية الاختراق بل كيفية الوصول لنظام أنتَ لا تستطيع الوصول إليه بشكل مباشر.

  2. ممكن توضح قصدك ايه بـ

    “ما يهمني في الصورة السابقة، هو أنني قمت باختيار نوع الـPayload وقمت باختياره ليكون Bind وليس Reverse وذلك لأننا قمنا باستغلال الثغرة من خلال الـRoute. ولكن إن أردنا استغلاله من خلال Payload من نوع Reverse فيجب أن تكون قيمة الـLHOST هي عنوان الـIP الخاص بالنظام الذي تم اختراقه مسبقًا iSec1.”

    عشان انا مش عارف انت عاوز تقول ايه 🙂
    بس المقال جميل بالتوفيق

    1. هذه الفقرة ستتوضح عندما تفهم الفرق بين الـBind والـReverse جيدًا. فبشكل مبسط.. الـBind هو أن تقوم أنت بعملية الاتصال للهدف. والهدف هو الذي يستقبل الاتصال. ولكن في الـReverse أنت تقوم باخبار الهدف بأن يرسل لك اتصال من عنده وأنت ستقوم باستقباله. لذلك أنا قمت باستخدام Payload من نوع Bind في عملية الـPivoting وذلك لأن النظام iSec2 يعمل على شبكة أخرى أساسًا. فإن قمت بجعل الهدف iSec2 بإرسال اتصال لي مثلاً على IP وهو 192.168.1.6 فلن يستطيع لأن النظام iSec2 على شبكة مختلفة وهي تملك IP مختلف وهو 192.168.56.103 لذلك قمت باستخدام Payload من نوع Bind. وذلك لأنني قمت بالاتصال من خلال الـجسر وهو iSec1 وقد تم الاتصال بنجاح. تخيل الأمر بالشكل التالي:

      Attacker << iSec1 >> iSec2

      الأسهم توضح ما حدث، ففي اختراقي لـiSec1 قمت بجعله يرسل لي الاتصال وهو Reverse. ولكني في الاختراق الثاني والذي تم من خلال iSec1 قمت بجعله هو الذي يرسل الاتصال وهو Bind وذلك لأنه على نفس الشبكة.. ولكني لم أكن أستطيع إرسال اتصال من نوع Reverse لأنه بالإعدادات الافتراضية سيرسل الاتصال على Attacker وليس iSec1 لذلك إن أردت استخدام اتصال Reverse فيجب أن تغير الإعدادات لتجعل iSec2 يرسل الاتصال إلى iSec1 وليس Attacker

  3. اخوي طيب انت اللحين كيف عرفت الاي بي الخاص بالهدف isc2 !
    لنتفرض اني قمت باختراق والوصل الى الهدف الاول .
    واريد الوصول الى الهدف الثاني اللذي ليس على الشبكة اطلاقاً وهو على شبكة اخرى ،
    كيف استطعت معرفة الاي بي الخاص به ،
    هل هناك مقال في الموقع او طرق لمعرفة الاجهزة المتصلة على الشبكة من خلال اداة او ما شابه ؟
    وهل يجب ان يكون على جلسة في الميتا لاستعلم عن الاجهزة المتصلة معة على الشبكة ؟ او يمكن ذلك عن طريق اداة معينة ؟

  4. المشكله الى بتقبلنى دايما هى ان ال session مش بتتفتح مع ان كل الأومر صح ياريت تفدنى بحل المشكله
    وشكرآ

  5. مقال رائع وشرح مميز
    لكن اعذرني للسؤال
    سؤالي نفس سؤال الاخ ali
    “اخوي طيب انت اللحين كيف عرفت الاي بي الخاص بالهدف isc2 !
    لنتفرض اني قمت باختراق والوصل الى الهدف الاول .
    واريد الوصول الى الهدف الثاني اللذي ليس على الشبكة اطلاقاً وهو على شبكة اخرى ،
    كيف استطعت معرفة الاي بي الخاص به ،”؟؟؟

اترك تعليقاً

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

زر الذهاب إلى الأعلى