Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
WhisperPair — التنفيذ المرجعي الرسمي والتحقق من الثغرة الأمنية لهجومنا WhisperPair (CVE-2025-36911) الذي يؤثر على بروتوكول Fast Pair من جوجل. | Kitploit
أدوات/GitHubGitHub/kuleuven-cosic/whisperpair
أمن البلوتوثتحليل الثغرات الأمنيةالاستغلالأمن الشبكات اللاسلكيةاختبار الاختراقأمان الأجهزة وإنترنت الأشياءالأوراق والأبحاثالتعلم والتعليم
GitHubkuleuven-cosic/whisperpair

WhisperPair

التنفيذ المرجعي الرسمي والتحقق من الثغرة الأمنية لهجومنا WhisperPair (CVE-2025-36911) الذي يؤثر على بروتوكول Fast Pair من جوجل.

عرض المستودع
8010منذ 2 أشهرتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة
الموقع الإلكتروني

WhisperPair: منصة اختبار لـ Google Fast Pair

Venue License: CC BY 4.0 OS Hardware Website

أداة عملية لاختبار ما إذا كانت أجهزة Google Fast Pair عرضة لهجمات الاقتران، وربط الحساب، والهجمات على مستوى البروتوكول.

يوفّر هذا المستودع منصة اختبار WhisperPair، وهي أداة لتقييم أمان أجهزة Google Fast Pair. صُمّمت لتمكين كلٍّ من الباحثين والممارسين من إعادة إنتاج نتائجنا واختبار أجهزتهم الخاصة.

للحصول على نظرة عامة حول المشروع والأجهزة المتأثرة وسياق إضافي، يرجى زيارة موقعنا.

يحتوي هذا المستودع أيضاً على الأداة البرمجية (artefact) المصاحبة للورقة البحثية One Tap to Hijack Them All: A Security Analysis of the Google Fast Pair Protocol، التي نُشرت في IEEE S&P 2026.

الاستشهاد

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

root@kitploit:~
@inproceedings{whisperpair2026,
  title     = {One Tap to Hijack Them All: A Security Analysis of the Google Fast Pair Protocol},
  author    = {Duttagupta, Sayon and Wyns, Seppe and Antonijević, Nikola and Singelée, Dave and Preneel, Bart},
  booktitle = {2026 IEEE Symposium on Security and Privacy (S\&P)},
  year      = {2026},
}

إخلاء المسؤولية والاستخدام المسؤول

المواد مقدّمة لتمكين إعادة إنتاج تقييمنا ومساعدة الباحثين في إجراء اختبارات دفاعية. استخدم هذه المواد فقط في أبحاث أمنية مصرّح بها وتحقق دفاعي على أجهزة تملكها أو لديك إذن صريح لاختبارها. نظراً لأن الكود الموجود في هذا المستودع يستعرض ثغرات في الملحقات الاستهلاكية، فلا تستخدمه لمهاجمة أجهزة طرف ثالث دون إذن كتابي واضح. أجرى المؤلفون جميع التجارب على أجهزة يملكها فريق المشروع أو تم التبرع بها بموافقة مستنيرة. باستخدامك هذه الأدوات، فإنك توافق على استخدامها فقط للبحث الدفاعي، أو إعادة إنتاج نتائجنا، أو الاختبار الذاتي للأجهزة.

الإعداد والمتطلبات

[!NOTE] ملخص: تأكد من أن لديك جهازاً يعمل بنظام Linux مع محول Bluetooth، وأن Node.js (LTS) وpnpm مثبتان.
يمكنك تشغيل كل من واجهة المستخدم والخادم على نفس الجهاز عن طريق تنفيذ bash build.sh ثم bash start.sh.

يحتوي هذا المستودع على منصة اختبار لتقييم ما إذا كان الجهاز المستهدف يطبّق بشكل صحيح بعض المتطلبات الأمنية لتقنية Google Fast Pair. يمكن للمنصة اختبار ما إذا كان مسند حالة الاقتران (pairing state predicate) مطبّقاً بشكل صحيح، وما إذا كانت الرسائل التي يعاد فيها استخدام nonce مرفوضة، وما إذا كان الجهاز عرضة لهجوم المنحنى غير الصالح. تتكون المنصة من خادم خلفي وواجهة ويب أمامية.

