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

 

قام رئيس اختبار الاختراق لدينا بتنفيذ هذا النوع من الهجمات عن طريق تطوير كود لـ Proxmark3. إن هذا الكود، الذي يتوافق مع وضع Standalone المسمى 'Prox2Brute'، سنقوم بفحصه في هذا المقال.


في البداية، يتم استدعاء الوظيفة 'StandAloneMode()' لتحويل Proxmark3 إلى وضع 'standalone' لتمكين استخدامه بدون الحاجة إلى العميل على الحاسوب. ثم يتم تهيئة FPGA لـ Proxmark3 لتنفيذ عمليات الراديو على تردد منخفض، من خلال استدعاء وظيفة 'FpgaDownloadAndGo(FPGA_BITSTREAM_LF)'.


ثم، بين السطور 74 و 101، يقوم الكود بتنفيذ منطق القوة الغاشمة عند التكرار على القيم من CARDNUM_START (الافتراضي: 0x0000) إلى CARDNUM_END (الافتراضي: 0xFFFF).

 

فعل القوة الغاشمة

 

في كل تكرار، تقوم الحلقة باستدعاء الماكرو 'WDT_HIT()' التي تقوم بتحديث المؤقت (watchdog timer)، ثم يقوم الكود بتوليد رسالة الرد التي يجب إرسالها إلى القارئ على النحو التالي:

الرسالة المراد إرسالها

 
حيث يُعتبر High هو 32 بت الأكثر وزنًا في الرسالة وله قيمة ثابتة وفقًا للمعايير (0x20). ويتم بناء Low على النحو التالي:
 

بناء 'low' (32 بت الأقل وزنًا في الرسالة)

 

ُرتبط 'Cardnum' برقم البطاقة الذي نبحث عنه، والذي يتغير بالتالي في كل تكرار. 'Facility code' هو رمز المبنى، الذي، وفقًا لتجربتنا، يُعتبر عادةً ثابتًا عند القيمة 2.

ثم يتم إعادة إرسال هذه الرسالة إلى القارئ باستخدام الوظيفة 'CmdHIDsimTAGEx()'، وهذه الوظيفة تُجيب على طلب القارئ عن طريق محاكاة سلوك بطاقة الوصول 'HID ProxII' باستخدام البيانات المقدمة.

لبدء الهجوم، بمجرد تمرير Proxmark3 بصورة تحتوي على وضع standalone 'Prox2Brute' المفعل، يجب الضغط على زر Proxmark3 لبعض الوقت لبدء وضع standalone، ثم بعد تحميل هذا الوضع (عندما تتوقف LEDs عن الومض)، يجب الضغط مرة واحدة (لمدة 200 مللي ثانية على الأقل) لبدء 'brute force'. يُمكن إنهاء الهجوم في أي وقت عن طريق تقديم أوامر عبر USB (انظر السطور 59 و 77) أو عن طريق الاستمرار في الضغط على الزر لأكثر من ثانية واحدة (انظر السطر 80).

يستخدم الكود LEDs في Proxmark3 لتوفير إشارة بصرية حول تقدم الهجوم (السطور 93-100).
من المهم أن نلاحظ أن استخدام هذا النوع من الشيفرة، دون الحصول على إذن صريح من مالك نظام الوصول، غير قانوني بالطبع. وبالتالي، يجب استخدامه فقط في بيئة اختبار أو ضمن إطار تدقيق أمن.

باختصار، هجوم البروت فورس على بطاقات 'HID ProxII' هو وسيلة للمساس بأمن أنظمة الوصول المعتمدة على هذه البطاقات. يكون ذلك ممكنًا بفضل ضعف أنظمة الوصول المعتمدة على بطاقات 'HID ProxII'، التي لا تتوفر فيها آلية حماية فعّالة. وبالفعل، عدد القيم الممكنة هو 65535، لذلك لن يكون اختيار أرقام عشوائية لأرقام البطاقات كافيًا. لذا يجب تقييد عدد قراءات القارئ أيضًا للوصول إلى منطقة محمية لتقليل خطر نجاح هجوم بروت فورس.
 
مشاركة هذا المقال