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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
أدوات/GitHubGitHub/e-ago/bitcracker
كسر كلمات المرورأدوات التشفير/فك التشفيرالتشفير
GitHube-ago/bitcracker

bitcracker

BitCracker هي أول أداة مفتوحة المصدر لتكسير كلمات المرور لوحدات الذاكرة المشفرة باستخدام BitLocker.

عرض المستودع
965207منذ 4 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

BitCracker

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، الحد الأدنى من المتطلبات هو:

  • وحدة معالجة رسومية NVIDIA GPU مع CC 3.5 أو أحدث
  • CUDA 7.5 أو أحدث

لتشغيل 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 الصحيح. كمرجع، يمكنك استخدام الجدول التالي:

تحضير الهجوم

تحتاج إلى إنشاء صورة لجهاز التخزين المشفر باستخدام BitLocker باستخدام أمر dd مثلاً:

root@kitploit:~
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
  • التحقق مما إذا كان جهاز التخزين الأصلي قد تم تشفيره بكلمة مرور مستخدم أو كلمة مرور استرداد
  • استخراج التجزئة التي تصف الصورة

إذا اكتمل التنفيذ بشكل صحيح، ينتج bitcracker_hash ملفًا أو ملفين:

  • hash_user_pass.txt: إذا تم تشفير الجهاز بكلمة مرور مستخدم، يحتوي هذا الملف على التجزئة التي تحتاجها لبدء وضع هجوم كلمة مرور المستخدم.
  • hash_recv_pass.txt: التجزئة التي تحتاجها لبدء وضع هجوم كلمة مرور الاسترداد

يمكن أن تحتوي وحدات التخزين المشفرة بـ BDE على تنسيقات مختلفة لطرق المصادقة المختلفة. إذا لم يتمكن bitcracker_hash من العثور على كلمة مرور الاسترداد على صورتك المشفرة، يرجى فتح مشكلة أو الاتصال بي

مثال:

root@kitploit:~
/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"

هجوم كلمة مرور المستخدم

يمكنك استخدام هذا النوع من الهجوم إذا تم تشفير جهاز التخزين بكلمة مرور مقدم من المستخدم كما هو موضح في الصورة التالية. alt text يقوم 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.

مثال للإخراج:

root@kitploit:~
====================================
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. باستخدام هذه الأداة، يمكنك إنشاء مجموعة من قوائم كلمات مرور الاسترداد التي يمكنك استخدامها لهجماتك. كمثال:

./build/bitcracker_rpgen -n 300 -p 10000000 -s 000000-000011-000022-000033-000044-000055-008459-015180

يؤدي هذا إلى توليد:

  • -n: عدد قوائم الكلمات
  • -p: عدد كلمات مرور الاسترداد لكل قائمة كلمات
  • -s: توليد كلمات مرور الاسترداد بدءًا من هذه الكلمة

يمكنك استخدام التكوين الافتراضي عن طريق التشغيل بدون خيارات:

root@kitploit:~
./build/bitcracker_rpgen

************* BitCracker Recovery Password wordlists generator *************

Running with this configuration:
### Create 100 wordlists
### Recovery Passwords per wordlist=5000000
### Allow duplicates=No
### Generate starting from=000000-000011-000022-000033-000044-000055-000066-000077

Creating wordlist "bitcracker_wlrp_0.txt" with 5000000 passwords
First password=000000-000011-000022-000033-000044-000055-000066-000077
Last password= 000000-000011-000022-000033-000044-000055-000902-217822
...

لاحظ أنه يمكن استخدام الخيار -s لاستئناف التوليد من آخر كلمة مرور استرداد قمت بإنشائها (بدلاً من إعادة التشغيل في كل مرة من البداية). الخيار -d يتيح إمكانية وجود تكرارات في نفس كلمة مرور الاسترداد. على سبيل المثال: 000000-000011-000055-000055-000044-000055-000902-217822

لكل الخيارات المتاحة، اكتب ./build/bitcracker_rpgen -h.

ملاحظة: يرجى ملاحظة أن عدد كلمات مرور الاسترداد الممكنة ضخم:
كلمة مرور الاسترداد = 65536 × 65536 × 65536 × 65536 × 65536 × 65536 × 65536 × 65536
وفقًا لبحثنا، توزيع كلمات المرور موحد ولا توجد طريقة للعثور على أرقام "أكثر احتمالاً". حتى الآن، لم نجد قاعدة لتقليل عدد المرشحين المحتملين. هذا يعني أن هجوم كلمة مرور الاسترداد قد يستمر إلى الأبد (هجوم كلمة مرور المستخدم هو دائمًا المفضل). سنقوم قريبًا بتعديل أداة bitcracker_rpgen لتوليد كلمة مرور الاسترداد بطريقة عشوائية بدلاً من التسلسل المرتب.

مثال لسطر الأوامر:

./build/bitcracker_cuda -f hash_recv_pass.txt -d bitcracker_wlrp_0.txt -t 1 -b 1 -g 0 -r

حيث الخيارات هي نفسها في حالة كلمة مرور المستخدم ولكن بدلاً من -u تحتاج إلى تحديد -r. مثال للإخراج:

root@kitploit:~
====================================
Selected device: GPU Tesla K80 (ID: 0)
====================================

