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

مقال : شرح Session Sidejacking بإستخدام برنامج Hamster

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


SideJacking والذي يهدف إلى إختطاف كوكيز الجلسة “session cookies”. هي أحد الهجمات المنتشره في الفتره الاخيره ويتزايد إستخدام هذا الهجوم بشكل مستمر بسبب سهولة تنفيذه والخطوره الكبيره الناتجه عن سرقة المعلومات. مقال يشرح هذا الهجوم بالتفصيل وطريقة تنفيذه بإستخدام برنامج Hamster.

 

يختلف هذا النوع عن باقي أنواع الإختطاف (session hijacking) في مفهوم الإختطاف حيث يبقى هذا الاسلوب الضحية في الخط مع المهاجم على نفس الموقع ، فلا يتم فصل إتصال الضحية عن الموقع ، وبعد ان يقوم المستخدم بتسجيل الدخول يتشارك كلاً من المهاجم والمستخدم في الوصول الى الموقع دون ان يعلم المستخدم بوجود شخص اخر على نفس الحساب وايضاً لايتم سرقة كلمة المرور واسماء المستخدمين كما هي في بعض هجمات HTTP attacks الا ان الفكره مشابه ويعتبر من احد اشكال “HTTP session hijacking”.

ومن المعروف يوجد اكثر من شكل لإختطاف الجلسه منها: TCP Session Hijacking ، UDP Hijacking ، HTTP Session Hijacking.

البعض في HTTP Session Hijack يستخدم cross-site scripting لسرقة الكوكيز في حال كان الموقع يسمح بأكود HTML في مدخلتها على المتصفح ،  والبعض يستخدم هجمات الرجل في الوسط mitm لإعتراض الإتصال من اجل يضع حاسوب المهاجم على المنتصف . وتختلف طريقة xss عن اسلوب sidejacking لان المهاجم ليس مطالب في رويه جلسات المستخدم المختطفه في سكربت log.php التي يستخدمها xss ليقوم بعدها بكسر تشفير كلمات المرور او دخول مباشرتاً الى المنتدى بنسخها على المتصفح ، فهذة الطريقة مشابه نوعاً ما في دخول الى الموقع لكن تختلف تماماً عملية الإختطاف . كما يمكن في هذا الاسلوب من التصنت على ترافيك الخاصة بالجهاز المهاجم على عكس هجمات الرجل في الوسط  التي لايمكن التنصت على نفس الجهاز.

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

session-sidejacking-hamster-1

وقبل ان تبدأ الجلسة بين خادم الويب والمتصفح . بإتصال المتصفح تعرف وتخزن هذة الكوكيز في بداية الجلسة الى جهاز العميل في اكثر المواقع مثل GMail, Hotmail, Yahoo! Mail, MySpace و Facebook ، وذلك عبر إرسال رد حزمة HTTP من خادم الويب تحتوي في الترويسه على حقل Set-cookie: لتخزن على جهاز العميل:

Set-cookie: cart=2242; items=198+234; expire: Wed,
Set-cookie: sex=male; car=1991-Peugeot-205-1.1

يقوم المتصفح في ارسال هذة الكوكيز عاده الى نفس الخادم للرجوع الى النقطة التي ذهبت اليها من قبل ، وذلك عن طريق إرسال طلب HTTP مع وضع ترويسة حقل Cookie:

Cookie: cart=2242; items=198+234
Cookie: sex=male; car=1991-Peugeot-205-1.1

وتستخدم بعض المواقع التحقق من الكوكيز في كل مرة يتم الدخول الى صفحة مما يودي الى استمرار عملية الإختطاف والاطلاع على محتويات الموقع.

SideJacking هي عملية تنصت على كوكيز الويب عبر القيام بنسخ اي جلسة ويب يقوم بها المستخدم ويعاد تشغيلها فيما بعد الى الدخول الى حسابات الضحية  ويستخدم المهاجم الجلسة المنسوخه في الاطلاع على محتويات الضحيه المثبت الاتصال مسبقاً دون تثبت اتصال مع الموقع ، ويستفيد المهاجم من الكوكيز في تغير كلمات المرور ، وفي فحص الموقع وفي تحميل ملفات او الاطلاع على اشياء اخرى.

