banner

블로그

Jul 28, 2023

논리 분석기로 Bitlocker 우회

보안 엔지니어 [Guillaume Quéré]는 고용주를 위해 침투 테스트 시스템을 하루 종일 보내고 BitLocker 전체 볼륨 암호화 시스템의 명백한 약점을 지적하고 성공적으로 활용했습니다. SPI 버스를 통한 개별 TPM 칩 및 CPU. Bitlocker의 작동 방식은 TPM 칩에 저장된 개인 키를 사용하여 볼륨 데이터를 암호화하는 데 사용된 전체 볼륨 키를 암호화하는 것입니다. 이 작업은 모두 Windows 커널의 하위 수준 장치 드라이버에 의해 수행되며 사용자에게 투명합니다.

BitLocker의 핵심은 물리적 장치 도난 또는 분실 시 보안 볼륨의 데이터에 대한 액세스를 방지하는 것이었습니다. 단순히 드라이브를 당겨서 보안되지 않은 시스템이나 다른 어댑터에 놓으면 TPM에 저장된 키가 없으면 데이터가 제공되지 않습니다. 그러나 해당 키는 부팅 시퀀스 중에 TPM에서 CPU로 일반 텍스트로 전달되어야 하기 때문에 [Guillaume]은 매우 저렴한 도구와 무료 소프트웨어를 사용하여 이 TPM을 찾아 스니핑하는 것이 매우 간단하다는 것을 보여줍니다. -CPU 트랜잭션을 수행하고 데이터 스트림을 디코딩하고 키를 찾습니다. 근처 플래시 칩의 편리한 대형 핀에 연결된 저렴한 로직 분석기를 사용하여(SCK, MISO 및 MOSI 핀이 TPM과 공유되기 때문에) 간단한 TIS가 TPM의 바이트에 고정될 만큼 충분히 디코딩되었습니다. 액자. 그런 다음 TPM2 소프트웨어 커뮤니티 그룹이 제공하는 TPM 스트림 디코더 웹 앱을 사용하여 디코딩할 수 있습니다. 찾아야 할 명령은 우리가 관심 있는 키를 전송하기 위해 CPU에서 TPM으로 요청하는 TPM_CC.Unseal입니다. 그런 다음 TPM 응답 프레임을 잡고 디코딩하면 즉시 상품이 표시됩니다.

다음에 수행할 작업은 편의의 문제이지만 대부분의 보안 및 포렌식 유형은 이미 대상 볼륨의 낮은 수준 디스크 이미지 파일에 단단히 고정되어 있습니다. Linux xxd 명령을 사용하여 32바이트 16진수 덤프 키를 바이너리 키 파일로 변환함으로써 dislocker-fuse FUSE 모듈은 사용자가 마운트할 수 있는 동적으로 암호 해독된 가상 파일 시스템을 생성할 수 있습니다. 원하는 경우 해독된 볼륨 데이터를 새 디스크에 쓰고 이를 머신에 넣은 다음 운영 체제를 부팅할 수 있습니다. 로그인할 수 없을 가능성이 높지만 [Guillaume]이 지적했듯이 고정 키 앱(sethc.exe)을 cmd.exe로 덮어쓰면 Shift 키를 5번 두드리는 것만으로 명령 프롬프트에 액세스할 수 있습니다. 좋은 시간!

실제로 Windows 11을 설치하기 위해 이전 시스템에 대한 TPM 지원이 필요한 경우(꼭 필요한 경우) 언제든지 직접 만들 수 있습니다. 또한 LPC 인터페이스는 많은 마더보드에 있으므로 이를 활용하여 ISA 버스 어댑터를 걸어 쓰레기로 처리할 수 없는 오래된 클래식 Soundblaster 카드를 연결하는 데 사용하는 것은 어떨까요?

공유하다