...
Reading hash file "hash_recv_pass.txt"
$bitlocker$2$16$432dd19f37dd413a88552225628c8ae5$1048576$12$a0da3fc75f6cd30106000000$60$3e57c68216ef3d2b8139fdb0ec74254bdf453e688401e89b41cae7c250739a8b36edd4fe86a597b5823cf3e0f41c98f623b528960a4bee00c42131ef


====================================
Attack
====================================

Type of attack: Recovery Password
CUDA Threads: 1024
CUDA Blocks: 1
Psw per thread: 8
Max Psw per kernel: 8192
Dictionary: wordlist.txt
Strict Check (-s): No
MAC Comparison (-m): No

CUDA Kernel execution:
	Effective passwords: 6014
	Passwords Range:
		390775-218680-136708-700645-433191-416240-153241-612216
		.....
		090134-625383-540826-613283-563497-710369-160182-661364
	Time: 193.358937 sec
	Passwords x second:    31.10 pw/sec


================================================
CUDA attack completed
Passwords evaluated: 6014
Password found: 111683-110022-683298-209352-468105-648483-571252-334455
================================================

النتائج الخاطئة

بشكل افتراضي، يقوم BitCracker بهجوم سريع (لكل من وضعي كلمة مرور المستخدم والاسترداد) قد يعيد بعض النتائج الخاطئة. في هذه الحالة يمكنك إعادة تشغيل هجومك باستخدام الخيار -m الذي يتيح التحقق من MAC (حل أبطأ).

أمثلة

لاختبار BitCracker على نظامك قبل بدء الهجوم الفعلي، قدمنا عدة صور لأجهزة تخزين مشفرة.

  • imgWin7: BitLocker على نظام Windows 7 Enterprise
  • imgWin8: BitLocker على نظام Windows 8 Enterprise
  • imgWin10Compat.vhd: BitLocker (الوضع المتوافق) على نظام Windows 10 Pro
  • imgWin10NotCompat.vhd: BitLocker (الوضع غير المتوافق) على نظام Windows 10 Pro
  • imgWin10NotCompatLongPsw.vhd : BitLocker (الوضع غير المتوافق) على نظام Windows 10 Pro مع كلمة مرور مستخدم أطول

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

الأداء

نقدم هنا أفضل أداءات BitCracker في حالة الهجوم السريع (الافتراضي) على كلمة مرور المستخدم (الخيار -u).

الأداء:

ملاحظة: تتطلب كل كلمة مرور حوالي 2.097.152 SHA-256

John The Ripper

أصدرنا BitCracker كتنسيق OpenCL-BitLocker في John The Ripper (--format=bitlocker-opencl). ملفات التجزئة الناتجة عن bitcracker_hash (انظر قسم كيفية الاستخدام) متوافقة تمامًا مع تنسيق John.
على GTV100، معدل كلمات المرور حوالي 3150p/s. قام فريق JtR بتطوير إصدار CPU لهذا الهجوم (--format=bitlocker); على معالج Intel(R) Xeon(R) v4 2.20GHz، يكون معدل كلمات المرور حوالي 78p/s.

Hashcat

هذا قيد التطوير...

سجل التغييرات

نوفمبر 2021: تم تحديث الكود للعمل على NVIDIA GPU Ampere باستخدام CUDA 11.x

ما هو قادم

  • توفير تطبيق متعدد GPU
  • توفير واجهة Qt

المراجع والتقديرات والاتصال

يرجى المشاركة واختبار مشروعنا: نحتاج إلى ملاحظاتك!

شكر خاص لفريق John The Ripper، ومشروعي Dislocker وLibBDE.

هذا مشروع بحثي بالتعاون مع المجلس الوطني للبحوث في إيطاليا صدر تحت ترخيص GPLv2.
حقوق النشر (C) 2013-2021 إيلينا أغو (elena dot ago at gmail dot com) وماسيمو بيرناسكي (massimo dot bernaschi at gmail dot com)
سنقدم بعض المعلومات الإضافية حول هجوم BitCracker في ورقة بحثية مستقبلية.

على الرغم من أننا نستخدم ترخيص GPLv2، إلا أننا منفتحون للتعاون. لأي معلومات إضافية أو تعاون أو تقرير عن خطأ، يرجى الاتصال بنا أو فتح مشكلة.

تنزيل الأداة
بنية GPUإصدار CUDA المقترحMakefile
KeplerCUDA 7.5arch=compute_35,code=sm_35
MaxwellCUDA 8.0arch=compute_52,code=sm_52
PascalCUDA 9.0arch=compute_60,code=sm_60
VoltaCUDA 9.0arch=compute_70,code=sm_70
اختصار GPUGPUالهندسةCC# SMالترددCUDA
GFTGeForce TitanKepler3.5148357.0
GTK80Tesla K80Kepler3.5138757.5
GFTXGeForce Titan XMaxwell5.22410017.5
GTP100Tesla P100Pascal6.15613288.0
GTV100Tesla V100Volta7.08012909.0
AMDMRadeon Malta-----
الإصدارGPU-t-bعدد كلمات المرور لكل نواةكلمة مرور/ثانيةتجزئة/ثانية
CUDAGFT813106.496303635 MH/s
CUDAGTK80814114.688370775 MH/s
CUDAGFTX824106.6089331.957 MH/s
CUDAGTP10015657.3441.4182.973 MH/s
CUDAGTV10018081.9203.2526.820 MH/s
OpenCLAMDM3264524.288241505 MH/s
OpenCLGFTX824196.6088841.853 MH/s