본문 바로가기

보안/포렌식

[Sleuth Kit] fls - 이미지 파일 목록 추출

출처 : http://wiki.sleuthkit.org/index.php?title=Fls


명령어 사용 방법 : http://www.sleuthkit.org/sleuthkit/man/fls.html


파일다운로드: 



fls.zip




1. 개요 :


fls는 파일 시스템 내의 파일과 디렉토리 이름을 목록화 한다. 이는 주어진 디렉토리의 컨텐츠를 처리하여 삭제된 파일의 정보를 보여준다.





2. 출력 결과 : 


기본적으로 (-l 이나 -m을 사용하지 않은 경우) 디렉토리 내의 각 파일 당 한 줄로 출력된다. 

NTFS의 예로 다음과 같이 출력된다.


r/r 1304-128-1: IO.SYS



3. 파일 타입


출력결과의 r/r은 파일타입을 말한다. 앞의 'r'은 파일의 file name strucutre 내에 저장된 타입을 말한다. 뒤의 'r'은 파일의 metadata structure 내에 저장된 타입을 의미한다. 정상적인 파일의 경우 이 타입은 항상 동일하다. 하지만 삭제된 파일의 경우 구조체의 하나가 다른 파일 타입으로 재할당되면 다를 수도 있다. 이러한 타입의 종류는 아래와 같다. 대부분은 'r' 또는 'd'이고 다른 타입은 보통 유닉스에서 쓰인다.


-: Unknown type

r: 일반 파일

d: 폴더

c: Character 디바이스

b: Block 디바이스

l: Symbolic link

p: Named FIFO

s: Shadow

h: Socket

w: Whiteout

v: TSK Virtual file / directory (실제 디렉토리는 아니고 슬러시킷 편의상 생성됨).



4. 메타 데이터 주소


1304-128-1는 이 이름과 관련된 마타 데이터 주소를 보여준다. 이것은 NTFS이기 때문에  -128-1 부분에 존재하고 이 이름을 가리키는 $Data 속성을 확인한다. 다른 파일 시스템은 이 필드가 단일 숫자로 표현된다.



5. 파일 이름


마지막으로 IO.SYS는 파일의 이름을 의미한다.

-r 옵션을 사용하면 재귀적으로 디렉토리 내를 탐색한다. 그리고 파일의 깊이를 표현하기 ㅜ이해 각 엔트리에는 '+'가 추가 된다. 즉 '++'는 두 디렉토리 깊이를 의미한다.



6. 삭제된 파일 이름


만약 파일 이름이 디렉토리의 비할당 영역 내에 있다면, 즉 삭제된 파일이라면 파일 타입과 메타데이터 주소 사이에 *로 표현된다. 그 예는 다음과 같다. 


r/r * 1304-128-1: IO.SYS


일반적으로 이는 파일이 삭제됨을 의미하지만 일부 파일 시스템에서는 디렉토리를 정렬된 상태로 유지하기 위해 파일 이름을 주변으로 옮긴다. 이는 파일이 할당되었을 때도 비할당 영역에 파일 이름이 복사된 결과를 낳을 수 있다.  3.0.0 TSK 버전 이상은 만약 동일한 파일일 경우 중복된 파일이름을 막는다.


r/r * 1304-128-1(realloc): IO.SYS


이렇게 표현되는 것은 파일 이름이 비할당된 상태에 있고 메타데이터 구조가 비할당 상태에 있을 경우이다. 이는 오직 파일 시스템 내의 메타데이터로부터 파일 이름이 분리된 경우에만 발생할 수 있다.  (such as NTFS, Ext2/3, UFS, etc.)


TSK 3.0.0 버전을 보면 일반적으로 메타데이터 구조는 새로운 파일로 재할당된다. 그리고 메타데이터 또는 파일의 내용이 이 파일이름과 부합하기는 쉽지 않다. 



7. -l format


-l 아규먼트는 좀더 세부적인 긴 포맷 구조를 생성한다. 이것은 다음의 필드로 탭 단위로 분리된다.


파일 타입 (파일 이름과 메타데이터 구조에 저장된)

메타데이터 주소

이름

mtime (last modified time)

atime (last accessed time)

ctime (last changed time)

crtime (created time)

size (in bytes)

uid (User ID)

gid (Group ID)




8. -m format


바디 파일 포맷으로 데이터를 분리하고 싶은 경우 사용한다. 보통 timelines 를 위해 사용된다.


fls -r -m / image.dd > body.txt



'보안 > 포렌식' 카테고리의 다른 글

log2timeline(plaso) 사용방법  (1) 2016.05.22
Shortcut  (0) 2015.11.04
프로세스 실행 횟수 확인  (0) 2015.08.20
Extensible Storage Engine  (0) 2015.07.06
증거 수집  (0) 2015.02.17