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 لروية الايميلات الجديده.

عن الكاتب:


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

Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedIn