شرح هجوم الرجل في المنتصف (ARP Poisoning) وكيفية عمله

أهلاً بكم في مقال جديد وسلسلة جديدة، سأشرح فيها أشهر وأهم الهجمات. الهجوم الذي سنتحدث عنه اليوم يمكّن المهاجم من اختراق الأجهزة الموجودة معه داخل الشبكة.

كيف يعمل الاتصال في الشبكة؟

أولاً، في كل شبكة يوجد جهاز راوتر أو مودم، وتكون هناك أجهزة متصلة جميعها بنفس هذا الراوتر، وبذلك نستطيع أن نقول إن هذه تعتبر شبكة. في هذه الشبكة، يجب أن تتعرف الأجهزة على بعضها البعض. يتم ذلك من خلال بروتوكول يسمى ARP (Address Resolution Protocol).

بروتوكول ARP هو الذي يمكّن جميع الأجهزة من التعرف على بعضها. كل جهاز داخل الشبكة، بما في ذلك المودم، يمتلك عنوان IP وعنوان MAC. يقوم كل جهاز بإرسال رسالة إلى جميع الأجهزة الأخرى في الشبكة، قائلاً: “يا جماعة، عنوان IP الخاص بي هو كذا وعنوان MAC الخاص بي هو كذا. من يريد التواصل معي، فليتواصل عبر هذه العناوين”.

ملاحظة حول عناوين IP: ستجد أن جميع عناوين IP في الشبكة تكون متشابهة ولكن مع اختلاف بسيط في الرقم الأخير. على سبيل المثال:

هذا الرقم الأخير يمكن أن يتغير حتى 255. بالطبع، بنية العناوين قد تختلف في شبكات أخرى، فمثلاً قد تجد شبكة تبدأ بعناوين مثل 10.0.2.x.

ذاكرة التخزين المؤقت (Cache)

كل جهاز، بما في ذلك الراوتر، يسجل عناوين IP و MAC للأجهزة الأخرى لديه في ما يسمى بـ الكاش (Cache). لكن هذه المعلومات لا تظل ثابتة إلى الأبد، بل تنتهي صلاحيتها بعد فترة. عندما تنتهي صلاحية معلومة مسجلة، يقوم الجهاز بإرسال استعلام جديد لجميع الأجهزة في الشبكة، سائلاً: “لمن يعود عنوان IP وعنوان MAC هذين؟”. الجهاز المعني يرد مؤكداً هويته، فيقوم الجهاز السائل بتحديث معلوماته في الكاش مرة أخرى. هذه هي آلية عمل بروتوكول ARP.

الاتصال بالإنترنت

لكي يتصل أي جهاز بالإنترنت، فإنه يرسل طلباً إلى المودم أو الراوتر للوصول إلى موقع معين. يقوم الراوتر بأخذ هذا الطلب، والاتصال بالموقع، وجلب البيانات، ثم إعادتها إلى الجهاز الذي طلبها. دائماً هناك وسيط بين الجهاز والإنترنت، وهو المودم أو الراوتر.

هجوم ARP Poisoning

الآن، إذا أراد مخترق (Hacker) اختراق جهاز معين داخل الشبكة والتجسس على اتصالاته بالإنترنت، فكيف يفعل ذلك؟ يستخدم هجوماً يسمى ARP Poisoning.

لنتعرف على كيفية عمل هذا الهجوم: يجب أن يكون المخترق متصلاً بنفس الشبكة التي يوجد بها الجهاز المستهدف. يقوم المخترق باستغلال آلية عمل بروتوكول ARP التي شرحناها.

لنتخيل السيناريو التالي:

يقوم المخترق بتنفيذ خطوتين:

  1. يتصل بالراوتر ويخبره: “يا راوتر، أنا صاحب عنوان MAC B (عنوان الضحية). إذا أردت إرسال أي بيانات إليه، أرسلها إليّ أنا”.
  2. يتصل بالجهاز الضحية ويخبره: “مرحباً، أنا الراوتر. إذا أردت إرسال أي بيانات إلى الإنترنت، أرسلها إليّ أنا”.

بهذه الطريقة، يعتقد الراوتر أن المخترق هو الضحية، ويعتقد الضحية أن المخترق هو الراوتر. أي اتصال بين الراوتر والضحية يمر الآن عبر المخترق أولاً. هذا الهجوم يسمى أيضاً Man-in-the-Middle Attack (هجوم الرجل في المنتصف).

الآن، عندما يحاول المستخدم الوصول إلى موقع ما (مثل أمازون)، يحدث التالي:

  1. المستخدم يرسل الطلب إلى المخترق (ظناً منه أنه الراوتر).
  2. المخترق يمرر الطلب إلى المودم.
  3. المودم يتصل بالإنترنت ويجلب بيانات الصفحة.
  4. بيانات الصفحة تعود إلى المودم.
  5. المودم يرسل البيانات إلى المخترق (ظناً منه أنه المستخدم).
  6. المخترق يطلع على البيانات ثم يمررها إلى المستخدم.

