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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
btlejack — سكين الجيش السويسري لتقنية بلوتوث منخفض الطاقة | Kitploit
أدوات/GitHubGitHub/virtualabs/btlejack
أمن البلوتوثالاستغلالأمن الشبكات اللاسلكيةاختبار الاختراق
GitHubvirtualabs/btlejack

btlejack

سكين الجيش السويسري لتقنية بلوتوث منخفض الطاقة

عرض المستودع
2.1k209منذ 2 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

BtleJack: سكين سويسري جديد للبلوتوث منخفض الطاقة

#####################################################

يوفر Btlejack كل ما تحتاجه لشمّ وإعاقة واختطاف أجهزة البلوتوث منخفض الطاقة. يعتمد على جهاز واحد أو أكثر من أجهزة BBC Micro:Bit <http://microbit.org/>_ التي تعمل ببرنامج ثابت مخصص. قد ترغب أيضًا في استخدام أداة شم Bluetooth LE من Adafruit <https://www.adafruit.com/product/2269>_ أو مجموعة تقييم nRF51822 <https://www.waveshare.com/wiki/BLE400>_، حيث أضفنا دعمًا لهذه الأجهزة.

الإصدار الحالي من هذه الأداة (2.0) يدعم BLE 4.x و 5.x. دعم BLE 5.x محدود، حيث يدعم فقط الطور المادي غير المشفر بمعدل 1 ميجابت في الثانية ولا يدعم تحديثات خريطة القناة.

المتطلبات

تحتاج إلى نظام قائم على UNIX (مثل Raspberry Pi). إذا كنت تستخدم BBC Micro:Bit، فستحتاج إلى جهاز إلى ثلاثة أجهزة Micro:Bit (يوصى بثلاثة أجهزة) ولكل جهاز منفذ USB واحد مجاني. استهلاك الطاقة لجهاز Micro:Bit منخفض نسبيًا، لذا يمكنك استخدام منفذ USB واحد وموزع سلبي لتشغيل الوحدات الثلاث الموصى بها.

إذا قمت بتوصيل 3 أجهزة microbits في نفس الوقت على جهاز الكمبيوتر الخاص بك، فسيكون Btlejack قادرًا على الشم على كل قنوات الإعلان وستكون لديه فرصة أكبر لالتقاط طلب الاتصال.

كيفية التثبيت

أولاً، قم بتثبيت برنامج العميل btlejack الخاص بـ Python3 باستخدام Pip:

::

$ sudo pip3 install btlejack

ثم، قم بتوصيل جهاز Micro:Bit الخاص بك بجهاز الكمبيوتر باستخدام كابل USB، وقم بتركيب جهاز التخزين الشامل المرتبط (يجب أن يحتوي نقطة التثبيت على MICROBIT)، وأصدر الأمر التالي:

::

$ btlejack -i

سيؤدي هذا إلى برمجة كل جهاز Micro:Bit متصل بجهاز الكمبيوتر الخاص بك، وجعلها جاهزة للاستخدام مع Btlejack. سيستخدم إصدار البرنامج الثابت الصحيح لبرنامج العميل الحالي، لذا يُنصح بشدة بتنفيذ إجراء تثبيت البرنامج الثابت هذا في كل مرة تقوم فيها بتحديث Btlejack.

إذا كنت تستخدم Bluefruit LE sniffer أو nRF51822 Eval Kit، فيرجى استخدام مبرمج SWD خارجي لوميض جهازك بهذا البرنامج الثابت <https://github.com/virtualabs/btlejack-firmware/raw/master/dist/btlejack-firmware-ble400.hex>_.

أبقِ أجهزتك متصلة وستكون جاهزًا!

ملاحظة هذا يعمل فقط مع الأنظمة المتوافقة مع Posix.

كيفية استخدام Btlejack

استخدام Btlejack سهل للغاية. يمكن لـ Btlejack القيام بما يلي:

  • استخدام أجهزة مختلفة
  • شم اتصال BLE موجود
  • شم اتصالات BLE جديدة
  • إعاقة اتصال BLE موجود
  • اختطاف اتصال BLE موجود
  • تصدير الحزم الملتقطة إلى تنسيقات PCAP مختلفة

تحديد الأجهزة المراد استخدامها

يحاول Btlejack عادةً اكتشاف واستخدام الأجهزة المتوافقة المتصلة تلقائيًا (Micro:Bit فقط في الوقت الحالي)، ولكن نظرًا لأنه يمكن اختراق البرنامج الثابت أو تعديله للعمل مع لوحات أخرى قائمة على nRF51822، فإنه يوفر خيارات محددة للسماح بالتوافق مع هذه الأجهزة.