لتنفيذ هذا الهجوم برنامج Hamster (المجموع في اداتين Ferret and Hamster ) المقدم من Errata Security ، يعمل البرنامج على نظام Linux, Windows, Mac وهو مجاني ومفتوح المصدر ،الاداه الاول “Hamster” عباره عن خادم بروكسي يعمل على إعادة كتابة الكوكيز نيابة عن المهاجم الذي يقوم بالمرور من خلاله . فيما تستخدم الاداه الثانية “Ferret” لجمع كوكيز الجلسة .

 

كيف يعمل برنامج Hamster:

Hamster هو خادم بروكسي وهناك طرق لتنفيذ هجوم sidejacking .واحدها اضافة الكوكيز الى المتصفح browser add-on والطريقة الاخرى بتشغيل خادم البروكسي. في الصورة التالية نشاهد أداة Hamster بعد تنفيذ الهجوم.

session-sidejacking-hamster-2

 

ما في الصورة ، بدا المهاجم في مراقبه التحركات على جهاز العتاد Ethernet adapter “eth0” .وحتى الان إلتقاط 14,671,978 حزمة و 1,517 كائن موجود على السلك ( كوكيز و URLs). وقد تكون اكثرها ممكرره . وكما ترى ظهور الهدف في المتصفح بوجود 3 عناوين IP ولكن إرتبط بإثنين لهما الكوكيز.

عنوان IP المهاجم هو “23.23.23.118”  ولذا نقول يمكن إلتقاط كوكيز الجلسة الخاص بنا في نفس الوقت لكن قد تسبب بعض المشاكل في تغير عنوان IP ويتم مسح الكوكيز.

عنوان IP الضحية هو “23.23.23.101”. ويظهر ان الضحية دخل Gmail بحساب “aardvark.zebra” وبالضغط على العنوان تعرض مجموعة من URLs المتنسخه وبإختيار احدها فمثلاً بضغط على عنوان “http://mail.google.com/mail”  نشاهد على الشاشة دخول الضحية:

/session-sidejacking-hamster-3

 

وهي نفس النافذة التي تعرض على جهاز الضحية المشغل على نظام الونيدوز مع Internet Explorer دون علمه في تواجد المهاجم على نفس الصفحة

/session-sidejacking-hamster-4

 

تركيب برنامج Hamster:

طريقة تركيب البرنامج سهل جداً وهي معروفة عند مستخدمين لينكس وهنا طريقة التثبت من المصدر و تقريباً مستخدمة مع كافة توزيعات لينكس.

التركيب بطريقتين اما عن طريق makefiles او بتصريف الملفات المصدرية بإستخدام مصرف GCC وفي ظهور اخطأ يمكن تحل بسرعة.

حمل البرنامج من خلال هذا الرابط ثم قم بفك ضعظ ملفات zip بالامر unzip وبعدها انتقل الى مجلد

hamster/build/gcc4

واكتب الأمر:

make

/session-sidejacking-hamster-5

نحصل بعدها على:

/session-sidejacking-hamster-6

وبعد اكمال عملية التثبت تجد البرنامج التنفيذي في مجلد “hamster/bin” ويحتوي هذا المجلد على الملفات “favicon.ico”, “hamster.css” و “hamster.css”  ، وظيفة هذة الملفات تنسيق خادم الويب عندما يشغل في المتصفح ويجب وضعها في المجلد الحالي مع Hamster .ودون ملف JavaScript لان يعرض الحاله والتحديث التلقائي للصفحة والا فأنه عليك النقر على زر refresh.

بنفس الطريقة عملية تركيب برنامج ferret :اذهب الى مجلد

ferret/build/gcc4

واكتب الأمر:

make

وبعد الاكمال تجد الملف التنفيذي في “ferret/bin” وفي ظهور أي خطأ يجب التاكد من تنزيل مكتبات Pcap

/session-sidejacking-hamster-7

الان نجمع ملفات البرنامج في مسار bin الى مجلد واحد

/session-sidejacking-hamster-8

 

تشغيل برنامج Hamster:

