01مفاهيم الـ Session Hijacking — الأنواع والفرق عن الـ Spoofing

ما هو الـ Session Hijacking

بعد نجاح الـ Authentication، الـ Web Server يبعت للعميل Session Token (أو Session ID) بيفرّق بين الجلسات المتعددة اللي السيرفر بيفتحها مع العملاء. الـ Session Hijacking هو هجوم فيه المهاجم يستولي على جلسة TCP صالحة بين جهازين.

الفكرة الأساسية

معظم أنواع الـ Authentication بتتم في بداية الجلسة فقط، فالمهاجم يقدر يدخل على الجهاز أثناء الجلسة وهي شغّالة. السيرفر يرد على طلبات المهاجم وهو فاكره المستخدم المُصادَق عليه، والمهاجم ممكن يخمّن أو يسرق الـ Session ID الصالح.

المهاجم يقدر يعمل Sniff لكل الحركة في جلسات TCP القائمة وينفّذ سرقة هوية، سرقة معلومات، احتيال، وغيرها.

ليه الـ Session Hijacking بينجح؟

أنواع الـ Session Hijacking

النوعالوصفمثال
Passiveبعد خطف الجلسة، المهاجم يراقب ويسجّل كل الحركة فقط. يستخدم Sniffers لجمع User IDs وكلمات المرور، ويستخدمها لاحقًا للدخول كمستخدم شرعيPassword Sniffing — أبسط طريقة للحصول على وصول خام للشبكة
Activeالمهاجم يستولي على جلسة قائمة بقطع الاتصال من أحد الطرفين أو بالمشاركة الفعلية في المحادثةهجوم MITM
ملحوظة

لنجاح MITM لازم المهاجم يخمّن الـ Sequence Number قبل ما الهدف يرد على السيرفر. على معظم الشبكات الحديثة الـ Sequence-Number Prediction ما بتنجحش لأن مصنّعي أنظمة التشغيل بيستخدموا قيم عشوائية للـ Initial Sequence Number.

الـ Session Hijacking في نموذج OSI

المستوىالتعريفملاحظات
Network-Levelاعتراض الحزم أثناء النقل بين العميل والسيرفر في جلسة TCP/UDPالمهاجم غالبًا يفضّله لأنه ما يحتاجش يعدّل الهجوم لكل Web Application — بيستهدف تدفق بيانات البروتوكول المشترك بين كل التطبيقات. المعلومات المستخلصة تُستخدم لاحقًا ضد جلسات التطبيق
Application-Levelالسيطرة على جلسة HTTP بالحصول على الـ Session IDsالمهاجم يسيطر على جلسة قائمة ويقدر يفتح جلسات جديدة غير مصرّح بها بالبيانات المسروقة. غالبًا النوعان بيحصلوا مع بعض

الـ Spoofing مقابل الـ Hijacking

Spoofing AttackSession Hijacking
الفكرةالمهاجم ينتحل شخصية مستخدم أو جهاز (الضحية) للحصول على وصولالاستيلاء على جلسة نشطة موجودة بالفعل
الجلسةما بيسيطرش على جلسة قائمة — بيفتح جلسة جديدة باستخدام بيانات اعتماد الضحية المسروقةبيعتمد على المستخدم الشرعي إنه ينشئ الاتصال ويعمل Authentication بنفسه

02الـ Application-Level Session Hijacking

في الـ Application-Level Session Hijacking المهاجم يسرق أو يتنبأ بـ Session Token صالح عشان يدخل بشكل غير مصرّح على Web Server أو يفتح جلسة جديدة غير مصرّح بها. عادةً الـ Network-Level والـ Application-Level بيحصلوا مع بعض لأن نجاح الأول بيدّي المهاجم معلومات وفيرة لتنفيذ الثاني، والـ Application-Level بيعتمد على جلسات HTTP.

تقنيات الحصول على الـ Session ID

