bitcracker
bitcracker copied to clipboard
Another run_tests.sh Password not found!
I am using
OS: Ubuntu 19.04 Card: 1080 Ti Driver Version: 418.56 CUDA Versions: 9.2 and 10.1
bitcracker compiles, but tests are failing with "Password not found". Please assist.
$ cuda-memcheck ./build/bitcracker_cuda -f ./test_hash/imgWin8_user_password.txt -d ./Dictionary/user_passwords.txt -t 1 -b 1 -g 0 -u
========= CUDA-MEMCHECK
---------> BitCracker: BitLocker password cracking tool <---------
====================================
Selected device: GPU GeForce GTX 1080 Ti (ID: 0)
====================================
Compute capability: 6.1
Clock rate: 1632500
Clock rate: 1633 MHz (1.63 GHz)
Memory Clock Rate (KHz): 5505000
Memory Bus Width (bits): 352
Peak Memory Bandwidth (GB/s): 484.440000
Device copy overlap: Enabled
Async memory engine count: 2
Concurrent kernels: 1
Kernel execition timeout: Enabled
Total global mem: 11713052672 bytes
Free memory: 11332616192 bytes
Texture Alignment: 512
Multiprocessor count: 28
Shared mem per mp: 49152
Registers per mp: 65536
Threads in warp: 32
Max threads per block: 1024
Max thread dimensions: (1024, 1024, 64)
Max grid dimensions: (2147483647, 65535, 65535)
For this session, BitCracker requires at least 268566528 bytes of memory
====================================
Retrieving Info
====================================
Reading hash file "./test_hash/imgWin8_user_password.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: ./Dictionary/user_passwords.txt
Strict Check (-s): No
MAC Comparison (-m): No
CUDA Kernel execution:
Effective passwords: 16
Passwords Range:
abcdefshhf
.....
blablablablabla
Time: 6.312177 sec
Passwords x second: 2.53 pw/sec
================================================
CUDA attack completed
Passwords evaluated: 16
Password not found!
================================================
========= ERROR SUMMARY: 0 errors
Here is my build output
====== Build BitCracker Hash Extractor ======
rm -rf *.o
rm -rf ../build/bitcracker_hash
gcc bitcracker_hash.c -o bitcracker_hash
====== Build BitCracker Recovery Password generator ======
rm -rf *.o
rm -rf ../build/bitcracker_rpgen
gcc bitcracker_rpgen.c -o bitcracker_rpgen
====== Build BitCracker CUDA version ======
rm -rf *.o
rm -rf ../build/bitcracker_cuda
nvcc -gencode arch=compute_61,code=sm_61 -Xptxas -v -o bitcracker_cuda main.cu cuda_attack.cu utils.cu w_blocks.cu -G
ptxas info : 0 bytes gmem, 12584 bytes cmem[3]
ptxas info : Function properties for cudaGetDevice
0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
ptxas info : Function properties for cudaFuncGetAttributes
8 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
ptxas info : Function properties for cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags
0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
ptxas info : Function properties for cudaDeviceGetAttribute
0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
ptxas info : Function properties for cudaMalloc
8 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
ptxas info : Function properties for cudaOccupancyMaxActiveBlocksPerMultiprocessor
0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
ptxas info : 0 bytes gmem, 12584 bytes cmem[3]
ptxas info : Function properties for _Z7encryptjjjjjjjjjjjjPjS_S_S_
152 bytes stack frame, 152 bytes spill stores, 176 bytes spill loads
ptxas info : Function properties for _ZN4dim3C2Ejjj
24 bytes stack frame, 20 bytes spill stores, 20 bytes spill loads
ptxas info : Function properties for cudaDeviceGetAttribute
0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
ptxas info : Function properties for cudaOccupancyMaxActiveBlocksPerMultiprocessor
0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
ptxas info : Compiling entry function '_Z20decrypt_vmk_with_maciPiPhS0_S0_S0_S0_iiiijjjji' for 'sm_61'
ptxas info : Function properties for _Z20decrypt_vmk_with_maciPiPhS0_S0_S0_S0_iiiijjjji
15728 bytes stack frame, 3514 bytes spill stores, 6580 bytes spill loads
ptxas info : Used 64 registers, 15880 bytes cumulative stack size, 420 bytes cmem[0], 8 bytes cmem[2], 2 textures
ptxas info : Function properties for cudaMalloc
8 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
ptxas info : Compiling entry function '_Z11decrypt_vmkiPiPhS0_iiiiijjjji' for 'sm_61'
ptxas info : Function properties for _Z11decrypt_vmkiPiPhS0_iiiiijjjji
18800 bytes stack frame, 9430 bytes spill stores, 15200 bytes spill loads
ptxas info : Used 64 registers, 18800 bytes cumulative stack size, 420 bytes cmem[0], 8 bytes cmem[2], 2 textures
ptxas info : Function properties for __byte_perm
0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
ptxas info : Function properties for cudaGetDevice
0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
ptxas info : Function properties for cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags
0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
ptxas info : Function properties for _ZN4dim3C1Ejjj
0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
ptxas info : Function properties for cudaFuncGetAttributes
8 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
ptxas info : 0 bytes gmem, 12584 bytes cmem[3]
ptxas info : Function properties for cudaGetDevice
0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
ptxas info : Function properties for cudaFuncGetAttributes
8 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
ptxas info : Function properties for cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags
0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
ptxas info : Function properties for cudaDeviceGetAttribute
0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
ptxas info : Function properties for cudaMalloc
8 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
ptxas info : Function properties for cudaOccupancyMaxActiveBlocksPerMultiprocessor
0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
ptxas info : 0 bytes gmem, 12584 bytes cmem[3]
ptxas info : Function properties for cudaGetDevice
0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
ptxas info : Function properties for cudaFuncGetAttributes
8 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
ptxas info : Function properties for cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags
0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
ptxas info : Function properties for cudaDeviceGetAttribute
0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
ptxas info : Compiling entry function '_Z16w_block_evaluatePhiS_Pj' for 'sm_61'
ptxas info : Function properties for _Z16w_block_evaluatePhiS_Pj
64 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
ptxas info : Used 21 registers, 64 bytes cumulative stack size, 352 bytes cmem[0]
ptxas info : Function properties for cudaMalloc
8 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
ptxas info : Function properties for cudaOccupancyMaxActiveBlocksPerMultiprocessor
0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
====== Build BitCracker OpenCL version ======
rm -rf *.o
rm -rf bitcracker_opencl
gcc -I/usr/include -L/usr/lib64 -L/usr/lib -I/usr/local/cuda/include -L/usr/local/cuda/lib64 -O3 -Wextra -o bitcracker_opencl main.c opencl_attack.c utils.c w_blocks.c -lOpenCL
main.c: In function ‘checkDeviceStatistics’:
main.c:102:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (i = 0; i < platformCount; i++)
^
main.c:111:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (j = 0; j < deviceCount; j++)
^
main.c:151:37: warning: format ‘%lld’ expects argument of type ‘long long int’, but argument 2 has type ‘cl_ulong {aka long unsigned int}’ [-Wformat=]
printf("Max Global Memory Size: %lld\n", maxAllocSize);
^
main.c:155:43: warning: format ‘%lld’ expects argument of type ‘long long int’, but argument 2 has type ‘cl_ulong {aka long unsigned int}’ [-Wformat=]
printf("Max Global Memory Alloc Size: %lld\n", maxAllocSize);
^
main.c:159:43: warning: format ‘%lld’ expects argument of type ‘long long int’, but argument 2 has type ‘cl_ulong {aka long unsigned int}’ [-Wformat=]
printf("Max Const Memory Buffer Size: %lld\n", maxConstBufSize);
^
opencl_attack.c: In function ‘opencl_attack’:
opencl_attack.c:281:18: warning: ‘d_computeMacIV’ may be used uninitialized in this function [-Wmaybe-uninitialized]
ciErr1 = clEnqueueWriteBuffer(cqCommandQueue, d_computeMacIV, CL_TRUE, 0, IV_SIZE*sizeof(char), computeMacIV, 0, NULL, NULL);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
opencl_attack.c:278:18: warning: ‘d_macIV’ may be used uninitialized in this function [-Wmaybe-uninitialized]
ciErr1 = clEnqueueWriteBuffer(cqCommandQueue, d_macIV, CL_TRUE, 0, IV_SIZE*sizeof(char), macIV, 0, NULL, NULL);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
utils.c: In function ‘parse_data’:
utils.c:105:2: warning: ignoring return value of ‘fgets’, declared with attribute warn_unused_result [-Wunused-result]
fgets(hash, INPUT_HASH_SIZE, fphash);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
utils.c:214:3: warning: ‘fphash’ may be used uninitialized in this function [-Wmaybe-uninitialized]
fclose(fphash);
^~~~~~~~~~~~~~
w_blocks.c: In function ‘w_block_precomputed’:
w_blocks.c:160:21: warning: ‘ckKernelWBlocks’ may be used uninitialized in this function [-Wmaybe-uninitialized]
if(ckKernelWBlocks)clReleaseKernel(ckKernelWBlocks);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
w_blocks.c:161:18: warning: ‘cpProgram’ may be used uninitialized in this function [-Wmaybe-uninitialized]
if(cpProgram)clReleaseProgram(cpProgram);
^~~~~~~~~~~~~~~~~~~~~~~~~~~
====== Executables in build directory ======
I recompiled with -G and reran it with the same result
========= CUDA-MEMCHECK
---------> BitCracker: BitLocker password cracking tool <---------
====================================
Selected device: GPU GeForce GTX 1080 Ti (ID: 0)
====================================
Compute capability: 6.1
Clock rate: 1632500
Clock rate: 1633 MHz (1.63 GHz)
Memory Clock Rate (KHz): 5505000
Memory Bus Width (bits): 352
Peak Memory Bandwidth (GB/s): 484.440000
Device copy overlap: Enabled
Async memory engine count: 2
Concurrent kernels: 1
Kernel execition timeout: Enabled
Total global mem: 11713052672 bytes
Free memory: 11296309248 bytes
Texture Alignment: 512
Multiprocessor count: 28
Shared mem per mp: 49152
Registers per mp: 65536
Threads in warp: 32
Max threads per block: 1024
Max thread dimensions: (1024, 1024, 64)
Max grid dimensions: (2147483647, 65535, 65535)
For this session, BitCracker requires at least 268566528 bytes of memory
====================================
Retrieving Info
====================================
Reading hash file "./test_hash/imgWin8_user_password.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: ./Dictionary/user_passwords.txt
Strict Check (-s): No
MAC Comparison (-m): No
CUDA Kernel execution:
Effective passwords: 16
Passwords Range:
abcdefshhf
.....
blablablablabla
Time: 4580.876000 sec
Passwords x second: 0.00 pw/sec
================================================
CUDA attack completed
Passwords evaluated: 16
Password not found!
================================================
========= ERROR SUMMARY: 0 errors
tests are failing with "Password not found".
So everything seems OK:
- You're providing a user dictionary,
-d ./Dictionary/user_passwords.txt
- The dictionary is quite small
Passwords evaluated: 16
- The dictionary didn't hold the match and no brute-force was attempted
Password not found!
========= ERROR SUMMARY: 0 errors
If one's absolutely sure that the password is within the dictionary and properly typed (e.g., passwords are case-sensitive) and still it refuses do find a match then IMO it would be eligible for an issue. But, again, concrete proof would need to be provided (possibly a link to small image which reproduces the problem) in order to allow any sort of investigation.