من نافذة اوامر برنامج Ferret نضع خيار “i” لتحديد الواجهه (كرت الشبكة):

ferret -i eth0

وهناك طريقة اخرى في استعمال الكوكيز والدخول الى الموقع في وقت لاحق بعد اكمال عملية إلتقاط ويمكن استعمالها إلى ان تنقضي المده expire المعينة وفي بعض الاوقات ربما الدخول الى الحساب بعد مرور سنة أو سنوات. ويستخدم برنامج Wireshark لإلتقاط الحزم وتحفظ في ملف وبعد اسابيع لاحقه يقوم المهاجم بجلب الملف إلى برنامج Ferret بإستخدام الخيار “r”، ومن ثم توريد الى المتصفح لدخول إلى الجلسة.

الان قم بتشغيل برنامج خادم البروكسي:

./hamster

/session-sidejacking-hamster-9

بعدها توضع الاعدادات اللازمة في البروكسي المستمع إلى رقم المنفذ 1234 (الإفتراضي).

/session-sidejacking-hamster-10

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

الان بتشغيل المتصفح إلى الرابط:

http://hamster

وهذا الموقع تخيلي في البروكسي وليس موجود على الإنترنت. لاحظ بدخول المهاجم الى الموقع يتم الوصول عبر خادم البروكسي المشغل في نافذة الاومر Hamster ومن ثم عرض الموقع على المتصفح.

/session-sidejacking-hamster-11

في خانه “Proxy” يعرض الحاله الحالية للبرنامج وفي حال وجود اي خطأ crashes ستحصل على الرساله المبينة اسفل بان البروكسي غير مشغل ، نرى في الصورة فوق البروكسي يشتغل سليم ولم يحدث خطأ وعرض الرسالة عدم وجود اي هدف “No cloned target” ، تابع لمعرفة الحصول على الهدف بعد دخول الضحايا الى حسابهم.

/session-sidejacking-hamster-12

في اعلى الشاشة يحتوي على بعض المساعدات انقر عليها (بإفتراض JavaScript مشغل على المتصفح) بالضغط على “adapters”  لتفعيل الواجهه المناسبه لبداء عملية المراقبه كما في الشاشه أسفل وهذا مهم في تحديد كرت الـ wireless . ويشتغل برنامج ferret تلقائي في الخلفية ويتعرف على الجهاز المحدد، وبدوره يقوم في التنصت على الجهاز في نمط promiscuous لمتابعة الكوكيز وارسلها فيما بعد إلى Hamster  .ومن الملاحظ عملية التنصت غير نشطة passive  ويجب تحديد نمط promiscuous من نافذة الاوامر.

/session-sidejacking-hamster-13

 

هذة نقطة مهمة في تحديد الواجهه المرتبط بالشبكة المتواجد عليها لكن الطريقة تتسبب ببطئ على المتصفح وافضل تشغيل برنامج ferret يدوياً على نافذة ترمنل اخرى مع خيار “i”. اما في حال اردت استخدام هذا الهجوم على wireless يجب تحديد عتادك اللاسلكي ، ومن نافذة الاوامر نفذ إلامر “iwconfig” لتعرض القائمة المتوفره ومن ثم تحديد الواجهه المتصله ونضغط على “Submit” ليبداء بعدها برنامج Ferret تلقائياً بعملية التنصت. وتدعم اداه Hamster العديد من أنواع كروت اللاسلكية والكثير من الشركات المصنعه ويمكن بدء المراقبه مع العتاد المتصل بالنقطة الوصول كما يمكن تشغل الاداه مع monitor modeبدون حدوث مشاكل في عملية التنصت .

بالعودة الى القائمة الرئيسية بعد الضغط على submit يتم تحديث الحاله في خانة “Adapters”  للجهاز المتصل في الشبكة وهنا “eth0” وذلك لبداء مراقبه الحزم المراره إلى eth0 وإلتقاطها في الخلفية.

/session-sidejacking-hamster-14

وبعد اخذ قصت من الراحة والانتظار الى وصول ضحيه يتلزم تحديث الصفحة لظهور عناوين IP كما في الصورة

/session-sidejacking-hamster-15

 