التقنيةالشرح
Stealing (السرقة)سرقة الـ Session Key بالوصول الفيزيائي (ملفات تحتوي Session IDs أو محتويات الذاكرة على جهاز المستخدم أو السيرفر)، أو باستخدام أدوات Sniffing مثل Wireshark وRiverbed Packet Analyzer Plus لاستخراج الـ Session IDs من الحزم
Guessing (التخمين)المهاجم يراقب متغيّرات الجلسة ويحاول يخمّن الـ IDs. نطاق القيم القابلة للتخمين محدود، فالتقنية فعّالة فقط لو السيرفر بيستخدم آلية توليد ضعيفة أو معيبة
Brute Forcingتجربة كل التباديل الممكنة لقيم الـ Session ID لحد ما يلاقي واحدة تشتغل

طرق اختراق الـ Session Token

اختراق الـ Session IDs بالـ Sniffing وبالتنبؤ بالـ Token

الطريقةالتفاصيل
Sniffingالمهاجم يستخدم Sniffer لالتقاط Session Token/ID صالح، ثم يستخدمه للدخول غير المصرّح على الـ Web Server
Predictingالمهاجم يتنبأ بالـ IDs المولَّدة بخوارزميات ضعيفة وينتحل المستخدم. يحلّل الأجزاء المتغيّرة من الـ Session IDs لاكتشاف نمط (يدويًا أو بأدوات Cryptanalysis)، ويجمع عددًا كبيرًا من الـ IDs المتزامنة في نفس النافذة الزمنية مع تثبيت المتغيّر

كيف يتم التنبؤ بالـ Session Token

النمطالشرحمثال
Sequential TokensTokens تُصدَر بالتسلسل (001، 002، 003). المهاجم يلاحظ إنها بتزيد بواحد فيتنبأ بالتالي بإضافة 1 لآخر Tokenلو التقط 1001 و1002 و1003، فبعد 1002 يخمّن 1003
Timestamp-Based TokensTokens فيها عناصر متوقَّعة زي الـ Timestamp، فالمهاجم يخمّنها بناءً على الوقت الحالي لو عرف الصيغة والتاريخuser123-20240611T1234 فيه Timestamp 20240611T1234

الـ MITM / Manipulator-in-the-Middle

يُستخدم للتسلّل إلى اتصال قائم بين نظامين واعتراض الرسائل المتبادلة. المهاجم بيقسّم اتصال TCP إلى اتصالين:

بعد الاعتراض، المهاجم يقدر يقرأ ويعدّل ويحقن بيانات احتيالية داخل الاتصال المعترَض. في معاملات HTTP يكون اتصال TCP بين العميل والسيرفر هو الهدف.

الـ Man-in-the-Browser (MITB) / Manipulator-in-the-Browser

1
إصابة الجهاز بـ Trojan

الـ Trojan يصيب برمجيات الجهاز أولًا (نظام التشغيل أو تطبيق).

2
تثبيت كود خبيث

يثبّت الـ Trojan كودًا خبيثًا (Extension Files) ويحفظه في إعدادات المتصفح.

3
إعادة تشغيل المتصفح

بعد إعادة تشغيله، يُحمَّل الكود الخبيث على شكل Extension.

4
تسجيل Handler

الـ Extension يسجّل Handler لكل زيارة صفحة ويقارن الـ URL بقائمة المواقع المستهدَفة.

5
تسجيل دخول المستخدم

المستخدم يسجّل دخوله بأمان للموقع، والـ Extension يسجّل Button Event Handler عند اكتشاف نمط تحميل صفحة معيّن.

6
تعديل البيانات

لما المستخدم يضغط الزر، الـ Extension يستخدم واجهة DOM ويستخرج كل البيانات من حقول النموذج ويعدّل القيم.

7
الإرسال للسيرفر

المتصفح يرسل النموذج بالقيم المعدَّلة، والسيرفر يستقبلها ولا يقدر يميّز بين الأصلية والمعدَّلة.

الهجمات من جهة العميل: XSS وCSRF

