بعد نجاح الـ Authentication، الـ Web Server يبعت للعميل Session Token (أو Session ID) بيفرّق بين الجلسات المتعددة اللي السيرفر بيفتحها مع العملاء. الـ Session Hijacking هو هجوم فيه المهاجم يستولي على جلسة TCP صالحة بين جهازين.
معظم أنواع الـ Authentication بتتم في بداية الجلسة فقط، فالمهاجم يقدر يدخل على الجهاز أثناء الجلسة وهي شغّالة. السيرفر يرد على طلبات المهاجم وهو فاكره المستخدم المُصادَق عليه، والمهاجم ممكن يخمّن أو يسرق الـ Session ID الصالح.
المهاجم يقدر يعمل Sniff لكل الحركة في جلسات TCP القائمة وينفّذ سرقة هوية، سرقة معلومات، احتيال، وغيرها.
| النوع | الوصف | مثال |
|---|---|---|
| Passive | بعد خطف الجلسة، المهاجم يراقب ويسجّل كل الحركة فقط. يستخدم Sniffers لجمع User IDs وكلمات المرور، ويستخدمها لاحقًا للدخول كمستخدم شرعي | Password Sniffing — أبسط طريقة للحصول على وصول خام للشبكة |
| Active | المهاجم يستولي على جلسة قائمة بقطع الاتصال من أحد الطرفين أو بالمشاركة الفعلية في المحادثة | هجوم MITM |
لنجاح MITM لازم المهاجم يخمّن الـ Sequence Number قبل ما الهدف يرد على السيرفر. على معظم الشبكات الحديثة الـ Sequence-Number Prediction ما بتنجحش لأن مصنّعي أنظمة التشغيل بيستخدموا قيم عشوائية للـ Initial Sequence Number.
| المستوى | التعريف | ملاحظات |
|---|---|---|
| Network-Level | اعتراض الحزم أثناء النقل بين العميل والسيرفر في جلسة TCP/UDP | المهاجم غالبًا يفضّله لأنه ما يحتاجش يعدّل الهجوم لكل Web Application — بيستهدف تدفق بيانات البروتوكول المشترك بين كل التطبيقات. المعلومات المستخلصة تُستخدم لاحقًا ضد جلسات التطبيق |
| Application-Level | السيطرة على جلسة HTTP بالحصول على الـ Session IDs | المهاجم يسيطر على جلسة قائمة ويقدر يفتح جلسات جديدة غير مصرّح بها بالبيانات المسروقة. غالبًا النوعان بيحصلوا مع بعض |
| Spoofing Attack | Session Hijacking | |
|---|---|---|
| الفكرة | المهاجم ينتحل شخصية مستخدم أو جهاز (الضحية) للحصول على وصول | الاستيلاء على جلسة نشطة موجودة بالفعل |
| الجلسة | ما بيسيطرش على جلسة قائمة — بيفتح جلسة جديدة باستخدام بيانات اعتماد الضحية المسروقة | بيعتمد على المستخدم الشرعي إنه ينشئ الاتصال ويعمل Authentication بنفسه |
في الـ Application-Level Session Hijacking المهاجم يسرق أو يتنبأ بـ Session Token صالح عشان يدخل بشكل غير مصرّح على Web Server أو يفتح جلسة جديدة غير مصرّح بها. عادةً الـ Network-Level والـ Application-Level بيحصلوا مع بعض لأن نجاح الأول بيدّي المهاجم معلومات وفيرة لتنفيذ الثاني، والـ Application-Level بيعتمد على جلسات HTTP.
| التقنية | الشرح |
|---|---|
| Stealing (السرقة) | سرقة الـ Session Key بالوصول الفيزيائي (ملفات تحتوي Session IDs أو محتويات الذاكرة على جهاز المستخدم أو السيرفر)، أو باستخدام أدوات Sniffing مثل Wireshark وRiverbed Packet Analyzer Plus لاستخراج الـ Session IDs من الحزم |
| Guessing (التخمين) | المهاجم يراقب متغيّرات الجلسة ويحاول يخمّن الـ IDs. نطاق القيم القابلة للتخمين محدود، فالتقنية فعّالة فقط لو السيرفر بيستخدم آلية توليد ضعيفة أو معيبة |
| Brute Forcing | تجربة كل التباديل الممكنة لقيم الـ Session ID لحد ما يلاقي واحدة تشتغل |
| الطريقة | التفاصيل |
|---|---|
| Sniffing | المهاجم يستخدم Sniffer لالتقاط Session Token/ID صالح، ثم يستخدمه للدخول غير المصرّح على الـ Web Server |
| Predicting | المهاجم يتنبأ بالـ IDs المولَّدة بخوارزميات ضعيفة وينتحل المستخدم. يحلّل الأجزاء المتغيّرة من الـ Session IDs لاكتشاف نمط (يدويًا أو بأدوات Cryptanalysis)، ويجمع عددًا كبيرًا من الـ IDs المتزامنة في نفس النافذة الزمنية مع تثبيت المتغيّر |
| النمط | الشرح | مثال |
|---|---|---|
| Sequential Tokens | Tokens تُصدَر بالتسلسل (001، 002، 003). المهاجم يلاحظ إنها بتزيد بواحد فيتنبأ بالتالي بإضافة 1 لآخر Token | لو التقط 1001 و1002 و1003، فبعد 1002 يخمّن 1003 |
| Timestamp-Based Tokens | Tokens فيها عناصر متوقَّعة زي الـ Timestamp، فالمهاجم يخمّنها بناءً على الوقت الحالي لو عرف الصيغة والتاريخ | user123-20240611T1234 فيه Timestamp 20240611T1234 |
يُستخدم للتسلّل إلى اتصال قائم بين نظامين واعتراض الرسائل المتبادلة. المهاجم بيقسّم اتصال TCP إلى اتصالين:
بعد الاعتراض، المهاجم يقدر يقرأ ويعدّل ويحقن بيانات احتيالية داخل الاتصال المعترَض. في معاملات HTTP يكون اتصال TCP بين العميل والسيرفر هو الهدف.
الـ Trojan يصيب برمجيات الجهاز أولًا (نظام التشغيل أو تطبيق).
يثبّت الـ Trojan كودًا خبيثًا (Extension Files) ويحفظه في إعدادات المتصفح.
بعد إعادة تشغيله، يُحمَّل الكود الخبيث على شكل Extension.
الـ Extension يسجّل Handler لكل زيارة صفحة ويقارن الـ URL بقائمة المواقع المستهدَفة.
المستخدم يسجّل دخوله بأمان للموقع، والـ Extension يسجّل Button Event Handler عند اكتشاف نمط تحميل صفحة معيّن.
لما المستخدم يضغط الزر، الـ Extension يستخدم واجهة DOM ويستخرج كل البيانات من حقول النموذج ويعدّل القيم.
المتصفح يرسل النموذج بالقيم المعدَّلة، والسيرفر يستقبلها ولا يقدر يميّز بين الأصلية والمعدَّلة.
| الهجوم | الشرح |
|---|---|
| Cross-Site Scripting (XSS) | هجوم من جهة العميل: المهاجم يخترق الـ Session Token باستخدام كود أو برامج خبيثة. يحصل لما صفحة ويب ديناميكية تستقبل بيانات خبيثة من المهاجم وتنفّذها على جهاز المستخدم |
| Cross-Site Request Forgery (CSRF) | اسمه كمان One-Click Attack أو Session Riding. المهاجم يستغل جلسة الضحية النشطة مع موقع موثوق لتنفيذ أنشطة خبيثة (شراء منتجات، تعديل أو استرجاع معلومات الحساب). المهاجم يصنع Form يحتوي معلومات خبيثة ويبعته للمستخدم المصرّح |
المهاجم يسمع المحادثة بين المستخدم والسيرفر ويلتقط Authentication Token الخاص بالمستخدم، ثم يعيد إرسال الطلب (Replay) للسيرفر بنفس الـ Token ويحصل على دخول غير مصرّح.
هجوم يسمح للمهاجم بخطف جلسة مستخدم صالحة. المهاجم يستدرج المستخدم لتسجيل الدخول بـ Session ID معروف مسبقًا، ثم يخطف الجلسة بعد توثيقها لأنه عارف الـ ID. على المهاجم إنه يوفّر Session ID شرعي للتطبيق ويستدرج متصفح الضحية لاستخدامه.
| تقنية التنفيذ | الوصف |
|---|---|
| Session Token في الـ URL | تمرير الـ Token كـ Argument في الرابط |
| Session Token في Hidden Form Field | تضمين الـ Token في حقل مخفي |
| Session ID في Cookie | تثبيت الـ ID داخل Cookie |
نوع من MITM لخطف جلسات HTTPS، يستغل إعادة استخدام الـ Cryptographic Nonce أثناء الـ TLS Handshake. بعد الخطف، المهاجم يحقن كودًا خبيثًا ومحتوى مزوَّر يدفع الضحية للكشف عن معلومات حساسة (أرقام حسابات بنكية، كلمات مرور، أرقام الضمان الاجتماعي).
المهاجم "يتبرّع" بـ Session Identifier (SID) الخاص به للمستخدم المستهدَف: يحصل أولًا على SID صالح بتسجيل الدخول لخدمة، ثم يدخّله للضحية. الـ SID ده يربط الضحية بصفحة حساب المهاجم من غير أي إشعار للضحية.
الـ Network-Level Hijacking بيعتمد على خطف بروتوكولات النقل والإنترنت (Transport/Internet) اللي بتستخدمها تطبيقات الويب في طبقة التطبيق. بمهاجمة جلسات الشبكة، المهاجم يجمع معلومات حرجة تُستخدم لمهاجمة جلسات التطبيق.
لما طرفان يؤسسوا اتصال TCP بيعملوا Three-Way Handshake، وده بيبدأ الاتصال ويتبادل كل الباراميترات اللازمة. في البداية العميل في حالة CLOSED والسيرفر في حالة LISTEN.
العميل يبدأ الاتصال بإرسال الـ Initial Sequence Number (ISN) مع تفعيل علم SYN. حالة العميل: SYN-SENT.
السيرفر يستقبل الحزمة، ويقرّ بالـ Sequence Number الخاص بالعميل ويرسل الـ ISN الخاص به مع علم SYN. حالة السيرفر: SYN-RECEIVED.
العميل يقرّ بالـ Sequence Number الخاص بالسيرفر بزيادته بواحد وتفعيل علم ACK. حالة العميل: ESTABLISHED، والجهازان يقدرا يتواصلا.
تقنية لدخول جهاز بدون تصريح بمساعدة عنوان IP لـ Trusted Host.
المهاجم ينتحل IP الـ Host فالسيرفر المدير للجلسة يقبل الحزم من المهاجم.
بعد تأسيس الجلسة، المهاجم يحقن حزمًا مزوَّرة قبل ما الـ Host يرد على السيرفر.
حزمة الـ Host الأصلية تضيع لأن السيرفر استقبل حزمة بـ Sequence Number مستخدم بالفعل من المهاجم.
حزم المهاجم بتتوجّه (Source-Routed) عبر الـ Host إلى الـ Destination IP اللي حدّده المهاجم.
حقن حزمة Reset (RST) تبدو أصلية باستخدام عنوان مصدر مزوَّر مع التنبؤ بـ Acknowledgment Number.
في الهجوم ده الـ Packet Sniffer بيشتغل كواجهة بين العميل والسيرفر، والمهاجم بيغيّر الـ Default Gateway في جهاز العميل ويحاول يعيد توجيه الحزم.
| التقنية | الشرح |
|---|---|
| Forged ICMP | امتداد لـ IP لإرسال رسائل الأخطاء، والمهاجم يبعت رسائل لخداع العميل والسيرفر |
| ARP Spoofing | ARP بيربط عناوين طبقة الشبكة (IP) بعناوين طبقة الـ Link (MAC) |
| الأداة | الوصف |
|---|---|
| Hetty | HTTP Toolkit تتيح تنفيذ هجوم MITM HTTP Proxy مع Logs وبحث متقدّم |
| Caido | Toolkit لفحص أمان الويب، يعترض ويعرض طلبات HTTP لحظيًا أثناء التصفح |
| Burp Suite | portswigger.net |
| OWASP ZAP | zaproxy.org |
| WebSploit Framework | sourceforge.net |
| sslstrip | pypi.org |
| JHijack | sourceforge.net |
| الأداة | الوصف |
|---|---|
| USM Anywhere | كشف تهديدات واستجابة للحوادث وإدارة Compliance عبر السحابة والبيئات المحلية |
| Wireshark | التقاط حركة الشبكة وتصفّحها تفاعليًا |
| Quantum IPS | Check Point |
| SolarWinds Security Event Manager | SolarWinds |
| IBM Security Network IPS | IBM |
| LogRhythm | logrhythm.com |
الـ DoH نسخة محسّنة من بروتوكول DNS تمنع التجسّس على أنشطة المستخدم أو استعلامات DNS أثناء عملية الـ Lookup. استعلامات الويب والحركة تُرسل عبر HTTPS مشفَّر على Port 443.
مجموعة بروتوكولات طوّرتها IETF لتأمين اتصالات IP بالـ Authentication وتشفير كل حزمة IP في الجلسة. تُستخدم على نطاق واسع لبناء VPNs وللوصول عن بُعد عبر Dial-up للشبكات الخاصة.
| الخدمة | الوظيفة |
|---|---|
| Authentication Header (AH) | يوفّر Authentication لبيانات المرسِل |
| Encapsulation Security Payload (ESP) | يوفّر Authentication وتشفير (Confidentiality) معًا |
Network-Level Peer Authentication، Data Origin Authentication، Data Integrity، Data Confidentiality (التشفير)، وReplay Protection.
الشرائح بتعرض "Session Hijacking Process" كرسم، وده تسلسله العام المعتمد في CEH:
المهاجم يضع نفسه بين الضحية والسيرفر (MITM أو Sniffer) لالتقاط الحزم والـ Session IDs.
يراقب الجلسة ويتتبع الـ Sequence Numbers والـ Tokens المتبادلة.
يكسر الاتصال مع الضحية (مثل RST) عشان ما يرجعش يتزامن مع السيرفر.
يسرق أو يتنبأ أو يخمّن أو يعمل Brute Force للـ Session ID/Sequence Number الصالح.
يحقن حزمًا أو طلبات بالـ Token الصالح فيسيطر على الجلسة وينفّذ أوامر بصلاحيات المستخدم.
| الهجوم | المستوى | الآلية | المفتاح |
|---|---|---|---|
| Session Sniffing | Application | التقاط الـ Token بالـ Sniffer | Wireshark |
| Token Prediction | Application | تحليل أنماط الـ Tokens (Sequential / Timestamp) | أدوات Cryptanalysis |
| MITM | Both | تقسيم TCP إلى اتصالين وقراءة/تعديل البيانات | Burp، Hetty |
| MITB | Application | Trojan + Extension يعدّل بيانات الـ Forms | Trojan |
| XSS | Application | تنفيذ كود خبيث في متصفح الضحية | Client-Side |
| CSRF | Application | استغلال جلسة نشطة لتنفيذ طلب خبيث | One-Click / Session Riding |
| Session Replay | Application | إعادة إرسال Token مسروق | Authentication Token |
| Session Fixation | Application | فرض Session ID معروف على الضحية | URL / Hidden Field / Cookie |
| Forbidden Attack | Application (HTTPS) | إعادة استخدام Nonce في TLS Handshake | TLS |
| Session Donation | Application | إعطاء الضحية SID خاص بالمهاجم | SID |
| TCP/IP Hijacking | Network | حزم مزوَّرة للاستيلاء على الاتصال | نفس الشبكة |
| RST Hijacking | Network | حقن RST بـ ACK Number صحيح | Colasoft، tcpdump |
| IP Spoofing / Source Routing | Network | انتحال IP موثوق وتوجيه الحزم | Source Routing |
| PetitPotam | Network / AD | إجبار DC على Authentication وعمل NTLM Relay لـ AD CS | MS-EFSRPC |
Client Server
CLOSED LISTEN
SYN (ISN) ----> SYN-RECEIVED
SYN-SENT <---- SYN + ACK
ESTABLISHED ACK ----> ESTABLISHED
الموديول ده ناقش مفاهيم الـ Session Hijacking وأنواعه (Passive وActive)، وتفصيل هجمات الـ Application-Level والـ Network-Level، وأدوات الـ Session Hijacking، ثم كيفية الكشف والحماية والدفاع بالأدوات والإجراءات المضادة اللي بيستخدمها المدافعون ضد المهاجمين.
الـ Session Hijacking مش بيكسر كلمة المرور — هو بيتخطّاها. المهاجم اللي معاه Session Token صالح بيتصرّف بصلاحيات المستخدم كأنه دخل بنفسه، وعشان كده حماية الـ Token نفسه (توليد عشوائي، تشفير النقل، إنهاء الجلسة) أهم من قوة كلمة المرور وحدها.
أسئلة هذا الموديول غالبًا تُركِّز على: الفرق بين Passive وActive، الفرق بين Spoofing وHijacking، الفرق بين Network-Level وApplication-Level، حالات الـ Three-Way Handshake (SYN-SENT، SYN-RECEIVED، ESTABLISHED)، الفرق بين Session Fixation وSession Donation، RST Hijacking، PetitPotam، والفرق بين AH وESP في IPsec.
نهاية نوتس الموديول الحادي عشر — Session Hijacking