وبضغط على عنوان IP الهدف لتعمل الاداه على نسخ جلسات الهدف ، ولاحظ تغيرت حالة البروكسي وتزود بالمعلومات في ان جميع طلبيات البروكسي على المتصفح لنسخ جميع كوكيز الجلسة من ذلك العنوان IP قد عادت من خادم البروكسي في الرد وتمت هذة العملية بنجاح .وفي يسار النافذة نرى هذة الروابط المختطفه

/session-sidejacking-hamster-16

 

وعلى يسار النافذه ، توفر الاداه امكانية اخرى لعرض جميع هذة الكوكيز المتسخة بضغط على القائمة [cookies] ، ويمكن استخدام هذة الميزه في اغراض مختلفه فمثلاً عندما نقوم بإختطاف جلسات Gmail في هذة الحاله الكوكيز المهمة لجلسة التي نريدها هي كوكيز “GX” والمخصص للنطاق “mail.google.com”.

/session-sidejacking-hamster-17

وعند الضغط على URL يفتح تبويب يحتوي على معلومات الضحية

/session-sidejacking-hamster-18

 

مع خدمات Gmail التي توفرها، تستطيع فقط قراءة اي رسالة في Inbox ، ولايمكن روية رسائل Sent Mail or Compose  ، ولا تسطيع أرسال بريد جديد . و لاتتحصل على الرسائل الجديد بتحديث الصفحة الا بعد إغلاق التبويب وتحديث نافذة Hamster والدخول مرة اخرى الى رابط http://mail.google.com/mail لروية الايميلات الجديده.

عن الكاتب:


أسامة الشهابي, طالب في هندسة البرمجيات جامعة تعز. احب المعرفة وتعلم الثغرات وتجربه وسائل الاختراق في جميع الانظمة المختلفة.

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