الهجومالشرح
Cross-Site Scripting (XSS)هجوم من جهة العميل: المهاجم يخترق الـ Session Token باستخدام كود أو برامج خبيثة. يحصل لما صفحة ويب ديناميكية تستقبل بيانات خبيثة من المهاجم وتنفّذها على جهاز المستخدم
Cross-Site Request Forgery (CSRF)اسمه كمان One-Click Attack أو Session Riding. المهاجم يستغل جلسة الضحية النشطة مع موقع موثوق لتنفيذ أنشطة خبيثة (شراء منتجات، تعديل أو استرجاع معلومات الحساب). المهاجم يصنع Form يحتوي معلومات خبيثة ويبعته للمستخدم المصرّح

الـ Session Replay Attack

المهاجم يسمع المحادثة بين المستخدم والسيرفر ويلتقط Authentication Token الخاص بالمستخدم، ثم يعيد إرسال الطلب (Replay) للسيرفر بنفس الـ Token ويحصل على دخول غير مصرّح.

الـ Session Fixation

هجوم يسمح للمهاجم بخطف جلسة مستخدم صالحة. المهاجم يستدرج المستخدم لتسجيل الدخول بـ Session ID معروف مسبقًا، ثم يخطف الجلسة بعد توثيقها لأنه عارف الـ ID. على المهاجم إنه يوفّر Session ID شرعي للتطبيق ويستدرج متصفح الضحية لاستخدامه.

تقنية التنفيذالوصف
Session Token في الـ URLتمرير الـ Token كـ Argument في الرابط
Session Token في Hidden Form Fieldتضمين الـ Token في حقل مخفي
Session ID في Cookieتثبيت الـ ID داخل Cookie

الـ Forbidden Attack

نوع من MITM لخطف جلسات HTTPS، يستغل إعادة استخدام الـ Cryptographic Nonce أثناء الـ TLS Handshake. بعد الخطف، المهاجم يحقن كودًا خبيثًا ومحتوى مزوَّر يدفع الضحية للكشف عن معلومات حساسة (أرقام حسابات بنكية، كلمات مرور، أرقام الضمان الاجتماعي).

الـ Session Donation Attack

المهاجم "يتبرّع" بـ Session Identifier (SID) الخاص به للمستخدم المستهدَف: يحصل أولًا على SID صالح بتسجيل الدخول لخدمة، ثم يدخّله للضحية. الـ SID ده يربط الضحية بصفحة حساب المهاجم من غير أي إشعار للضحية.


03الـ Network-Level Session Hijacking

الـ Network-Level Hijacking بيعتمد على خطف بروتوكولات النقل والإنترنت (Transport/Internet) اللي بتستخدمها تطبيقات الويب في طبقة التطبيق. بمهاجمة جلسات الشبكة، المهاجم يجمع معلومات حرجة تُستخدم لمهاجمة جلسات التطبيق.

الـ Three-Way Handshake

لما طرفان يؤسسوا اتصال TCP بيعملوا Three-Way Handshake، وده بيبدأ الاتصال ويتبادل كل الباراميترات اللازمة. في البداية العميل في حالة CLOSED والسيرفر في حالة LISTEN.

1
SYN

العميل يبدأ الاتصال بإرسال الـ Initial Sequence Number (ISN) مع تفعيل علم SYN. حالة العميل: SYN-SENT.

2
SYN + ACK

السيرفر يستقبل الحزمة، ويقرّ بالـ Sequence Number الخاص بالعميل ويرسل الـ ISN الخاص به مع علم SYN. حالة السيرفر: SYN-RECEIVED.

3
ACK

العميل يقرّ بالـ Sequence Number الخاص بالسيرفر بزيادته بواحد وتفعيل علم ACK. حالة العميل: ESTABLISHED، والجهازان يقدرا يتواصلا.

الـ TCP/IP Hijacking

الـ IP Spoofing: Source Routed Packets

1
استخدام Source Routing

تقنية لدخول جهاز بدون تصريح بمساعدة عنوان IP لـ Trusted Host.

2
انتحال IP المضيف

المهاجم ينتحل IP الـ Host فالسيرفر المدير للجلسة يقبل الحزم من المهاجم.

3
حقن حزم مزوَّرة

