Windows $MFT and NTFS Metadata Extractor Tool (ntfswalk)

Digital Forensic Wikipedia
둘러보기로 가기 검색하러 가기

소개

Windows $MFT and NTFS Metadata Extractor Tool은 CLI 기반이며 Windows, Mac, Linux에서 사용 가능하다. NTFS으로 포맷 된 vmdk파일, dd이미지파일, 로컬 드라이브를 입력하여 자동으로 NTFS 메타데이터파일의 경로를 찾거나 직접적으로 NTFS 메타데이터파일의 경로를 지정하여 내용을 파싱한다. 이 정보를 이용해 NTFS 파티션을 분석해 지정한 확장자를 가진 파일을 복사하거나, 파일의 헤더 부분, 숨겨진 부분, 볼륨 정보, 디스크 정보 등을 CSV 파일 포맷으로 추출할 수 있다.

사용법

[그림 1] ntfswalk 사용 아키텍처

이 도구의 기본적인 사용 아키텍처는 [그림 1]와 같다. Command 창을 관리자 권한으로 실행하여 [표 1]와 같이 해당 작업에 적절한 문법으로 원하는 도구를 사용할 수 있다. Command 옵션은 [표 2] ~ [표 6]과 같다.

[표 1] Windows $MFT and NTFS Metadata Extractor Tool 명령어 예제
명령어 샘플 기능
ntfswalk
–partition [드라이브]
-filter_ext [확장자이름]
-action_copy_files [파일이 저장될 위치]
-out [추출 결과 파일 이름]
모든 해당 확장자를 가진 파일 복사
ntfswalk
–partition [드라이브]
-action_include_header
-out [추출 결과 파일 이름]
파일 헤더에 관한 정보 추출
ntfswalk -drivenum 0 MBR 의 파티션 엔트리 출력
ntfswalk -drivenum 0 -offset 0x100000
–filter_name [메타데이터 파일이름]
-action_copy_file [파일이 저장될 위치]
메타데이터 추출
ntfswalk
–image [파티션 파일]
> [결과 파일]
이미지 분석
[표 2] Windows $MFT and NTFS Metadata Extractor Tool 명령어 입력대상 옵션
옵션 추가사항 설명
-drivenum 마운트 된 디스크 -drivenum <#> -offset <volume offset>
-vmdk .. NTFS로 포맷된 VMWare파일 입력 -vmdk <disk name>
-image dd 이미지 입력 -image <filename> -offset <volume offset>
-mft 수집한 $MFT 경로를 입력
-partition 로컬 또는 마운팅 된 드라이브 입력 -partition <drive letter>
[표 3] Windows $MFT and NTFS Metadata Extractor Tool 명령어 필터링 옵션
옵션 추가사항 설명
-filter_ext 지정한 확장자만 추출
-filter_name 지정한 이름만 추출
-filter_deleted_files $MFT에서 삭제된 파일만 추출
-filter_fullname .. 경로와 파일이름으로 추출
-filter_inode .. 지정한 아이노드로 추출
-filter_deleted_files_all $MFT 뿐만 아니라 비할당역역에서 삭제된 파일 추출
-filter_unalloc_clusters $MFT 없이 미할당영역 분석
-filter_all_clusters $MFT 뿐만 아니라 비할당 클러스터도 분석
-filter_sig .. 시그니처를 통해 분석
mz = exes, dlls, and driver files
hive = registry hives
evt = event logs
sqlite = SQLite v3
-filter_dir .. -filter_dir_inode
-filter_dir_inode .. 디렉터리의 아이노드로 추출
-filter_start_time 시작 시간으로 추출
-filter_stop_time 종료 시간으로 추출
[표 4] Windows $MFT and NTFS Metadata Extractor Tool 명령어 추출 옵션
옵션 추가사항 설명
-action_copy_files .. 파일 추출 -action_copy_files <디렉터리\파일> [-raw] [-skip_sparse_clusters]
-raw : 파일과 관계된 모든 클러스터복사
-skip_sparse_cluster : 클러스터 관계 없이 복사
-action_include_header .. 추출 시 파일의 헤더 정보를 포함한다.
-action_include_clusterinfo .. 추출 시 클러스터 정보를 함께 출력한다.
[표 5] Windows $MFT and NTFS Metadata Extractor Tool 명령어 결과추출 옵션
옵션 추가사항 설명
-csv csv형식
-csvl2t log타임라인 형식
-bodyfile 슬러시킷에서 소개한 'body-file' version3 형식에 맞추어 결과 출력
-hashfile 해시값 출력(MD5, SHA1 지정)
[표 6] Windows $MFT and NTFS Metadata Extractor Tool 명령어 기본 옵션
옵션 추가사항 설명
-out 요약 정보를 출력 -out <results file>
-hide_dos_fntimes 출력 시 DOS8.3파일이름의 파일타임을 숨김
-hostname 결과에 호스트 이름을 포함시킴 -hostname <name to use>
-script 옵션이 담긴 파일을 이용
-base10 사이즈, 주소를 헥사 시간이 아닌 10진수 형태로 출력
-use_orig_ext 모든 복사한 파일에 bin 확장자 사용
-mftstart .. I-node 범위로 필터링 -mftstart <inode> [-mftrange <number of inodes>]
-no_whitespace .. 공백 없이 csv 퍼알포맷으로 출력 -csv 필수
-quiet .. 프로그램 진행 상태를 출력 안 함
-dateformat .. 날짜 출력 형식 변경 (default : -dateformat "mm/dd/yyyy")
-timeformat .. 시간 출력 형식 변경 (default : -timeformat "hh:mm:ss.xxx")



도구 기능

Windows $MFT and NTFS Metadata Extractor Tool은 NTFS Log파일 중 메타데이터 파일을 파싱하여 미할당영역을 포함한 전 범위에서 사용자가 원하는 파일 복사, 헤더 정보 추출, 클러스터 정보 추출 등을 한글 깨짐 없이 CSV, bodyfile, 해시파일 형식으로 결과를 출력해준다. 날짜, 시간 출력 형식을 원하는 형태로 출력할 수 있고 시간 정보의 경우 결과 출력 후 한국 시간에 맞추기 위해 +9 시간을 해주어야 한다.

제한 사항

기능은 많지만 사용하려면 명령어의 옵션을 자세히 알아야 한다. 또한 한국시간에 맞추어 +9시간을 해주어야 한다.

수사 활용 방안

Windows $MFT and NTFS Metadata Extractor Tool은 로컬, 마운팅 된 드라이브, Vmdk 이미지, dd이미지를 Windows, Mac, Linux와 같은 다양한 환경에서 메타데이터 파일을 이용해 원하는 파일 복사, 헤더 정보 및 클러스터 정보를 추출할 수 있다. 따라서 필터링을 다양하게 작성할 수 있으므로 복사하고 싶은 파일이나 정보를 얻고 싶은 파일이 있을 때 필터링을 이용해 쉽게 해당 작업을 할 수 있다.