Windows OS 분석 시 레지스트리 쉘백은 중요한 아티팩트이다
그 이유는, 쉘백의 생성원리를 보면 알 수 있음
쉘백은 최초로 폴더를 열람 시 생성된다
폴더를 생성하거나 복사하는 경우에도 생성되긴 하나, 그렇지 않은 경우도 있다.
레지스트리 쉘백은 Bags와 BagMRU 두 종류가 있다.
경로는 다음과 같음
HKCU\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags
HKCU\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\BagMRU
HKCU\Software\Microsoft\Windows\Shell\Bags
HKCU\Software\Microsoft\Windows\Shell\BagMRU
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Streams
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\StreamMRU
참고로 BagMRU 에는 MRUListEX 가 있는데, 이는 최근에 열람한 순서 정보를 유지하고 있다.
중요한 것은 시간 !
생각보다 간단하진 않지만 다음 사항만 기억하면 된다
레지스트리 BagMRU key 시간에는 최초로 생성될 때의 시간이 설정된다.
- 최초 생성 = 최초 폴더 열람
Bags key 시간이 바뀌는 경우
- 폴더 설정 변경 시
- 현재 폴더 생성에 의해 상위 폴더의 key 시간이 갱신됨
- 현대 폴더 열람에 의해 상위 폴더의 key 시간이 갱신됨 (폴더 열람 순서를 MRUListEx value로 관리하기 때문) -> 현재 폴더의 shellbag 시간은 하위 폴더가 열람됨에 따라 갱신될 수 있음을 의미함
여튼 '확실'한 것은 해당 시간에 폴더를 열람 (또는 생성, 복사) 했다는 사실이다
참조 - Zhu, Yuandong, Pavel Gladyshev, and Joshua James. "Using shellbag information to reconstruct user activities." digital investigation 6 (2009): S69-S77.