بعد تأسيس الجلسة، المهاجم يحقن حزمًا مزوَّرة قبل ما الـ Host يرد على السيرفر.

4
ضياع الحزمة الأصلية

حزمة الـ Host الأصلية تضيع لأن السيرفر استقبل حزمة بـ Sequence Number مستخدم بالفعل من المهاجم.

5
التوجيه عبر الـ Host

حزم المهاجم بتتوجّه (Source-Routed) عبر الـ Host إلى الـ Destination IP اللي حدّده المهاجم.

الـ RST Hijacking

حقن حزمة Reset (RST) تبدو أصلية باستخدام عنوان مصدر مزوَّر مع التنبؤ بـ Acknowledgment Number.

الـ MITM باستخدام Forged ICMP وARP Spoofing

في الهجوم ده الـ Packet Sniffer بيشتغل كواجهة بين العميل والسيرفر، والمهاجم بيغيّر الـ Default Gateway في جهاز العميل ويحاول يعيد توجيه الحزم.

التقنيةالشرح
Forged ICMPامتداد لـ IP لإرسال رسائل الأخطاء، والمهاجم يبعت رسائل لخداع العميل والسيرفر
ARP SpoofingARP بيربط عناوين طبقة الشبكة (IP) بعناوين طبقة الـ Link (MAC)

الـ PetitPotam Hijacking

أدوات الـ Session Hijacking

الأداةالوصف
HettyHTTP Toolkit تتيح تنفيذ هجوم MITM HTTP Proxy مع Logs وبحث متقدّم
CaidoToolkit لفحص أمان الويب، يعترض ويعرض طلبات HTTP لحظيًا أثناء التصفح
Burp Suiteportswigger.net
OWASP ZAPzaproxy.org
WebSploit Frameworksourceforge.net
sslstrippypi.org
JHijacksourceforge.net

04الإجراءات المضادة وأدوات الكشف

الإجراءات المضادة (14 إجراء)

  1. استخدام SSH أو OpenSSH لإنشاء قناة اتصال آمنة
  2. تفعيل خاصية Log-out ليُنهي المستخدم الجلسة
  3. توليد Session ID بعد تسجيل دخول ناجح وقبول الـ IDs المولَّدة من السيرفر فقط
  4. تشفير البيانات أثناء النقل وتطبيق Defense-in-Depth
  5. استخدام أرقام عشوائية طويلة كـ Session Keys
  6. التحويل من شبكة Hub إلى شبكة Switch لتقليل الخطر
  7. تطبيق Timeout لتدمير الجلسات عند انتهائها
  8. عدم وضع الـ Session ID في الـ URL أو Query String
  9. التأكد إن برامج الحماية (Client-Side وServer-Side) نشطة ومحدَّثة
  10. استخدام Authentication قوي (مثل Kerberos) أو VPNs من نوع Peer-to-Peer
  11. ضبط قواعد Spoof مناسبة (داخلية وخارجية) على الـ Gateways
  12. استخدام منتجات IDS أو ARPwatch لمراقبة ARP Cache Poisoning
  13. تمكين المتصفحات من التحقق من أصالة المواقع عبر Network Notary Servers
  14. استخدام SFTP أو AS2 Managed File Transfer أو FTPS لإرسال البيانات بتشفير وشهادات رقمية

أدوات كشف الـ Session Hijacking

الأداةالوصف
USM Anywhereكشف تهديدات واستجابة للحوادث وإدارة Compliance عبر السحابة والبيئات المحلية
Wiresharkالتقاط حركة الشبكة وتصفّحها تفاعليًا
Quantum IPSCheck Point
SolarWinds Security Event ManagerSolarWinds
IBM Security Network IPSIBM
LogRhythmlogrhythm.com

منع هجمات MITM: DNS over HTTPS

الـ DoH نسخة محسّنة من بروتوكول DNS تمنع التجسّس على أنشطة المستخدم أو استعلامات DNS أثناء عملية الـ Lookup. استعلامات الويب والحركة تُرسل عبر HTTPS مشفَّر على Port 443.

