مقال : إختراق نظام لا تستطيع الوصول إليه بشكل مباشر من خلال أسلوب Pivoting
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته ,,
في هذا المقال سأتحدث عن موضوع شيق جدًا وهو ما يطلق عليه Pivoting لا أعرف معنى الكلمة بالعربي للأسف ولكن هذا المصطلح يشير إلى “الوصول إلى نظام لا تستطيع الوصول إليه مباشرة ولذلك تستخدم نظام قمت باختراقه مسبقًا للوصول إليه”.
لنوضح الفكرة بشكل أكبر دعونا نرى الصورة التالية:
السيناريو الذي نريد تصوره هو أننا نريد الوصول إلى الجهاز المسمى بـ 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 كما هو موضح في الصورة:
سأقوم بالاستفادة منها وجعلها الـRoute الوسيط بيني وبين النظام iSec2، لتأكيد استحالة الوصول بين الشبكتين سأقوم بعمل Ping بين النظام المهاجم والنظام المراد اختراق وهو iSec2 كما هو موضح في الصورة:
كما نرى في الصورة السابقة، فلم تصل أيًا من الحزم الخاصة بنا إلى الهدف وذلك لأنه على شبكة أخرى. في هذه الحالة نحن بحاجة إلى طريقة تمكننا من تمرير الحزم الخاصة بنا إلى النظام المسمى iSec2 وذلك من خلال النظام iSec1 الذي قمنا باختراقه مسبقًا. هذه الطريقة ما يمكن أن نطلق عليه مصطلح Pivoting.
سنقوم باستخدام سكربت متاح في الميتاسبلويت لنقوم بعمل الـRoute الذي نريده وذلك من خلال السكربت المسمى autoroute.
سنقوم باستخدام السكربت الموضح في الصورة السابقة كما نرى الآن:
ما قمنا بفعله في الصورة السابقة، هو أننا قمنا باستخدام الـMeterpreter Session وذلك لإنشاء الـRoute وذلك من خلال الأمر الأول وبعد ذلك قمنا بطباعة الـRoute النشطة من خلال الأمر الثاني.
بهذه السهولة قمنا بصنع الـRoute، دعنا الآن نقوم بتجربة عمل TCP Scan للنظام iSec2.
كما نرى، نجحنا في عمل فحص للنظام iSec2. ولكن المشكلة أننا لا نستطيع فعل ذلك خارج مشروع الميتاسبلويت وحلاً لهذه المشكلة يمكننا تنصيب Proxy يقوم بتوصيل الطلبات الخاصة بنا إلى النظام الهدف وذلك باستخدام ما يسمى بالـProxyChains.
لفعل ذلك يمكننا استخدام Auxiliary في الميتاسبلويت يقوم بهذه المهمة، كما هو موضح في الصورة التالية:
لقد قمنا بتنصيب Proxy Server يعمل على البورت 1080 والـLocalhost الخاص بالنظام. لكن قبل استخدامه يجب علينا التعديل على ملف الإعدادات الخاص بالـProxyChains وإضافة الـProxy الخاص بنا إليه. يمكننا فعل ذلك من خلال التعديل على ملف الإعدادات الموجود في المسار التالي:
قمت في الصورة السابقة باستخدام محرر النصوص Vim ولكن طبعًا متاح لكم استخدام أي محرر نصوص آخر.
قمت بإضافة سطر جديد وهو socks4 127.0.0.1 1080 وهو مطابق لما قمنا باستخدامه في الميتاسبلويت. وستلاحظون أيضًا أن هناك سطر سابق موجود بشكل افتراضي في الملف وهو socks4 127.0.0.1 9050 وهو الـProxy الافتراضي الذي يعمل عليه مشروع Tor الغني عن التعريف ولكننا قمنا بحذفه وقمنا بإضافة البورت 1080 والذي قمنا باستخدامه في الميتاسبلويت وذلك لأننا إن تركنا السطر السابق سيعمل البروكسي على البورت 9050 وليس البورت 1080.
سنقوم بعدها بحفظ الملف بالسطر الجديد الذي قمنا بإضافته وتجربة عمل فحص من خلال الـNmap خارج مشروع الميتاسبلويت.
الصورة السابقة تثبت نجاح الفحص 🙂
الجزء الأخير من المقال سأتحدث فيه عن شرح استغلال الـRoute الذي قمت بصنعه في الجزء الأول من المقال لاختراق النظام iSec2.
في الصورة السابقة استخدمنا الثغرة الشهيرة في ويندوز XP وهي الموجودة في خدمة SMB، وذلك لسهولة توصيل فكرة تنفيذ الاختراق من خلال الـRoute. يجب التنويه أن الـMeterpreter Session التي قمنا بصنع الـRoute من خلالها تعمل في الـBackground وإلا استغلالنا لهذه الثغرة لن يعمل.
ما يهمني في الصورة السابقة، هو أنني قمت باختيار نوع الـPayload وقمت باختياره ليكون Bind وليس Reverse وذلك لأننا قمنا باستغلال الثغرة من خلال الـRoute. ولكن إن أردنا استغلاله من خلال Payload من نوع Reverse فيجب أن تكون قيمة الـLHOST هي عنوان الـIP الخاص بالنظام الذي تم اختراقه مسبقًا iSec1.
تمت العملية بنجاح وأصبحنا نملك جلستين Meterpreter وليس جلسة واحدة. بهذه ينتهي مقالنا لهذا اليوم.
أتمنى أن تكونوا قد استفدتم وإن شاء الله نلتقي في مقال أخر 🙂
احلى شكر لاحلى موقع و احلى معدين
بارك الله فيك اخي الكريم . ولكن لدي سوال: وهو كيف تتخطى انظمة IDS وال IPS اذا كانت في موجودة في الشبكة الثانية: 192.168.56.0
محسن، تخطيك للـIPS أو IDS يعتمد بشكل كبير على معرفتك بهم، ففهمك لكيفية عملهم سيجعلك تتبين الطريقة المناسبة لتخطيهم.
مقال رائع اخي عمر . بارك الله بك .
ماشاء الله شرح جميل ربنا يباركلك
بارك الله فيك اخي
شكراا على المعلومات القيمة
سؤالي هو كيف يمكن إختراق نظام ويندوز 7
نظام iSec1 المستخدم في المقال كان ويندوز 7، ولقد قمت باختراقه باستخدام Payload مشفر لكي يتخطى أنظمة الـحماية. ولكن الفكرة من المقال لم تكن كيفية الاختراق بل كيفية الوصول لنظام أنتَ لا تستطيع الوصول إليه بشكل مباشر.
كيف إستطعن فتح جلسة ميتربريتر مع نظام ويندوز 7
كما قلت في ردي السابق من خلال Payload مشفر.
ممكن توضح قصدك ايه بـ
“ما يهمني في الصورة السابقة، هو أنني قمت باختيار نوع الـPayload وقمت باختياره ليكون Bind وليس Reverse وذلك لأننا قمنا باستغلال الثغرة من خلال الـRoute. ولكن إن أردنا استغلاله من خلال Payload من نوع Reverse فيجب أن تكون قيمة الـLHOST هي عنوان الـIP الخاص بالنظام الذي تم اختراقه مسبقًا iSec1.”
عشان انا مش عارف انت عاوز تقول ايه 🙂
بس المقال جميل بالتوفيق
هذه الفقرة ستتوضح عندما تفهم الفرق بين الـ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
ربنا يجزيك كل خير اخي الكريم
تحياتي
اخوي طيب انت اللحين كيف عرفت الاي بي الخاص بالهدف isc2 !
لنتفرض اني قمت باختراق والوصل الى الهدف الاول .
واريد الوصول الى الهدف الثاني اللذي ليس على الشبكة اطلاقاً وهو على شبكة اخرى ،
كيف استطعت معرفة الاي بي الخاص به ،
هل هناك مقال في الموقع او طرق لمعرفة الاجهزة المتصلة على الشبكة من خلال اداة او ما شابه ؟
وهل يجب ان يكون على جلسة في الميتا لاستعلم عن الاجهزة المتصلة معة على الشبكة ؟ او يمكن ذلك عن طريق اداة معينة ؟
but why we can hack isec2 directement ?
سيكون افضل انك لو تعاملت مع الموضوع على الواجهة الرسومية cobaltstrike
المشكله الى بتقبلنى دايما هى ان ال session مش بتتفتح مع ان كل الأومر صح ياريت تفدنى بحل المشكله
وشكرآ
مقال رائع وشرح مميز
لكن اعذرني للسؤال
سؤالي نفس سؤال الاخ ali
“اخوي طيب انت اللحين كيف عرفت الاي بي الخاص بالهدف isc2 !
لنتفرض اني قمت باختراق والوصل الى الهدف الاول .
واريد الوصول الى الهدف الثاني اللذي ليس على الشبكة اطلاقاً وهو على شبكة اخرى ،
كيف استطعت معرفة الاي بي الخاص به ،”؟؟؟
السلام عليكم
هذه هي الطريقة الصحيحة و المفيدة لهذا المجال الفهم ثم الفهم
و شكرا .