يسمح لك الخيار -d بتحديد جهاز واحد أو أكثر مع Btlejack. لاحظ أن هذا الخيار سيعطل الكشف التلقائي عن الأجهزة، ويجب عليك إضافة أكبر عدد من الأجهزة حسب حاجتك:

::

$ btlejack -d /dev/ttyACM0 -d /dev/ttyACM2 -s

شم اتصال موجود

أولاً، ابحث عن اتصال موجود لاستهدافه باستخدام btlejack:

::

$ btlejack -s BtleJack version 1.1

[i] Enumerating existing connections ... [ - 54 dBm] 0xcd91d517 | pkts: 1 [ - 46 dBm] 0xcd91d517 | pkts: 2

القيمة الأولى (بوحدة dBm) تظهر قوة الإشارة، كلما كانت هذه القيمة أكبر كلما كان الاتصال المُشم أفضل.

القيمة الثانية (سداسي عشري) هي عنوان الوصول المرتبط، وهي قيمة 32 بت تحدد رابطًا بين جهازين متوافقين مع البلوتوث منخفض الطاقة.

القيمة الأخيرة هي عدد الحزم التي شوهدت بهذا عنوان الوصول. كلما كانت هذه القيمة أعلى، زادت احتمالية استخدام عنوان الوصول المقابل.

ثم استخدم الخيار -f لمتابعة اتصال معين:

::

$ btlejack -f 0xdda4845e BtleJack version 1.1

[i] Detected sniffers:

Sniffer #0: fw version 1.1

[i] Synchronizing with connection 0xdda4845e ... ✓ CRCInit: 0x2a035e ✓ Channel Map = 0x1fffffffff ✓ Hop interval = 39 ✓ Hop increment = 15 [i] Synchronized, packet capture in progress ... LL Data: 02 07 03 00 04 00 0a 03 00 LL Data: 0a 08 04 00 04 00 0b 5a 69 70 LL Data: 02 07 03 00 04 00 0a 03 00 LL Data: 0a 08 04 00 04 00 0b 5a 69 70

إذا كنت تستخدم أكثر من microbit واحد، فسيعمل Btlejack على توازي بعض عمليات الشم من أجل تسريع استرداد معلمات الاتصال!

شم اتصالات جديدة

الخيار -c الذي يدعمه btlejack يسمح لك بتحديد عنوان BD الهدف، أو قد ترغب في استخدام any لالتقاط أي اتصال جديد يتم إنشاؤه.

::

$ btlejack -c any BtleJack version 1.1

[i] Detected sniffers:

Sniffer #0: version 1.1 Sniffer #1: version 1.1 LL Data: 05 22 df b4 6f 95 c5 55 c0 0a f6 99 23 40 1d 7b 2f 0a 9a f4 93 01 12 00 27 00 00 00 d0 07 ff ff ff ff 1f 0b [i] Got CONNECT_REQ packet from 55:c5:95:6f:b4:df to 40:23:99:f6:0a:c0 |-- Access Address: 0x0a2f7b1d |-- CRC Init value: 0x93f49a |-- Hop interval: 39 |-- Hop increment: 11 |-- Channel Map: 1fffffffff |-- Timeout: 20000 ms

LL Data: 03 09 08 0f 00 00 00 00 00 00 00 LL Data: 03 09 08 0f 00 00 00 00 00 00 00 LL Data: 0b 06 0c 08 0f 00 09 41 LL Data: 03 06 0c 07 1d 00 d3 07

أو قد ترغب أيضًا في تحديد عنوان BD الهدف:

::

$ btlejack -c 03:e1:f0:00:11:22

إعاقة اتصال

بمجرد تحديد اتصال بواسطة عنوان الوصول الخاص به، يمكنك إعاقته باستخدام الخيار -j:

::

$ btlejack -f 0x129f3244 -j̀

اختطاف اتصال BLE

يمكن لـ Btlejack أيضًا اختطاف اتصال موجود، استخدم الخيار -t للقيام بذلك. بمجرد الاختطاف، سيعطيك Btlejack موجهًا يسمح لك بالتفاعل مع الجهاز المختطف.

أولاً، اختطف اتصالًا موجودًا:

::

$ btlejack -f 0x9c68fd30 -t -m 0x1fffffffff BtleJack version 1.1