‫15 تعليقات

  1. مـشكور على الشرح الوآضح لاكن هل يوجد طريقة لعمل التنصت على خارج الشبكة ..

    كأستخدم بروكسي أو أتصال مثل الريلاكس

  2. يا سلام عليك
    فعلا اخي كفيت ووفيت اعطيت الموضوع حقه ولن نجد هكذا شرح جزاك الله بالخير دائما وشكرا

  3. بارك الله فيك أخ أسامة على جهدك 🙂
    +1

    باقي أن تذكر أن Gmail عنده سجل نشاط يعرض آخر الإتصالات والإتصالات المشبوهة. وقد ينتهي الحال بالمهاجم إلى الكشف كما في الصور :
    http://bit.ly/bC4amU
    http://bit.ly/as1dtU

    خاصة إذا كان المهاجم من منطقة خارج منطقة الضحية.

    وفقك الله 🙂

  4. السلام عليكم
    بارك الله فيك أخي الكريم لكن أظن ان هذه الطريقة للشبكة الداخلية فقط
    +
    لم أستطيع إكمال تطبيق الدرس وذلك لعدم قدرتي على وضع إعدادات البروكسي في المتصفح
    http://www.isecur1ty.org/images/stories/articles/session-sidejacking-hamster-10.png
    لأني لم أجد الخيارات التقدمة في المتصفح
    تحياتي

  5. ماشاء الله تبارك الله مقال رائع اخي زادك الله من فضله اخي اسامة.
    بالنسبة للاخوان اللي سألوا هل يصلح التنصت على شبكات خارجية
    نعم هناك اساليب لذلك ولكن لايروح ذهن احد اننا سنستخدم برتكول arp لعمل ذلك فنحن هنا نتكلم على شبكات خارج شبكاتنا وليس شبكة داخلية.
    عموما ان شاء الله قريبا ساضع مقال ان توفر لدي الوقت عن بعض الاساليب التي ممكن استخدامها لعمل interception لحزم بينات انظمة تقع في شبكة خارج نطاق شبكتنا.

  6. يعطيك ألف عافيه أخوي أسامة الشهابي

    ————–

    اخوي مصطفے لو أستخدم برنامج proxychains ويكون الاي بي مطابق لاي بي الدوله التي فيها الضحيه هل سوف يكون هناك اي رسالة تنبيه ؟

    ————–

    اخوي Hicham Wolf من شريط القوائم في المتصفح

    tools > options > Advanced > Network > Settings

    ————–

    فايز الخليفي تستطيع لقط الكوكيز من خارج الشبكه ,, راح تقولي كيف ؟

    أنا أقولك ,, قم بتشغيل برنامج tinyproxy ومن ثم إجبار الضحيه بوضع الاي بي والبورت الخاص بك بالبروكسي

    ومن ثم تشغيل برنامج wireshark وانتظر لمدة يوم لكي تضمن الضحيه ,, وبعدها قم بحفظ النتائج من wireshark واتشغيلها عن طريق hamster وسوف تجد جميع الكوكيز والمواقع التي قام بزيارتها .

    ————–

    تحياتي لكم

  7. السلام عليكم
    أخي أسامة الشهابي ربنا يعوض لك مجهوداتك
    شكرا لك على الموضوع الجد مميز
    تحياتي لك أخي

  8. مرحبا شباب كيف حالكم وشكراً على حضوركم و اتمنأ تكون في اتم الصحه والعافيه كما انا والحمدلله
    المهم اردت ان اضيف بعض الامور الاخرى لذلك قمت بطرحها لكي تعم الفائده للجميع

    بحسب معرفتي الحالي تستطيع اخذ الكوكيز من جهاز الضحيه التي متصل انت معها اما عن طريق الشبكة المحليه او شبكة الوير ، كما أود أن أشير إلى حل للمشكلة وهي VPNs or SSL-protected websites ، وصحيح ان الفكره قديمه وقد كانت صدورها في سنه 2007 لكن اعتقد أن في الفتره الاخيره ظهرت مشكله لتنفيذ الهجوم وحتى بطباعة الضحيه في العديد من المواقع
    http:// mail.google.com
    سيحول تلقائياً الى SSL
    https:// mail.google.com

    وأود أن اشير ايضاًإلى نقطة اخرى يعرفها الجميع وهي أن بيانات HTTP غير مشفره ويمكن التقطها بسهوله ، واكثر المواقع تعيين SSL افتراضيا عند طلب المستخدم وبطلب HTTP يتم تعين SSL redirect مباشرتاً ، لكن هذه العملية تتم في الطلب الثاني ويمكن للهاكر أن يستخدم الطلب الاول في اختراق الحسابات في أي شبكة محلية بإستخدام اداه sslstrip . وتتلخص فكره الاداه بتوسط المهاجم ليبدا بعدها برنامج sslstrip في إستقبال بيانات HTTP الصادره من جهاز الضحية ومن ثم اعاده إرسالها عبر HTTPS الى الخادم الشرعي . يعني عليكم أن تنبهوا لهذه الطريقة إن كنتم مسئولين على ارقام حسابات وبطاقه اتمئان .

    وتجدون على الرابط التالي فيديو يشرح إختطاف كوكيز الجلسه بطريقة sslstrip
    http://www.youtube.com/watch?v=8r6WgDiogcM&feature=related
    ومن خلال الرابط استعمال sslstrip في سرقة كلمات المرور
    http://www.isecur1ty.org/video-tutorials/network-security/239-sslstrip-ssl-https-bypass.html

  9. يا إخوان
    انا أفضـل أن تكون جميـع دروس البـاك تراك ..
    فيـــديو .

    أفضـل وأكثر إستيعاب

    تحياتـى للجيمع
    من أعضاء وإدارة

    والى الأاخ صاحبالموضوع مشكور … واصل

    أخوكم Mr.Matrix

  10. نعم سابقا كان بالإمكان القيام بذلك أما الأن فلا …. مواقع ك google و yahoo و facebook أصبحت لا تقبل http request بل https المشفر و الذي لسوء الحظ لا يمكن القيام بهجوم hijacking معه لهذا فإصتيادك gmail الضحية في سنوات غابرة لن تستطيع فعله الأن . حتى هجومات ssl-strip التي كانت تقوم تبديل بروتكولات https ب http أصبحت عديمة الجدوى لأن أغلب المواقع أصحبت لا تجيب إلا على https request .

اترك تعليقاً

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

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