في هذا المقال سأتحدث عن موضوع شيق جدًا وهو ما يطلق عليه 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 النشطة من خلال الأمر الثاني.
كما نرى، نجحنا في عمل فحص للنظام iSec2. ولكن المشكلة أننا لا نستطيع فعل ذلك خارج مشروع الميتاسبلويت وحلاً لهذه المشكلة يمكننا تنصيب Proxy يقوم بتوصيل الطلبات الخاصة بنا إلى النظام الهدف وذلك باستخدام ما يسمى بالـProxyChains.
لفعل ذلك يمكننا استخدام Auxiliary في الميتاسبلويت يقوم بهذه المهمة، كما هو موضح في الصورة التالية:
قمت في الصورة السابقة باستخدام محرر النصوص 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.