[i] Using cached parameters (created on 2018-08-11 01:48:24) [i] Detected sniffers:

Sniffer #0: fw version 1.1

[i] Synchronizing with connection 0x9c68fd30 ... ✓ CRCInit: 0x81f733 ✓ Channel map is provided: 0x1fffffffff ✓ Hop interval = 39 ✓ Hop increment = 9 [i] Synchronized, hijacking in progress ... [i] Connection successfully hijacked, it is all yours \o/ btlejack>

ثم استخدم الأوامر التالية للتفاعل مع الجهاز:

  • discover: يقوم بتعداد الخدمات والخصائص، سيعطيك جميع المعلومات حول الخدمات والخصائص
  • write: كتابة البيانات إلى معرف قيمة محدد
  • read: قراءة البيانات من معرف قيمة محدد
  • ll: إرسال حزمة طبقة ربط خام (للنينجا)

أمر discover ^^^^^^^^^^^^^^^^^^

سيقوم أمر discover بإرسال واستقبال حزم Bluetooth LE واسترداد جميع UUIDs ومعلمات الخدمات، بالإضافة إلى UUIDs ومعلمات الخصائص:

::

btlejack> discover start: 0001 end: 0005 start: 0014 end: 001a start: 0028 end: ffff Discovered services: Service UUID: 1801 Characteristic UUID: 2a05 | handle: 0002 | properties: indicate (20) \ value handle: 0003

Service UUID: 1800 Characteristic UUID: 2a04 | handle: 0019 | properties: read (02) \ value handle: 001a

Characteristic UUID: 2a00 | handle: 0015 | properties: read (02) \ value handle: 0016

Characteristic UUID: 2a01 | handle: 0017 | properties: read (02) \ value handle: 0018

Service UUID: 1824 Characteristic UUID: 2abc | handle: 0029 | properties: write indicate (28) \ value handle: 002a

أمر read ^^^^^^^^^^^^^^

يقبل أمر read معلمة واحدة، وهي معرف القيمة المقابل للخاصية التي تريد القراءة منها:

::

btlejack> read 0x16 read>> 4c 47 20 77 65 62 4f 53 20 54 56

أمر write ^^^^^^^^^^^^^^^

يقبل أمر write ثلاث معاملات:

::

btlejack> write

تنسيقات البيانات المدعومة:

  • hex: بيانات سداسية عشرية (مثل "414261")
  • str: سلسلة نصية، قد تكون محاطة بعلامات اقتباس مزدوجة

أمر ll ^^^^^^^^^^^^

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

تصدير ملف PCAP

إحدى الميزات المثيرة للاهتمام في Btlejack هي إمكانية تصدير البيانات الملتقطة إلى ملف PCAP.

يدعم Btlejack تنسيقات DLT التالية:

  • DLT_BLUETOOTH_LE_LL_WITH_PHDR (نفس الشيء)
  • DLT_NORDIC_BLE (المستخدم بواسطة أداة شم Nordic)
  • DLT_BLUETOOTH_LE_LL (مدعوم في أحدث إصدارات Wireshark)

يمكن تحديد ملف الإخراج باستخدام الخيار -o، بينما يمكن تحديد تنسيق الإخراج باستخدام الخيار -x. قيم التنسيق الصالحة هي: ll_phdr، nordic، أو pcap (افتراضي).

::

$ btlejack -f 0xac56bc12 -x nordic -o capture.nordic.pcap

نوع التصدير ll_phdr مفيد عند شم اتصال مشفر، حيث أنه مدعوم أيضًا بواسطة crackle <https://github.com/mikeryan/crackle>_. لذا إذا كنت ترغب في شم وكسر الاتصالات المشفرة، فهذه هي الطريقة المثلى.

قد تحتاج أيضًا إلى إخبار crackle باستخدام استراتيجية كسر محددة، باستخدام الخيار -s:

::

$ crackle -i some.pcap -s 1

ذاكرة التخزين المؤقت للاتصالات

يستخدم Btlejack ذاكرة تخزين مؤقت للاتصالات لتخزين بعض القيم المتعلقة بالاتصال من أجل تسريع الأمور قليلاً. قد تسبب ذاكرة التخزين المؤقت هذه بعض المشاكل، خاصة إذا تم رؤية عنوان وصول من قبل.

يمكن مسح هذه الذاكرة المؤقتة باستخدام الخيار -z:

::

$ btlejack -z

تفريغ الحزم الحية مع Wireshark

