레지스트리(Registry)란 윈도우계열 시스템에서 사용하는 시스템 구성 정보를 저장한 데이터베이스를 지칭.
즉 윈도우 설정 정보.
하이브(Hive)란 운영체제가 시작되거나 사용자가 로그인 시의 지원파일 집합 메모리, 로드되는 레지스트리키, 하위키 이다.
HKLM → C: windowsSystem32config
HKU → %userprofile%ntuser.dat
→ System : 윈도우 시스템과 관련된 모든 설정 정보
EXE → HKLM → Software : 윈도우 시스템에 설치된 모든 응용프로그램 정보
→ SAM : 윈도우 시스템에 등록된 계정 정보의 접속, 접속 기록
사용자 정보 → HKU → USER_SID : 각 사용자의 설정 정보 (NTUSER.dat)
점프리스트는 응용프로그램 별로 그룹화 하고 최근에 실행한 파일에 대한 링크를 관리하는 파일.
윈도우7부터 새롭게 추가된 아티팩트로 UsserAssist, Recent 등의 아티팩트와 비슷하지만 좀 더 지역성의 원리를 활용한 기능.
응용프로그램 실행 시 작업 표시줄에 표시되는 아이콘을 우클릭 했을 때 최근 항목, 작업 항목, 자주 사용하는 항목, 사용자 고정 목록이 표시되는데 이것이 바로 점프리스트.
포렌식 관점에서 보면 사용자가 일부로 삭제하지 않는 이상 계속 관련 로그를 저장한다는 점에서 중요한 아티팩트 중 하나가 될 수 있음.
점프리스트 아티팩트를 포렌식 관점에서 봤을 때 얻을 수 있는 정보는 다음과 같다.
문서, 프로그램 실행 유무
자주 사용하는 문서, 프로그램 정보
최근에 사용한 문서, 프로그램 정보
사용자의 응용프로그램 사용 흔적 및 패턴을 보다 쉽게 파악이 가능
대부분 많이 사용하는 윈도우 7에서 부터 기본 활성화 됨. 그렇기에 대부분 사용하는 컴퓨터에서는 점프목록이 활성화 되어있음
최근 접근 문서(Recent)나 UserAssist 키보다 더많은 정보를 포함
사용자가 직접 삭제 하지 않는 이상 운영체제 설치 시부터 지속적으로 로그를 저장
사용자의 행위를 파악하거나 정보 유출 사건 분석에 큰 역할을 함
%UserProfile%\AppData\Roaming\Microsoft\Windows\Recent
%UserProfile%\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations
%UserProfile%\AppData\Roaming\Microsoft\Windows\Recent\CustomDestinations
점프리스트 파일은 '최근 문서'의 하위 폴더에 2가지 형태로 저장됨. 폴더의 이름은 Automatic Destinations와 CustomDestinations다.
점프리스트는 모두 16자리 16진수 형식의 값의 이름(응용프로그램 별로 고유 값 소유)으로 저장되며 확장자는 .automaticDestination-ms. 이 때 응용프로그램 별로 고유 값은(AppID)는 CRC-64 알고리즘에 의해 생성됨. 따라서 저장 경로가 달라지면 한 어플리케이션에 대해 여러 개의 JumpLits 파일이 생성될 수 있음.
.automaticDestinations-ms 파일 구조
automaticDestinations-ms 파일은 Microsoft CFB(Compound File Binary) 형식(OLE)을 따른다. 각 파일은 SHLLINK 스트림과 한 개의 DestList 스트림으로 구성되어 있음.
DestList 헤더는 점프리스트 파일에 대한 간략한 정보를 포함
필드 | 크기 | 설명 |
---|---|---|
Version Number | 4 바이트 | 0x00 |
Total number of current Entries | 4 바이트 | 0x04 |
Total number of pinned Entries | 4 바이트 | 0x08 |
Unknown value | 4 바이트 | 0x0C |
Last Issued Entry ID number | 8 바이트 | 0x10 |
Number of add/delete/re-open actions | 8 바이트 | 0x14 |
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 |