[!NOTE] إذا كنت تبحث عن تنفيذ الهجمات تحديداً: يحتوي ./toolkit-server/src/fast-pair-service.ts و./toolkit-server/src/protocol.ts على تنفيذ الهجمات وبروتوكول Fast Pair.

تتكون المنصة من مكوّنين: الخادم وواجهة المستخدم.
يجب تشغيل الخادم على نظام Linux، وقد تم اختباره مع Raspberry Pi 4.
واجهة المستخدم هي واجهة أمامية مبنية على Next.js ويمكن استخدامها للتحكم في الخادم، ويمكن تشغيلها في أي مكان يدعم Node.js.
يجب أن تكون واجهة المستخدم قادرة على الاتصال بالخادم عبر الشبكة.

اختبرنا المنصة مع Raspberry Pi OS Lite (64-bit) (6.12.47+rpt-rpi-v8)، وإصدار BlueZ 5.82.

المتطلبات الأساسية

جهاز يعمل بنظام Linux مع تثبيت BlueZ وNode.js وpnpm.

Node.js

نوصي بشدة باستخدام إصدار الدعم طويل الأمد (LTS) الحالي من Node.js (v24.14.0).
لقد تأكدنا من أن المنصة تعمل باستخدام هذا الإصدار.
قد تعمل الإصدارات الأقدم حتى v18، لكنها على الأرجح سوف تتعطل أو تنتج نتائج غير متوقعة.

nvm.sh

إذا كنت تستخدم nvm لإدارة إصدارات Node.js المثبتة لديك، فيجب عليك التأكد من أن root لديه حق الوصول إلى إصدار Node.js المُدار عبر nvm أيضاً.
كما هو موضح في هذا المنشور على StackOverflow، قد تحتاج إلى إنشاء رابط رمزي جديد.

root@kitploit:~
# Source - https://stackoverflow.com/a/40078875
# Posted by SimpleJ, modified by community. See post 'Timeline' for change history
# Retrieved 2026-03-30, License - CC BY-SA 4.0

sudo ln -s "$NVM_DIR/versions/node/$(nvm version)/bin/node" "/usr/local/bin/node"
sudo ln -s "$NVM_DIR/versions/node/$(nvm version)/bin/npm" "/usr/local/bin/npm"
sudo ln -s "$NVM_DIR/versions/node/$(nvm version)/bin/npx" "/usr/local/bin/npx"

[!NOTE] لتشغيل الخادم، تحتاج فقط إلى ربط node.

إذا تم تثبيت Node.js أيضاً باستخدام مدير حزم خارجي، فقد يكون الإصدار المتاح لـ sudo مختلفاً عن الإصدار المستخدم من قبل nvm.
يمكنك التحقق من ذلك بمقارنة مخرجات node -v وsudo node -v.
في حين نوصي بـ Node.js LTS v24، يجب أن يكون الخادم قادراً على العمل بشكل صحيح حتى الإصدار v18.

pnpm

إذا تم تثبيت Node.js v24 LTS، فيجب أن تتمكن من تفعيل pnpm باستخدام الأمر التالي:

root@kitploit:~
corepack enable

أدوات إضافية

تتطلب المنصة أيضاً hcitool وl2ping.
اعتماداً على توزيعة Linux لديك، قد لا يكون hcitool متاحاً. قد تحتاج إلى تثبيت bluez-deprecated-tools.
لا يزال مثبتاً مسبقاً على أحدث إصدار من Raspberry Pi OS Lite وقت كتابة هذا الدليل. (1 أكتوبر 2025)

إذا لم يكن محول Bluetooth قيد التشغيل، سيحاول الخادم استخدام rfkill لتشغيله.
يتطلب اختبار امتداد Audio Switch توفر rfcomm.

[!NOTE] سيتحقق الخادم من توفر هذه الأدوات عند بدء التشغيل. سيتم عرض معلومات إضافية حول الميزات التي قد لا تكون متاحة في وحدة التحكم.

تتطلب إعادة إنتاج النتائج وصولاً مادياً إلى جهاز قابل للاستغلال.
انتبه إلى أن معظم البائعين أصدروا تحديثات برمجية استجابةً لـ WhisperPair، لذلك قد تحتاج إلى أجهزة ذات برامج ثابتة قديمة.
انظر اختيار جهاز لمزيد من المعلومات حول الأجهزة التي استخدمناها في تقييمنا.

الإعداد السريع