يقدم Btlejack 2.0 خيارًا جديدًا -w يسمح لك بتحديد مسار FIFO (موجود أو لا) لإجراء تحليل حي للحزم:

::

$ btlejack -c any -w /tmp/blepipe

يمكنك حتى استخدام FIFO وملف إخراج في نفس الوقت:

::

$ btlejack -c any -w /tmp/blepipe -o blepackets.pcap

تلميح لاستخدام btlejack على Raspberry Pi

إذا كنت قد قمت سابقًا بتمكين شبكة إيثرنت افتراضية عبر USB (RNDIS)، على سبيل المثال لإعداد Raspberry Pi Zero W عبر USB، فستحتاج إلى تعطيل ذلك مرة أخرى (أي إزالة dtoverlay=dwc2 من boot/config.txt و modules-load=dwc2,g_ether من boot/cmdline.txt، ثم sudo reboot)، لأن هذا سيتداخل مع اتصالات USB الخاصة بأجهزة الشم.

دعم Bluetooth LE 5 & 5.1

يدعم هذا الإصدار إصدارات البلوتوث منخفض الطاقة 5 و 5.1 وخاصة خوارزمية اختيار القناة الجديدة المقدمة في الإصدار 5 (CSA #2). ومع ذلك، نظرًا لأن الأجهزة المستخدمة لا تدعم الطورين الماديين الجديدين المضافين من الإصدار 5، فإنها ستكون قادرة فقط على شم وإعاقة وربما اختطاف الاتصالات باستخدام الطور المادي غير المشفر بمعدل 1 ميجابت في الثانية.

يرجى أيضًا ملاحظة أن التنفيذ الحالي لـ CSA #2 المضمن في Btlejack لا يدعم تحديثات خريطة القناة، في الوقت الحالي.

شم اتصال BLE 5 جديد

يكتشف Btlejack تلقائيًا خوارزمية اختيار القناة المستخدمة، لذا لا داعي للقلق فقط قم بالتقاط الحزم كالمعتاد.

شم اتصال BLE 5 موجود

شم اتصال BLE 5 موجود (الذي يستخدم الطور المادي غير المشفر بمعدل 1 ميجابت في الثانية، وهذا الطور فقط) ليس صعبًا جدًا. أولاً، يجب عليك تحديد أنك تريد استهداف اتصال BLE 5، باستخدام الخيار -5. يرجى ملاحظة أنه لا توجد طريقة لمعرفة ما إذا كان الاتصال الموجود يستخدم CSA #2 أو CSA #1، لذا عليك تجربة كلتا التقنيتين حتى تعمل إحداهما.

::

$ btlejack -f 0x11223344 -5

سيقوم Btlejack بعد ذلك باستعادة خريطة القناة المستخدمة ثم قيمة الفاصل الزمني للقفز:

::

$ btlejack -f 0x11223344 -5 [i] Synchronizing with connection 0x11223344 ... ✓ CRCInit: 0x40d64f ✓ Channel Map = 0x1fffffffff ✓ Hop interval = 160

سيحاول بعد ذلك استعادة قيمة عداد PRNG الخاص بهذا الاتصال:

::

$ btlejack -f 0x11223344 -5 [i] Synchronizing with connection 0x11223344 ... ✓ CRCInit: 0x40d64f ✓ Channel Map = 0x1fffffffff ✓ Hop interval = 160 ✓ CSA2 PRNG counter = 5137 [i] Synchronized, packet capture in progress ...

بمجرد الانتهاء، يتم مزامنة Btlejack مع هذا الاتصال وسيقوم بمعالجة الحزم كالمعتاد.

إعاقة اتصال BLE 5 موجود

لا جديد هنا، باستثناء أنه يجب عليك تحديد أنك تهاجم اتصال BLE 5، باستخدام الخيار -5.

يرجى ملاحظة أنه يمكنك تحسين هذا الهجوم عن طريق تحديد خريطة القناة وقيمة الفاصل الزمني للقفز المراد استخدامها، باستخدام العلامتين -m و -p على التوالي. يجب توفيرهما معًا، وإلا فلن يعمل.

اختطاف اتصال BLE 5 موجود

لم أتمكن من اختطاف اتصال BLE 5 في هذا الوقت، لأن هذا الهجوم حساس للوقت. أجهزة BLE 5 الخاصة بي تستخدم زمن انتقال 0، مما لا يسمح بأي تأخير ويتسبب في فشل هذا الهجوم.

عندما أحصل على بعض أجهزة BLE 5 الأصلية، سأقوم بتحسين ذلك.

تنزيل الأداة