No img


[Artifact] 윈도우 포렌식 - JumpList 아티팩트

Posted by bonggang | 2019. 9. 25. 16:01

점프리스트


점프리스트는 응용프로그램 별로 그룹화 하고 최근에 실행한 파일에 대한 링크를 관리하는 파일이다.

윈도우7부터 새롭게 추가된 아티팩트로 UsserAssist, Recent 등의 아티팩트와 비슷하지만 좀 더 지역성의 원리를 활용한 기능이다.

인지하지 못했을 수 있지만 이미 다들 한 번쯤 점프리스트를 본 적이 있을 것이다. 응용프로그램 실행 시 작업 표시줄에 표시되는 아이콘을 우클릭 했을 때 최근 항목, 작업 항목, 자주 사용하는 항목, 사용자 고정 목록이 표시되는데 이것이 바로 점프리스트다. 

 

 

포렌식적 관점


포렌식 관점에서 보면 사용자가 일부로 삭제하지 않는 이상 계속 관련 로그를 저장한다는 점에서 중요한 아티팩트 중 하나가 될 수 있다. 점프리스트 아티팩트를 포렌식 관점에서 봤을 때 얻을 수 있는 정보는 다음과 같다.

 

- 문서, 프로그램 실행 유무

- 자주 사용하는 문서, 프로그램 정보

- 최근에 사용한 문서, 프로그램 정보

 

점프리스트 경로


파일에 대한 링크를 관리하는 파일

%UserProfile%\AppData\Roaming\Microsoft\Windows\Recent

 

최근에 사용한 목록(Recent), 사용자가 고정시킨 목록

%UserProfile%\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations

자주 사용되는 목록이나 작업(Task) 목록

%UserProfile%\AppData\Roaming\Microsoft\Windows\Recent\CustomDestinations

 

점프리스트 저장 형식


점프리스트 파일은 '최근 문서'의 하위 폴더에 2가지 형태로 저장된다. 폴더의 이름은 Automatic DestinationsCustomDestinations다.

점프리스트는 모두 16자리 16진수 형식의 값의 이름(응용프로그램 별로 고유 값 소유)으로 저장되며 확장자는 .automaticDestination-ms다. 이 때 응용프로그램 별로 고유 값은(AppID)는 CRC-64 알고리즘에 의해 생성된다. 따라서 저장 경로가 달라지면 한 어플리케이션에 대해 여러 개의 JumpLits 파일이 생성될 수 있다.

 

 

*.automaticDestinations-ms 파일 구조

automaticDestinations-ms 파일은 Microsoft CFB(Compound File Binary) 형식(OLE)을 따른다. 각 파일은 SHLLINK 스트림과 한 개의 DestList 스트림으로 구성되어 있다.

 

DestList 헤더 구조

DestList 헤더는 점프리스트 파일에 대한 간략한 정보를 포함한다.

Version Number 4bytes 0x00 windows 7/8 -> 1/ windows 10 -> 4
Total number of current Entries 4bytes 0x04  
Total number of pinned Entries 4bytes 0x08  
Unknown value 4bytes 0x0C  
Last Issued Entry ID number 8bytes 0x10  
Number of add/delete/re-open actions 8bytes 0x14  

 

 

DestList Entry 구조

DestList 헤더는 점프리스트 파일에 대한 간략한 정보를 포함한다.

Checksum 8bytes 0x00
New Volume ID 16bytes 0x08
New Object ID 16bytes 0x18
Birth Volume ID 16bytes 0x28
Birth Object ID 16bytes 0x38
NetBIOS Name  16bytes 0x48
Entry ID number 4bytes 0x58
  8bytes 0x5C
MSFILETIME of last recorded access 8bytes 0x64
Enty pin status 4bytes 0x6C
  4bytes 0x70
access count 4bytes 0x74
0x0000000000000000 8bytes 0x78
length of unicode 2bytes 0x80
entry string data 가변적 0x82