الـ IPsec

مجموعة بروتوكولات طوّرتها IETF لتأمين اتصالات IP بالـ Authentication وتشفير كل حزمة IP في الجلسة. تُستخدم على نطاق واسع لبناء VPNs وللوصول عن بُعد عبر Dial-up للشبكات الخاصة.

الخدمةالوظيفة
Authentication Header (AH)يوفّر Authentication لبيانات المرسِل
Encapsulation Security Payload (ESP)يوفّر Authentication وتشفير (Confidentiality) معًا
فوائد IPsec

Network-Level Peer Authentication، Data Origin Authentication، Data Integrity، Data Confidentiality (التشفير)، وReplay Protection.


عملية الـ Session Hijacking خطوة بخطوة

الشرائح بتعرض "Session Hijacking Process" كرسم، وده تسلسله العام المعتمد في CEH:

1
Sniffing / الاعتراض

المهاجم يضع نفسه بين الضحية والسيرفر (MITM أو Sniffer) لالتقاط الحزم والـ Session IDs.

2
Monitoring / المراقبة

يراقب الجلسة ويتتبع الـ Sequence Numbers والـ Tokens المتبادلة.

3
Session Desynchronization

يكسر الاتصال مع الضحية (مثل RST) عشان ما يرجعش يتزامن مع السيرفر.

4
Session ID Prediction

يسرق أو يتنبأ أو يخمّن أو يعمل Brute Force للـ Session ID/Sequence Number الصالح.

5
Command Injection / الاستيلاء

يحقن حزمًا أو طلبات بالـ Token الصالح فيسيطر على الجلسة وينفّذ أوامر بصلاحيات المستخدم.


Cheat Sheet مرجعي

مقارنة هجمات الـ Session Hijacking

الهجومالمستوىالآليةالمفتاح
Session SniffingApplicationالتقاط الـ Token بالـ SnifferWireshark
Token PredictionApplicationتحليل أنماط الـ Tokens (Sequential / Timestamp)أدوات Cryptanalysis
MITMBothتقسيم TCP إلى اتصالين وقراءة/تعديل البياناتBurp، Hetty
MITBApplicationTrojan + Extension يعدّل بيانات الـ FormsTrojan
XSSApplicationتنفيذ كود خبيث في متصفح الضحيةClient-Side
CSRFApplicationاستغلال جلسة نشطة لتنفيذ طلب خبيثOne-Click / Session Riding
Session ReplayApplicationإعادة إرسال Token مسروقAuthentication Token
Session FixationApplicationفرض Session ID معروف على الضحيةURL / Hidden Field / Cookie
Forbidden AttackApplication (HTTPS)إعادة استخدام Nonce في TLS HandshakeTLS
Session DonationApplicationإعطاء الضحية SID خاص بالمهاجمSID
TCP/IP HijackingNetworkحزم مزوَّرة للاستيلاء على الاتصالنفس الشبكة
RST HijackingNetworkحقن RST بـ ACK Number صحيحColasoft، tcpdump
IP Spoofing / Source RoutingNetworkانتحال IP موثوق وتوجيه الحزمSource Routing
PetitPotamNetwork / ADإجبار DC على Authentication وعمل NTLM Relay لـ AD CSMS-EFSRPC

أهم الأوامر والحالات للمراجعة السريعة

tcp — three-way handshake states
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، ثم كيفية الكشف والحماية والدفاع بالأدوات والإجراءات المضادة اللي بيستخدمها المدافعون ضد المهاجمين.

$ cat ./module11_summary.txt

الـ Session Hijacking مش بيكسر كلمة المرور — هو بيتخطّاها. المهاجم اللي معاه Session Token صالح بيتصرّف بصلاحيات المستخدم كأنه دخل بنفسه، وعشان كده حماية الـ Token نفسه (توليد عشوائي، تشفير النقل، إنهاء الجلسة) أهم من قوة كلمة المرور وحدها.

Exam Tip

أسئلة هذا الموديول غالبًا تُركِّز على: الفرق بين 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