إذا كنت تريد تشغيل واجهة المستخدم والخادم على نفس الجهاز (Linux)، يمكنك استخدام السكربتين build.sh وstart.sh.
أولاً، ثبّت التبعيات المطلوبة وابنِ المكوّنات باستخدام:

root@kitploit:~
bash build.sh

تأكد من تمكين Bluetooth:

root@kitploit:~
sudo rfkill unblock bluetooth

ثم شغّل واجهة المستخدم والخادم باستخدام:

root@kitploit:~
bash start.sh

يجب أن تكون واجهة المستخدم متاحة الآن على http://localhost:3000.

تشغيل واجهة المستخدم والخادم على مضيفين مختلفين

يمكنك تشغيل واجهة المستخدم والخادم على مضيفين مختلفين.
هذا يتيح لك تشغيل الخادم على جهاز Linux بينما تعمل واجهة المستخدم محلياً.
على الرغم من أن هذا غير موصى به، يمكنك القيام بذلك كما يلي:

  1. تأكد من أن دليل toolkit-server متاح على جهاز Linux
  2. ابنِ toolkit-server عن طريق تنفيذ bash build.sh
  3. حدّث ملف .env في دليل toolkit-ui بحيث يتم تعيين متغير SERVER_URL على عنوان الخادم. يمكنك تنفيذ bash update_server_url.sh <YOUR_URL> لتحديث ملف .env تلقائياً.
  4. ابنِ toolkit-ui عن طريق تنفيذ bash build.sh
  5. شغّل toolkit-server عن طريق تنفيذ bash start.sh
  6. شغّل toolkit-ui عن طريق تنفيذ bash start.sh

يجب أن تكون واجهة المستخدم متاحة الآن على http://localhost:3000.

إعداد الخادم يدوياً

كبديل لاستخدام السكربتين build.sh وstart.sh، يمكنك أيضاً بناء الخادم وتشغيله يدوياً.
توجد تعليمات مفصلة حول كيفية تنفيذ هذه الخطوات في toolkit-server README

إعداد واجهة المستخدم يدوياً

كبديل لاستخدام السكربتين build.sh وstart.sh، يمكنك أيضاً بناء واجهة المستخدم وتشغيلها يدوياً.
توجد تعليمات مفصلة حول كيفية تنفيذ هذه الخطوات في toolkit-ui README

الاستخدام

اختيار جهاز

تحتاج إلى ملحق متوافق مع Fast Pair لتنفيذ الهجمات واستخدام المنصة.
قمنا بتقييم 25 جهازاً من 16 بائعاً، كما هو موضح في الجدول أدناه.
إذا كان لديك أحد هذه الأجهزة، ولم يتم تحديث برنامجه الثابت منذ سبتمبر 2025، فيمكنك إعادة إنتاج نتائجنا.

يمكنك أيضاً استخدام المنصة لتقييم جهاز لم نختبره.
ومع ذلك، قد تواجه بعض الأخطاء غير المتوقعة اعتماداً على موثوقية شريحة Bluetooth في الجهاز المستهدف.

عند تنفيذ الهجمات، تأكد من معرفة ما إذا كان الجهاز المستهدف في وضع الاقتران أم لا.
تتطلب بعض الهجمات ألا يكون الجهاز في وضع الاقتران، وقد تنتج نتائج إيجابية خاطئة بخلاف ذلك.
تتطلب هجمات أخرى أن يكون الجهاز في وضع الاقتران، وقد لا تعمل بخلاف ذلك.

إذا كنت تبحث عن أجهزة متوافقة مع Fast Pair، يمكنك استخدام قائمة معرّفات الطراز لعرض جميع الأجهزة المعتمدة من Fast Pair.

رسالة تحذير Model not included in test set

ستعرض واجهة المستخدم رسالة تحذير إذا قمت بتحديد جهاز غير مدرج في مجموعة الاختبار الخاصة بنا.
تظهر هذه الرسالة بناءً على Model ID، الذي قد يختلف بين الألوان والمناطق المختلفة لنفس الجهاز.
على سبيل المثال، تستخدم سماعات رأس زرقاء من Sony WH-1000XM6 معرّف طراز مختلفاً عن سماعات رأس سوداء من Sony WH-1000XM6.

