BitCracker是第一個(gè)開源的用于破解使用BitLocker加密存儲(chǔ)設(shè)備(如硬盤,USB Pendrive,SD卡等)的工具。BitLocker是Windows Vista,7,8.1和10(Ultimate,Pro和Enterprise)上提供的加密功能。BitLocker提供了許多不同的身份驗(yàn)證方法來加密存儲(chǔ)設(shè)備,如可信賴平臺(tái)模塊(TPM),智能卡,恢復(fù)密碼,用戶提供的密碼。通過字典攻擊,BitCracker會(huì)嘗試找出正確的用戶密碼或恢復(fù)密碼,來解密加密的存儲(chǔ)設(shè)備。目前,已在CUDA和OpenCL中實(shí)現(xiàn)。
注:在COMMID 7b2a6b6(CUDA版本)和 5f09d7f(OpenCL版本)中存在固定的嚴(yán)重錯(cuò)誤:bad loop termination(循環(huán)終止錯(cuò)誤)!可嘗試重新運(yùn)行解決。
運(yùn)行環(huán)境
運(yùn)行BitCracker-CUDA的最低要求如下:
CC 3.5或更高版本的 NVIDIA GPU
CUDA 7.5或更新版本
運(yùn)行BitCracker-OpenCL的最低要求是,GPU或CPU支持OpenCL(查看幫助)。
BitCracker至少需要260 MB的設(shè)備內(nèi)存。
出于性能原因,我們強(qiáng)烈建議你在GPU上運(yùn)行(具體請(qǐng)參閱性能部分)。
構(gòu)建
運(yùn)行build.sh腳本后,會(huì)在build目錄中生成4個(gè)可執(zhí)行文件:bitcracker_hash,bitcracker_rpgen,bitcracker_cuda,bitcracker_opencl。
為了構(gòu)建與你的NVIDIA GPU和CUDA版本一致地bitcracker_cuda文件,你需要修改src_CUDA/Makefile,并選擇正確的SM版本。對(duì)應(yīng)可參考下表:
GPU 架構(gòu)
建議的 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
攻擊準(zhǔn)備
創(chuàng)建一個(gè)使用BitLocker加密的存儲(chǔ)設(shè)備映像,使用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)
然后,在imageEncrypted.img上運(yùn)行bitcracker_hash可執(zhí)行文件,以:
檢查映像是否具有有效格式并且可以被BitCracker攻擊
檢查原始存儲(chǔ)設(shè)備哈希是否已使用用戶密碼或恢復(fù)密碼加密
提取映像的哈希描述
如果一切正常,bitcracker_hash將會(huì)生成1到2個(gè)輸出文件:
hash_user_pass.txt:如果設(shè)備使用用戶密碼加密,則此文件包含啟動(dòng)用戶密碼攻擊模式所需的哈希
hash_recv_pass.txt:啟動(dòng)Recovery Password攻擊模式所需的哈希值
注:BDE加密卷可以針對(duì)不同的身份驗(yàn)證方法使用不同的格式。如果bitcracker_hash無法在你的加密映像上找到恢復(fù)密碼,請(qǐng)與我聯(lián)系。
示例:
/build/bitcracker_hash -o test_hash -i ./Images/imgWin7
---------> BitCracker Hash Extractor in7
....
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"
用戶密碼攻擊
如果存儲(chǔ)設(shè)備已使用用戶提供的密碼加密,則可以該類型的攻擊,如下圖所示。

BitCracker執(zhí)行字典攻擊,需要你提供可能的用戶密碼列表。
執(zhí)行攻擊需要:
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:每個(gè)CUDA線程處理的密碼數(shù)
-b:CUDA blocks的數(shù)量
-g:NVIDIA GPU設(shè)備ID
-u:指定你想要的用戶密碼攻擊
注:查看所有可選項(xiàng),可以通過./build/bitcracker_cuda -h命令。為了獲得最佳性能,請(qǐng)參閱“性能”部分中的表格,并根據(jù)你的NVIDIA GPU正確設(shè)置t和b選項(xiàng)。
bitcracker_opencl可執(zhí)行文件同上。
輸出示例:
====================================
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:
|