
BitCracker هي أول أداة مفتوحة المصدر لتكسير كلمات المرور لوحدات الذاكرة المشفرة باستخدام BitLocker.
BitCracker هي أول أداة مفتوحة المصدر لكسر كلمات المرور لأجهزة التخزين (القرص الصلب، USB، بطاقة SD، إلخ...) المشفرة باستخدام BitLocker، وهي ميزة تشفير متوفرة في Windows Vista و7 و8.1 و10 (إصدارات Ultimate وPro وEnterprise). يقدم BitLocker عددًا من طرق المصادقة المختلفة لتشفير جهاز التخزين مثل وحدة النظام الأساسي الموثوق (TPM) والبطاقة الذكية وكلمة مرور الاسترداد وكلمة مرور المستخدم.
من خلال هجوم القاموس، يحاول BitCracker العثور على كلمة مرور المستخدم الصحيحة أو كلمة مرور الاسترداد لفك تشفير جهاز التخزين المشفر. تم تنفيذه في CUDA وOpenCL.
أخرت عدة مجلات نشر ورقتنا البحثية حول BitCracker (قرابة 3 سنوات، مع رفض نهائي بعد عدة مراجعات) والتي تشرح تفاصيل هجومنا، وتنسيق حجم تشفير BitLocker (BDE) ونقاط الضعف المحتملة في عملية التشفير/فك التشفير. أخيرًا، نشرنا الورقة هنا: https://arxiv.org/abs/1901.01337 . يرجى التعليق والمشاركة بحرية.
لتشغيل BitCracker-CUDA، الحد الأدنى من المتطلبات هو:
لتشغيل BitCracker-OpenCL، الحد الأدنى من المتطلبات هو أي وحدة معالجة رسومية أو معالج يدعم OpenCL (يمكنك العثور على بعض المساعدة هنا.
يتطلب BitCracker ما لا يقل عن 260 ميغابايت من ذاكرة الجهاز.
نوصي بشدة بتشغيل هجومك على وحدة معالجة رسومية بدلاً من المعالج لأسباب تتعلق بالأداء (انظر قسم الأداء).
تشغيل البرنامج النصي build.sh يولد 4 ملفات تنفيذية داخل دليل build: bitcracker_hash وbitcracker_rpgen وbitcracker_cuda وbitcracker_opencl.
من أجل بناء bitcracker_cuda بشكل متوافق مع وحدة معالجة الرسوميات NVIDIA وإصدار CUDA الخاص بك، تحتاج إلى تعديل ملف src_CUDA/Makefile باختيار إصدار SM الصحيح. كمرجع، يمكنك استخدام الجدول التالي:
| بنية GPU | إصدار CUDA المقترح | Makefile |
|---|---|---|
| Kepler | CUDA 7.5 | arch=compute_35,code=sm_35 |
| Maxwell | CUDA 8.0 | arch=compute_52,code=sm_52 |
| Pascal | CUDA 9.0 | arch=compute_60,code=sm_60 |
| Volta | CUDA 9.0 | arch=compute_70,code=sm_70 |
تحتاج إلى إنشاء صورة لجهاز التخزين المشفر باستخدام BitLocker باستخدام أمر dd مثلاً:
sudo dd if=/dev/disk2 of=/path/to/imageEncrypted.img conv=noerror,sync
4030464+0 records in
4030464+0 records out
2063597568 bytes transferred in 292.749849 secs (7049013 bytes/sec)
ثم تحتاج إلى تشغيل الملف التنفيذي bitcracker_hash على imageEncrypted.img الخاص بك من أجل:
إذا اكتمل التنفيذ بشكل صحيح، ينتج bitcracker_hash ملفًا أو ملفين:
يمكن أن تحتوي وحدات التخزين المشفرة بـ BDE على تنسيقات مختلفة لطرق المصادقة المختلفة. إذا لم يتمكن bitcracker_hash من العثور على كلمة مرور الاسترداد على صورتك المشفرة، يرجى فتح مشكلة أو الاتصال بي
مثال:
/build/bitcracker_hash -o test_hash -i ./Images/imgWin7
---------> BitCracker Hash Extractor <---------
Opening file ./Images/imgWin7
....
Signature found at 0x02208000
Version: 2 (Windows 7 or later)
VMK entry found at 0x022080bc
VMK encrypted with user password found!
VMK encrypted with AES-CCM
VMK entry found at 0x0220819c
VMK encrypted with Recovery key found!
VMK encrypted with AES-CCM
User Password hash:
$bitlocker$0$16$89a5bad722db4a729d3c7b9ee8e76a29$1048576$12$304a4ac192a2cf0103000000$60$24de9a6128e8f8ffb97ac72d21de40f63dbc44acf101e68ac0f7e52ecb1be4a8ee30ca1e69fbe98400707ba3977d5f09b14e388c885f312edc5c85c2
Recovery Key hash:
$bitlocker$2$16$8b7be4f7802275ffbdad3766c7f7fa4a$1048576$12$304a4ac192a2cf0106000000$60$6e72f6ef6ba688e72211b8cf8cc722affd308882965dc195f85614846f5eb7d9037d4d63bcc1d6e904f0030cf2e3a95b3e1067447b089b7467f86688
Output file for user password attack: "hash_user_pass.txt"
Output file for recovery password attack: "hash_recv_pass.txt"
يمكنك استخدام هذا النوع من الهجوم إذا تم تشفير جهاز التخزين بكلمة مرور مقدم من المستخدم كما هو موضح في الصورة التالية.
يقوم BitCracker بتنفيذ هجوم القاموس، لذا تحتاج إلى توفير قائمة كلمات لكلمات مرور المستخدم المحتملة.
لبدء الهجوم تحتاج إلى:
hash_user_pass.txtمثال لسطر الأوامر:
./build/bitcracker_cuda -f hash_user_pass.txt -d wordlist.txt -t 1 -b 1 -g 0 -u
حيث:
-f: المسار إلى ملف hash_user_pass.txt-d: المسار إلى قائمة الكلمات الخاصة بك-t: عدد كلمات المرور التي يعالجها كل خيط CUDA-b: عدد كتل CUDA-g: معرف جهاز NVIDIA GPU-u: يحدد أنك تريد هجوم كلمة مرور مستخدملكل الخيارات المتاحة، اكتب ./build/bitcracker_cuda -h.
للحصول على أفضل أداء، يرجى الرجوع إلى الجدول في قسم الأداء لتعيين الخيارين t و b بشكل صحيح وفقًا لوحدة معالجة الرسوميات NVIDIA الخاصة بك.
يمكن تطبيق نفس الاعتبارات على الملف التنفيذي bitcracker_opencl.
مثال للإخراج:
====================================
Selected device: GPU Tesla K80 (ID: 0)
====================================
....
Reading hash file "hash_user_pass.txt"
$bitlocker$0$16$0a8b9d0655d3900e9f67280adc27b5d7$1048576$12$b0599ad6c6a1cf0103000000$60$c16658f54140b3d90be6de9e03b1fe90033a2c7df7127bcd16cb013cf778c12072142c484c9c291a496fc0ebd8c21c33b595a9c1587acfc6d8bb9663
====================================
Attack
====================================
Type of attack: User Password
CUDA Threads: 1024
CUDA Blocks: 1
Psw per thread: 1
Max Psw per kernel: 1024
Dictionary: wordlist.txt
Strict Check (-s): No
MAC Comparison (-m): No
CUDA Kernel execution:
Stream 0
Effective number psw: 12
Passwords Range:
abcdefshhf
.....
blablalbalbalbla12
Time: 28.651947 sec
Passwords x second: 0.42 pw/sec
================================================
....
Password found: paperino
================================================
حاليًا، BitCracker قادر على معالجة كلمات مرور الإدخال بطول يتراوح بين 8 و55 حرفًا.
أثناء تشفير جهاز تخزين (بغض النظر عن طريقة المصادقة)، يطلب BitLocker من المستخدم تخزين كلمة مرور الاسترداد في مكان ما والتي يمكن استخدامها لاستعادة الوصول إلى جهاز التخزين المشفر في حالة عدم تمكنه من فتح محرك الأقراص بشكل طبيعي. وبالتالي فإن كلمة مرور الاسترداد هي نوع من المفتاح الرئيسي لجميع طرق المصادقة وتتكون من مفتاح مكون من 48 رقمًا مثل هذا:
236808-089419-192665-495704-618299-073414-538373-542366
راجع توثيق Microsoft لمزيد من التفاصيل.
كما هو الحال مع كلمة مرور المستخدم، BitCracker قادر على تنفيذ هجوم القاموس للعثور على كلمة مرور الاسترداد الصحيحة التي تم إنشاؤها بواسطة BitLocker لتشفير جهاز التخزين. يرجى ملاحظة أننا حاليًا قادرون على مهاجمة كلمة مرور الاسترداد فقط إذا لم يتم تشفير جهاز التخزين باستخدام TPM.
لبدء الهجوم تحتاج إلى:
hash_recv_pass.txtتوليد وتخزين جميع كلمات المرور المحتملة هو مشكلة صعبة. لهذا السبب، أنشأنا أداة توليد كلمة مرور الاسترداد المسماة bitcracker_rpgen. باستخدام هذه الأداة، يمكنك إنشاء مجموعة من قوائم كلمات مرور الاسترداد التي يمكنك استخدامها لهجماتك. كمثال: