1.파일 시스템 조회

Edit

1.1ntfs-logfile

NTFS 트랜잭션 로그 파일에서 파일 이름, 생성/수정/접근일시, Redo/Undo 작업 유형을 조회합니다. 조회한 데이터로 파일 생성, 삭제, 이름 변경 등의 내역을 확인할 수 있습니다.

문법

ntfs-logfile [zippath=ZIPFILE_PATH] FILE_PATH
zippath

ZIP 파일의 절대 경로를 입력합니다.

FILE_PATH

데이터를 읽어들일 NTFS 로그 파일 경로를 입력합니다. zippath 옵션을 입력한 경우, zip 파일 내의 파일 경로를 입력합니다.

표 1-1출력 필드

필드 이름

타입

설명

access_at

날짜

접근일시

client_data_length

정수

레코드 크기

created_at

날짜

생성일시

file_name

문자열

파일 이름

flags

정수

플래그

lsn

정수

로그파일 시퀀스 넘버

mft_head

문자열

mft 헤더

mft_link_count

정수

해당 파일을 참조하는 엔트리 갯수

mft_lsn

정수

mft 로그파일 시퀀스 넘버

modified_at

날짜

수정일시

page

정수

페이지 번호

prev_lsn

정수

이전 로그파일 시퀀스 넘버

record_type

정수

레코드 타입 (2=체크포인트 레코드, 1=그외 레코드)

redo_len

정수

redo 데이터 크기

redo_offset

정수

redo 데이터 시작

redo_op

문자열

redo 작업

undo_len

정수

undo 데이터 크기

undo_offset

정수

undo 데이터 시작

undo_op

문자열

undo 작업

사용 예

1) 파일 경로를 입력하여 조회

ntfs-logfile D:\testdata\NTFS\test_LogFile

2) zippath 옵션을 입력한 경우, 조회

ntfs-logfile zippath=D:\testdata\NTFS.zip NTFS\test_LogFile

3) redo 작업이 initialize_file_record_segment 작업이나 Delete 관련 작업인 로그 조회

ntfs-logfile D:\testdata\NTFS\test_LogFile | sort lsn 
| search redo_op == "initialize_file_record_segment" or redo_op == "*delete*"

1.2ntfs-mft

NTFS 마스터 파일에서 파일 경로 및 이름, 파일 크기, 디스크 할당 크기, 파일 생성/수정/접근일시, 디렉터리 여부 등의 정보를 조회합니다. 조회한 데이터로 전체 파일 및 폴더 구조를 분석하거나 삭제된 파일이나 폴더를 추출할 수 있고, ADS(Alternate Data Stream) 은닉 정보를 탐색할 수 있습니다.

문법

ntfs-mft [zippath=ZIPFILE_PATH] FILE_PATH
zippath

ZIP 파일의 절대 경로를 입력합니다.

FILE_PATH

데이터를 읽어들일 NTFS MFT 파일 경로를 입력합니다. zippath 옵션을 입력한 경우, zip 파일 내의 파일 경로를 입력합니다.

표 1-2출력 필드

필드 이름

타입

설명

no

정수

파일 번호

file_name

문자열

파일 이름

file_path

문자열

파일 경로

file_size

정수

파일 크기

alloc_size

정수

할당 크기

in_use

불리언

사용 여부

is_dir

불리언

디렉터리 여부

link_count

정수

해당 파일을 참조하는 하드링크 갯수

created_at

날짜

$FILE_NAME 속성의 생성일시

modified_at

날짜

$FILE_NAME 속성의 수정일시

access_at

날짜

$FILE_NAME 속성의 접근일시

mft_modified_at

날짜

$FILE_NAME 속성의 MFT 수정일시

std_created_at

날짜

$STANDARD_INFORMATION 속성의 생성일시

std_modified_at

날짜

$STANDARD_INFORMATION 속성의 수정일시

std_access_at

날짜

$STANDARD_INFORMATION 속성의접근일시

std_mft_modified_at

날짜

$STANDARD_INFORMATION 속성의 MFT 수정일시

is_readonly

불리언

읽기전용 여부

is_hidden

불리언

숨김 여부

is_system

불리언

시스템 여부

is_archive

불리언

아카이브 여부

is_device

불리언

장치 여부

is_normal

불리언

일반 여부

is_temp

불리언

임시 여부

is_sparse

불리언

sparse 파일 여부

is_reparse

불리언

reparse point 여부

is_compressed

불리언

압축 여부

is_offline

불리언

오프라인 여부

is_indexed

불리언

인덱스 여부

is_encrypted

불리언

암호화 여부

lsn

정수

로그 시퀀스 넘버

seq

정수

시퀀스

file_ref

정수

파일 레퍼런스

parent_file_ref

정수

부모 파일 레퍼런스

parent_no

정수

부모 파일 번호

사용 예

1) 파일 경로를 입력하여 조회

ntfs-mft D:\testdata\NTFS\test_MFT

2) zippath 옵션을 입력한 경우, 조회

ntfs-mft zippath=D:\testdata\NTFS.zip NTFS\test_MFT

3) 삭제된 숨김 파일 목록 조회

ntfs-mft D:\testdata\NTFS\test_MFT 
| search not(in_use) and not(is_dir) and is_hidden

1.3ntfs-usnjrnl

USN 저널 파일에서 이벤트 발생 시각, 파일 경로 및 이름, 파일 생성/삭제 등의 작업 정보를 조회합니다. 조회한 데이터로 MFT 파일과 조인하여 타임라인 분석이 가능합니다.

문법

ntfs-usnjrnl [zippath=ZIPFILE_PATH] FILE_PATH
zippath

ZIP 파일의 절대 경로를 입력합니다.

FILE_PATH

데이터를 읽어들일 USNJRNL 저널 파일 경로를 입력합니다. zippath 옵션을 입력한 경우, zip 파일 내의 파일 경로를 입력합니다.

표 1-3출력 필드

필드 이름

타입

설명

_time

날짜

이벤트 발생 시각

file_name

문자열

파일 이름

file_no

정수

파일 번호

file_ref

정수

파일 레퍼런스

parent_file_no

정수

부모 파일 번호

parent_file_ref

정수

부모 파일 레퍼런스

reason

리스트

이벤트 동작. Reason flag 정보는 아래 표 참고

usn

정수

업데이트 시퀀스 넘버

표 1-4Reason flag 정보 (http://msdn.microsoft.com/en-us/library/aa365722.aspx)

Flag

Description

0x00000001

기본 $Data 속성에 데이터가 Overwrite 됨

0x00000002

기본 $Data 속성에 데이터가 추가됨

0x00000004

기본 $Data 속성에 데이터가 줄어듬

0x00000010

이름 있는 $Data 속성에 데이터가 Overwrite 됨

0x00000020

이름 있는 $Data 속성에 데이터가 추가됨

0x00000040

이름 있는 $Data 속성에 데이터가 줄어듬

0x00000100

파일이나 디렉터리가 생성됨

0x00000200

파일이나 디렉터리가 삭제됨

0x00000400

파일의 확장된 속성이 변경됨

0x00000800

접근 권한이 변경됨

0x00001000

객체명 변경시, 변경 전 이름

0x00002000

객체명 변경시, 변경 후 이름

0x00004000

인덱스 상태가 변경됨

0x00008000

파일이나 디렉터리의 속성이 변경됨

0x00010000

하드 링크가 생성되었거나 삭제됨

0x00020000

압축 상태가 변경됨(압축됨 or 압축이 풀림)

0x00040000

암호화 상태가 변경됨(암호화됨 or 복호화됨)

0x00080000

객체 ID가 변경됨

0x00100000

Reparse 지점값이 변경됨

0x00200000

이름 있는 $Data 속성의 생성 or 삭제 or 변경됨

0x80000000

파일 또는 디렉터리가 닫힘

사용 예

1) 파일 경로를 입력하여 조회

ntfs-usnjrnl D:\testdata\NTFS\test_UsnJrnl

2) zippath 옵션을 입력한 경우, 조회

ntfs-usnjrnl zippath=D:\testdata\NTFS.zip NTFS\test_UsnJrnl

3) 실행 파일 삭제 이력 조회

ntfs-usnjrnl D:\testdata\NTFS\test_UsnJrnl
| search file_name == "*.exe" and string(reason) == "*DELETE*"

4) MFT 파일과 조인하여 타임라인 분석

ntfs-usnjrnl D:\testdata\NTFS\test_UsnJrnl
| streamjoin type=left file_no [ ntfs-mft D:\testdata\NTFS\test_MFT | rename no as file_no | fields file_no, file_path, in_use, is_dir ] 
| eval reason = strjoin(" | ", reason)
| fields _time, file_path, reason, in_use, is_dir

1.4zipfile-entries

지정된 ZIP 파일 내부의 압축된 파일 및 디렉터리 목록을 가져옵니다.

문법

zipfile-entries ZIPFILE_PATH
ZIPFILE_PATH

ZIP 파일의 절대 경로를 입력합니다. 파일 경로에 와일드카드(*)를 사용하면 특정 문자열 패턴을 포함한 모든 파일 및 디렉터리를 한 번에 조회할 수 있습니다. 파일을 읽어오려면 로그프레소 실행 계정에 파일 접근 권한이 부여되어 있어야 합니다.

표 1-5출력 필드

필드 이름

타입

설명

zip_path

문자열

ZIP 파일 경로

entry

문자열

ZIP 파일 목록

file_size

정수

파일 크기

compressed_size

정수

압축 크기

modified_at

날짜

수정일시

comment

문자열

코멘트

사용 예

1) D:\testdataentry.zip 파일의 파일 및 디렉터리 목록 조회

zipfile-entries D:\testdata\entry.zip

2) D:\testdata 의 모든 ZIP 파일의 파일 및 디렉터리 목록 조회

zipfile-entries D:\testdata\*.zip

3) entry.zip 파일에서 .evtx 확장자를 가진 파일 엔트리 조회

zipfile-entries D:\testdata\entry.zip 
| search entry=="*.evtx"
Count of comments [0]