Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
bitcracker — BitCracker는 BitLocker로 암호화된 메모리 장치를 위한 최초의 오픈 소스 비밀번호 크래킹 도구입니다. | Kitploit
도구/GitHubGitHub/e-ago/bitcracker
Password CrackingEncryption/Decryption ToolsCryptography
GitHube-ago/bitcracker

bitcracker

BitCracker는 BitLocker로 암호화된 메모리 장치를 위한 최초의 오픈 소스 비밀번호 크래킹 도구입니다.

저장소 보기
965207254년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

BitCracker

BitCracker는 BitLocker로 암호화된 저장 장치(하드 디스크, USB 펜드라이브, SD 카드 등)를 위한 최초의 오픈 소스 비밀번호 크래킹 도구입니다. BitLocker는 Windows Vista, 7, 8.1 및 10(Ultimate, Pro 및 Enterprise 에디션)에서 사용할 수 있는 암호화 기능입니다. BitLocker는 TPM(Trusted Platform Module), 스마트 카드, 복구 암호, 사용자 제공 암호 등 저장 장치를 암호화하기 위한 다양한 인증 방법을 제공합니다.

사전 공격을 통해 BitCracker는 암호화된 저장 장치를 해독하기 위해 올바른 사용자 암호 또는 복구 암호를 찾으려고 시도합니다. CUDA 및 OpenCL로 구현되었습니다.

논문

여러 저널이 BitCracker 논문의 출판을 지연시켰습니다(거의 3년, 여러 번의 수정 끝에 최종 거절). 이 논문은 공격의 세부 사항, BitLocker 드라이브 암호화(BDE) 볼륨 형식 및 암호화/복호화 절차의 가능한 취약점을 설명합니다. 마지막으로 여기에 논문을 게시했습니다: https://arxiv.org/abs/1901.01337 . 자유롭게 댓글을 달고 공유해 주세요.

요구 사항

BitCracker-CUDA를 실행하려면 최소 요구 사항은 다음과 같습니다:

  • CC 3.5 이상의 NVIDIA GPU
  • CUDA 7.5 이상

BitCracker-OpenCL을 실행하려면 최소 요구 사항은 OpenCL을 지원하는 모든 GPU 또는 CPU입니다 (여기에서 도움을 찾을 수 있습니다).

BitCracker는 최소 260MB의 디바이스 메모리가 필요합니다.

성능상의 이유로 CPU보다 GPU에서 공격을 실행하는 것을 강력히 권장합니다 (성능 섹션 참조).

빌드

build.sh 스크립트를 실행하면 build 디렉토리 안에 4개의 실행 파일이 생성됩니다: bitcracker_hash, bitcracker_rpgen, bitcracker_cuda, bitcracker_opencl.

bitcracker_cuda를 NVIDIA GPU 및 CUDA 버전에 맞게 빌드하려면 src_CUDA/Makefile을 수정하여 올바른 SM 버전을 선택해야 합니다. 참고로 다음 표를 사용할 수 있습니다:

GPU 아키텍처권장 CUDAMakefile
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

공격 준비

예를 들어 dd 명령을 사용하여 BitLocker로 암호화된 저장 장치의 이미지를 생성해야 합니다:

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에서 bitcracker_hash 실행 파일을 실행하여 다음을 수행해야 합니다:

  • 이미지가 유효한 형식인지, BitCracker로 공격할 수 있는지 확인
  • 원래 저장 장치가 사용자 암호(User Password) 또는 복구 암호(Recovery Password)로 암호화되었는지 확인
  • 이미지를 설명하는 해시 추출

실행이 정상적으로 완료되면 bitcracker_hash는 1개 또는 2개의 출력 파일을 생성합니다:

  • hash_user_pass.txt : 장치가 사용자 암호로 암호화된 경우, 이 파일에는 사용자 암호 공격 모드를 시작하는 데 필요한 해시가 포함됩니다.
  • hash_recv_pass.txt : 복구 암호 공격 모드를 시작하는 데 필요한 해시입니다.

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 장치 ID
  • -u : 사용자 암호 공격을 지정

사용 가능한 모든 옵션은 ./build/bitcracker_cuda -h를 입력하세요. 최상의 성능을 얻으려면 Performance 섹션의 표를 참조하여 NVIDIA GPU에 따라 t 및 b 옵션을 적절히 설정하세요.

동일한 고려 사항이 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이라는 복구 암호 생성기를 만들었습니다. 이 도구를 사용하면 공격에 사용할 수 있는 여러 복구 암호 단어 목록을 만들 수 있습니다. 예를 들어:

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

이는 다음을 생성합니다:

  • -n : 단어 목록 수
  • -p : 단어 목록당 복구 암호 수
  • -s : 이 암호부터 시작하여 복구 암호 생성

옵션 없이 실행하여 기본 구성을 사용할 수 있습니다:

./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를 입력하세요.

참고: 가능한 복구 암호의 양은 엄청납니다:
recovery password = 65536 x 65536 x 65536 x 65536 x 65536 x 65536 x 65536 x 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을 지정해야 합니다. 출력 예:

====================================
Selected device: GPU Tesla K80 (ID: 0)
====================================
도구 다운로드