كل هذا يحدث دون أن يشعر المستخدم أو المودم بأي شيء، بينما يتمكن المخترق من الاطلاع على جميع بيانات المستخدم.

التطبيق العملي على كالي لينكس

لنفترض أن الجهاز المستهدف هو نظام ويندوز. أولاً، نحتاج إلى معرفة عنوان IP الخاص به.

  1. على جهاز الويندوز، نفتح موجه الأوامر (CMD) بالضغط على Win + R وكتابة cmd.
  2. نكتب الأمر التالي:
    ipconfig
    

    لنفترض أن الناتج أظهر أن عنوان IP هو 10.0.2.15. هذا هو الجهاز الذي سنستهدفه.

الآن ننتقل إلى جهاز المخترق (كالي لينكس)، والذي يجب أن يكون على نفس الشبكة.

الخطوة الأولى: جمع المعلومات

نحتاج إلى معرفة عناوين IP للأجهزة الموجودة معنا على الشبكة.

  1. نفتح الطرفية (Terminal) ونكتب الأمر التالي:
    sudo arp-scan --localnet
    

    بعد إدخال كلمة المرور، سيعرض الأمر قائمة بالأجهزة المتصلة. سنجد من بينها عنوان 10.0.2.15 الخاص بالويندوز. ستحتاج أيضاً إلى معرفة واجهة الشبكة (Interface) التي تستخدمها، مثلاً eth0 أو wlan0.

  2. للتأكد من عنوان IP الخاص بالراوتر، نستخدم الأمر التالي:
    ip route | grep default
    

    سيظهر الناتج أن عنوان IP للراوتر هو 10.0.2.1.

الخطوة الثانية: تنفيذ الهجوم

الآن بعد أن عرفنا IP الضحية و IP الراوتر، سنقوم بخداع كل منهما.

  1. خداع الضحية: سنخبر الجهاز الضحية (10.0.2.15) أننا الراوتر (10.0.2.1). نفتح طرفية جديدة ونكتب:
    sudo arpspoof -i eth0 -t 10.0.2.15 10.0.2.1
    

    ملاحظة: استبدل eth0 بواجهة الشبكة الخاصة بك.

  2. خداع الراوتر: سنخبر الراوتر (10.0.2.1) أننا الجهاز الضحية (10.0.2.15). نفتح طرفية ثالثة ونكتب:
    sudo arpspoof -i eth0 -t 10.0.2.1 10.0.2.15
    
  3. تفعيل توجيه الحزم (Packet Forwarding): لتمرير البيانات بين الضحية والراوتر، يجب تفعيل خاصية توجيه الحزم.
    echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward
    

    هذا الأمر يغير القيمة في الملف من 0 إلى 1، مما يسمح بتمرير البيانات.

الخطوة الثالثة: التقاط البيانات

الآن يمكننا استخدام أداة مثل Wireshark لتحليل البيانات المارة.

  1. نفتح Wireshark من قائمة التطبيقات.
  2. نختار واجهة الشبكة (مثلاً eth0) ونبدأ الالتقاط.
  3. في شريط التصفية، نكتب http لعرض طلبات HTTP فقط.

الآن، إذا قام المستخدم على جهاز الويندوز بزيارة موقع يعمل ببروتوكول HTTP (غير مشفر)، مثل http://testphp.vulnweb.com/artists.php، سنرى في Wireshark أن الجهاز 10.0.2.15 قد اتصل بهذا الموقع. يمكننا رؤية المسار الذي زاره وكل البيانات غير المشفرة.

للتأكد من IP الموقع، يمكننا استخدام أمر ping على جهاز الويندوز:

ping testphp.vulnweb.com

سنجد أن عنوان IP الظاهر هو نفسه الذي التقطه Wireshark.

ملاحظة هامة: يمكنك فقط رؤية بيانات الاتصالات غير المشفرة (HTTP). أما الاتصالات المشفرة (HTTPS)، فإنها تكون محمية، وتكون طرق فك تشفيرها معقدة.

إيقاف الهجوم وإعادة كل شيء إلى طبيعته

  1. لإيقاف الهجوم، نعود إلى الطرفية التي نفذنا فيها أمر توجيه الحزم ونعيد القيمة إلى 0:
    echo 0 | sudo tee /proc/sys/net/ipv4/ip_forward
    
  2. نذهب إلى الطرفيتين اللتين تعمل بهما أداة arpspoof ونضغط Ctrl + C في كل منهما لإيقاف الهجوم.

لضمان عودة كل شيء إلى حالته الطبيعية تماماً، يمكنك إعادة تشغيل الراوتر وجهازك وجهاز الضحية.

وهنا يكون المقال قد انتهى. آمل أن يكون الشرح واضحاً ومفيداً.

شارك المقال

أحدث المقالات

CONNECTED
ONLINE: ...
SECURE
00:00:00