20 تغريدة 18 قراءة Aug 23, 2021
عدنا اليكم بحلقة جديده من سلسلة الفروده والبيفوتينج بعنوان
SSH Remote Port Forwarding
وانطلاقاً من مبدأ الأنسنه الي يمارسه مخي في كل تخيلاته، وعشان ما نضيع بالشخصيات لنفترض ان الشخصيات الحاسوبيه كالتالي؛
⁃Machine A: جهازنا الهكرجي
⁃Machine B: جهاز اخترقناه وروتناه وعندنا ssh access عليه
⁃Machine C: الجهاز الهدف
فف خيال ssh local port forwarding بيكون كذا؛
انك تقول للجهاز الي مخترقه روح للجهاز الهدف واتصل بالبورت الفلاني عني وجيب المعلومات منه، وتقوله ايضاً شوف ترى انا مخصصلك بورت بجهازي الخاص تعرض المعلومات الي تجيبها من البورت المستهدف فيه ..
وعكس ذلك الـ ssh remote port forwarding
وهي انك واصل للجهاز الهدف ولكن فيه سيرفس شغال فقط داخل الجهاز فف انت تقول له ادخل على جهازي واستعمله كك ssh server ولكن جيب البورت الفلاني معاك وخصصلي بورت بجهازي وحط بورتك الي جايبه معك فيه ..
لحست مخ صح ؟
تقدر تقول نفس العملية بس بالعكس باللوكال جهازك بيكون ssh client وبالريموت جهازك بيكون ssh server ..
طيب ليه فيه local و remote مدام كلهم نفس العمليه بس بالاتجاه العكسي ؟ الجواب المختصر بالمثال التالي؛
نقول المثال الي فوق من جديد وبشكل اوضح؛ لنفترض انك وصلت للـ Machine C وداخل هالماشين سيرفس شغاله على بورت بالجهاز لوكالي يعني لمن تنفذ الامر
netstat -an تحصل البورت شغال كذا مثلاً؛
127.0.0.1:9000
وهذا يعني انه شغال ويستقبل الاتصال الي جاي من الماشين نفسها فقط ، فف يعني حتى الماشين B ما يقدر يوصلها ..
فف لو نستعمل الـ ssh local port forwarding وتبدا تقول للـ machine B سو الاتصال عني وجيب معلوماته عندي بيقولك اعذرني استاذ هكرجي البورت تبع الهدف الي تبيه مو مفتوح لي فما اقدر اتصل فيه، وطبعاً انت ما تقدر تسوي ssh local port forwarding للـ Machine C كون ما عندك ssh access عليها ..
فف الـ ssh local port forwarding ما راح تنفعنا بهذا الموقف، وهنا يجي اهميه استعمال
الـ ssh remote port forwarding
والميكانيزما حقتها هي انك تشغل سيرفس الـ ssh في جهازك بحيث تقدر تخلي الـ Machine C تشبك عليك وتجيب معاها وهي جايه البورت المستهدف وتعرضه لك مثل ما قلنا فوق ..
عشان اللخبطه بعيد هالنقطه، بالـ local forwarding انت تشبك على الجهاز الي مخترقه ومنه الى الهدف ..
ولكن بالـ remote forwarding الجهاز الهدف هو الي يشبك عليك ..
فف من الامر الي بصوره معناه ببساطه؛
1- الـ ssh يشبك باسم الـ ssh user على الـ ssh server
2- "R-" يعني ريموت فف الفروده بتكون ريموتلي
3- الـ SSH Server IP هو اي بي جهازنا والي بيكون سيرفر الليله وبيشبك عليه الجهاز الهدف
4- الـ SSH Server Port البورت الي بيكون مخصص للبورت المسحوب من الماشين الهدف
5- الـ Target Destination بيكون الايبي المحلي اذا نبي نسوي ريموت لسيرفس موجوده بالجهاز نفسه، او يكون ايبي جهاز نبيه ونقدر نوصله اذا البورت الي نبيه بجهاز ثاني موجود بنفس الشبكه (نفس الـ local forwading)
6- الـ Target Port بيكون البورت المطلوب سحبه ووضعه بالـ ssh sever port ..
بعد تنفيذ الامر وادخال كلمة السر تبع الـ ssh user الي بيصير ان بينفتح ويستمع بورت بالـ ssh server واي ريكويزت او باكت تنرسل للـ server ip والـ server port بتتحول الى الـ target IP والـ target port
بعيداً عن الهكرجيه لو قلنا انت رجال طيب وعندك مشروع بالدوام عباره عن تصميم موقع وشغال هالموقع لوكالي بجهاز الدوام وانت تبي توصل للسيرفس والموقع الي بالدوام وانت ببيتكم، طبيعي دوامك ما راح يخلون الموقع شغال على النت وهو مو جاهز ..
فف الطريقه الي توضح اهمية الـ ssh remote port forwarding انك تجيب لابتوبك للدوام وتفتح سيرفس الـ ssh بب لابتوبك وتخلي جهاز الدوام يشبك على لابتوبك ssh ويسحب البورت للابتوبك عن طريق الامر هذا الي المفروض تنفذه بجهازه الدوام طبعاً ..
ssh user@LaptopIP -R 8000:127.0.0.1:80
فالي بيصير جهاز الدوام بيشبك على لابتوبك ويجب معاه البورت 80 ويحطه لك ببالـ localhost بالبورت 8000
حلو ؟ ولا مو حلو ؟
من الامثله الي براسي ان مره كنت بلاب وكان فيه ماشين انا مروتها وكان فيه ماشين ثانيه بنفس شبكتها ولازم اروتها، والماشين هذي كان هي تقدر تتصل فيني وانا ما اقدر اتصل فيها مباشره وكان عندي شل عادي عليها والماشين مافيها ssh service وكانت ويندوز فف الي سويته حملت برنامج plink64.exe
وشغلت الامر التالي الي بالصوره:
فف صار عندي البورت 4444 شغال عندي باللوكال وقدرت استغل السيرفس واروت الماشين، وبس والله
كان معاكم احمد الشمري
ادام الله اوقاتكم بالطاعات 🌹..
المصادر؛
- بهاراتي الخاصه 👨🏻‍🍳
- Dante Lab
- OSCP كورس
مو المصادر؛
- اظن فيه باث بب tryhackme يشرح الموضوع نفسه بعد

جاري تحميل الاقتراحات...