نظراً لأنه من المرجح أن تحتوي هذه الأجهزة على نفس البرنامج الثابت (حتى وإن كانت معرّفات الطراز مختلفة)، يمكنك تجاهل رسالة التحذير هذه بأمان.

رسالة خطأ No device with Model ID <number> was found

نظراً لتشديد الحد من المعدل (rate limiting) المفروض من قبل Fast Pair gRPC API، قد تعيد بعض طلبات بيانات الطراز استجابات ناجحة بمحتوى فارغ.
سيؤدي ذلك إلى ظهور الرسالة No device with Model ID <number> was found في واجهة المستخدم.
إذا كنت متأكداً من أن Model ID الذي أدخلته موجود، فيرجى الانتظار بضع دقائق وإعادة المحاولة.

[!NOTE] بيانات الطراز للأجهزة في مجموعة الاختبار الخاصة بنا مضمنة في هذا المستودع وستتم قراءتها من ذاكرة تخزين مؤقت. لا يتطلب تقييم هذه الأجهزة استدعاء API لخدمة gRPC. لاحظ أن أجهزة نفس السلسلة قد لا تحتوي على نفس معرّفات الطراز. انظر رسالة تحذير Model not included in test set لمزيد من المعلومات.

دليل واجهة المستخدم

واجهة مستخدم المنصة

ستحاول واجهة المستخدم الاتصال بالخادم عند بدء التشغيل.
عند نجاح الاتصال، ستظهر رسالة "Connected to the server" في الزاوية السفلية اليمنى من الشاشة.

يتطلب تقييم ما إذا كان الجهاز عرضة للثغرات ثلاث خطوات: اكتشاف الجهاز، وتعيين Model ID الخاص به، وتنفيذ هجوم.

1. اكتشاف الأجهزة

تقوم المنصة بفحص مستمر لأجهزة Bluetooth Low Energy، وتُعرض هذه الأجهزة على الجانب الأيسر من الشاشة.
تظهر الأجهزة التي تعلن عن بيانات Fast Pair في الأعلى.
تظهر تفاصيل الجهاز على الجانب الأيمن من الشاشة بعد النقر على "Select" في أحد الأجهزة.

2. تعيين Model ID

يتطلب تشغيل الاختبارات الموضحة في الورقة تعيين Model ID للجهاز.
إذا كان الجهاز يعرض خاصية GATT الخاصة بـ Fast Pair، فسيظهر زر "Read Model ID" في تفاصيل الجهاز.
سيؤدي النقر على هذا الزر إلى محاولة قراءة Model ID.

لاحظ أن العديد من الأجهزة لا تطبّق هذه الخاصية بشكل صحيح، وتعيد معرّفات طراز غير صالحة.
بدلاً من ذلك، يمكنك تعيين Model ID للجهاز يدوياً بالضغط على زر "Set Model ID" وإدخال قيمة يدوياً.
يمكن تحديد الأجهزة التي تم تقييمها أثناء اختباراتنا، أو إدخال قيمة مخصصة.
توجد قائمة كاملة بالأجهزة المتوافقة مع Fast Pair في جذر هذا المستودع.

بمجرد تعيين Model ID، ستظهر بيانات وصفية حول الجهاز في تفاصيل الجهاز.

3. تنفيذ هجوم

لتنفيذ هجوم، انقر على زر "Attack" في جزء تفاصيل الجهاز.
هناك ثلاثة هجمات مطبّقة: فرض مسند حالة الاقتران، وإعادة استخدام nonce، وهجوم المنحنى غير الصالح.
إذا كنت متصلاً بالفعل بجهاز، فإن تحديد خانة "Reconnect" سيفصل الجهاز ويعيد الاتصال به قبل تنفيذ الهجوم.

يوفر فحص فرض مسند حالة الاقتران بعض خيارات التهيئة الإضافية:

  • Switch back: يحاول العودة إلى المضيف الأصلي باستخدام وظيفة Audio Switch، إذا كانت مدعومة.
  • Bond: ينفذ اقتران BR/EDR إذا لم يتم فرض مسند حالة الاقتران.
  • Write account key: يكتب مفتاح حساب (مثبت في الكود) بعد إجراء الاقتران.

أثناء تنفيذ الهجوم، ستظهر السجلات في الوقت الفعلي في واجهة المستخدم.
بعد اكتمال الهجوم، سيتم عرض مدته.

إدارة المهام

في بعض الأحيان، قد يستغرق الهجوم أو الاقتران وقتاً أطول من المتوقع.
يمكنك إلغاء هجوم أو اقتران بالنقر على زر "Cancel" في مربع الحوار المقابل.
إذا قمت بإعادة تحميل واجهة المستخدم أثناء هجوم أو اقتران، يمكنك استخدام مدير المهام للإلغاء بدلاً من ذلك.

في الجانب العلوي الأيمن من الشاشة، سيعرض الزر الثاني من اليمين حالة المهام.
إذا لم تكن هناك مهام نشطة، فسيظهر "No active tasks".
وبخلاف ذلك، سيعرض "Task in progress".
لإلغاء مهمة، انقر على زر "Task in progress"، ثم اضغط على زر "Cancel".

إذا علّق الخادم بسبب مهمة معلّقة لا يمكن إلغاؤها، جرّب إعادة تعيين محول Bluetooth.

[!NOTE] قد يستغرق إلغاء المهام حتى 20 ثانية.

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

في بعض الحالات، قد يعلق محول Bluetooth في "حالة سيئة".
أسهل حل لهذه المشكلة هو إعادة تعيين محول Bluetooth.
لإجراء إعادة التعيين، افتح قائمة استكشاف الأخطاء وإصلاحها بالضغط على أيقونة مفتاح الربط في الجانب العلوي الأيمن من الشاشة.
ثم حدد "Reset BLE adapter" وأكد إعادة التعيين بالنقر على "Reset" في مربع الحوار.

إذا حدث خطأ فادح واضطر الخادم إلى الإغلاق، فسيقوم السكربت start.sh تلقائياً بإعادة تشغيل الخادم.

في السيناريوهات التي يوجد فيها الكثير من أجهزة BLE القريبة، قد يغلق الخادم بشكل غير متوقع بسبب خطأ في D-Bus.
يحدث هذا نادراً جداً، ويجب أن يقوم السكربت ./start.sh تلقائياً بإعادة تشغيل الخادم إذا حدث ذلك.

النتائج والأجهزة التي تم تقييمها

إذا كنت تبحث عن أجهزة متوافقة مع Fast Pair، يمكنك استخدام قائمة معرّفات الطراز لعرض جميع الأجهزة المعتمدة من Fast Pair.

شكر وتقدير

تم دعم هذا العمل من قبل الحكومة الفلمنكية من خلال برنامج أبحاث الأمن السيبراني بمنحة رقم VOEWICS02.

تنزيل الأداة
الشركة المصنعةاسم الجهازModel IDعرضة للاختطافالوقت حتى الاختطاف (ثانية)عرضة لإعادة استخدام nonceعرضة لهجوم المنحنى غير الصالح
AppleBeats Solo Buds6980580لانعملا
GooglePixel Buds Pro 212934265نعم6.89لالا
JabraElite 8 Active3778746نعم32.01لالا
JBLTune Beam3293323نعم6.91فقط في نفس الجلسةلا
MarshallMOTIF II A.N.C.15473012نعم9.49نعملا
NothingEar (a)8625818نعم38.80فقط في نفس الجلسةلا
OnePlusNord Buds Pro 313394952نعم10.19فقط في نفس الجلسةلا
HPPoly VFree 6015984097لالالا
RedmiBuds 5 Pro11155060نعم8.32فقط في نفس الجلسةلا
SoundcoreLiberty 4 NC5409858نعم15.27نعملا
SonyWF-1000XM512499626نعم9.43نعملا
Audio-TechnicaATH-M20xBT13285048لافقط في نفس الجلسةلا
BoseQuietComfort Ultra5723549لالالا
JBLLive 775 NC14502233نعم7.62فقط في نفس الجلسةلا
MarshallMajor V12915160نعم11.70فقط في نفس الجلسةلا
SonosAce V7340495لالالا
SonyWH-1000XM413386638نعم9.69نعملا
SonyWH-1000XM513911719نعم12.38نعملا
SonyWH-1000XM66360443نعم12.94فقط في نفس الجلسةلا
SonyWH-CH720N16003068نعم7.46نعملا
Bang & OlufsenBeosound A12431472لالالا
JabraSpeak2 55 UC9888885لالالا
JBLClip 51917389نعم36.19نعملا
JBLFlip 67278954لالالا
LogitechWonderboom 411575855نعم11.96فقط في نفس الجلسةلا