Shellbags란 User Registry Hive 파일 (ntuser.dat/usrclass.dat) 의 ShellBag의 하위키이며 사용자가 로컬, 네트워크 및 이동식 저장장치에서 접근한 폴더 정보가 기록되며 최초로 폴더를 열람시에 생성이 된다. 또한 폴더의 생성, 복사, 압축 프로그램에 의해서 실행되었을 경우에도 생성된다.
NTUSER.DAT는 데스크톱, Windows 네트워크 폴더, 원격 컴퓨터 및 원격 폴더에 대한 ShellBags 정보를 저장한다.
UsrClass.dat는 데스크톱, ZIP파일, 원격 폴더, 로컬 폴더, Windows 특수 폴더 및 가상 폴더에 대한 ShellBags 정보를 저장한다.
1-2. 포렌식적 의미
가. 사용자가 특정 폴더에 접근한 시간 정보 확인
나. 존재하는 폴더의 삭제/덮어쓰기에 대한 증거 추적
다. Explorer를 통한 폴더 접근에 대한 MAC 타임 추적
1-3. Shellbag & 부가정보
가. 쉘백 정보는 Bags와 BagMRU 두 가지 주요 레지스트리 키로 구성되어 있다.
나. BagMRU 키는 유사한 트리 구조를 생성하여 폴더 이름과 레코드 폴더 경로를 저장한다.
c0wb3ll 폴더의 설정 파일이다. SniffedFolderType은 폴더의 타입을 나타낸다. Shell 파일 하위에 {5C4F...}의 GUID값이 나와있을텐데 이 값은 KnownFolderDerivedFolderType 값으로 이 값이 폴더의 타입을 나타낸다. 즉 {5C4F...}가 폴더의 타입이 Generic이라고 알려주는 것이다.
모든 값들에 대해 알아내진 못했지만 간단하게 설명하자면 우리가 윈도우 탐색기에서 보는 세부정보의 목록에 대한 값인 것 같다.
ColInfo를 눌러보면 다음과 같은 헥스 값이 나올텐데 FD DF DF FD 10 00 00 00 00 00 00 00 00 00 00 00 까지는 같은 숫자를 가지는 것 같다.
지금 세부정보의 목록은 이름, 수정한 날짜, 유형, 크기, 만든 날짜로 5개이기 때문에 값이 05 00 00 00 이며다음과 같이 6개로 바꾸었을 때는 아래와 같이 06 00 00 00 이 되는 것을 볼 수 있었다.그 뒤 값이 1 증가할 때 마다 24byte 만큼의 데이터가 추가 되었는데 이 값들이 무엇을 의미하는 지는 모르겠다.
다른 부분은 05 00 00 00 부터인데 이 05의 값이 세부정보의 목록 수의 대한 값이다.
이건 아이콘 자동 정렬과 관련된 값인것 같다. \Desktop 과 \GUID의 값은 달랐으며 \Desktop의 값들에 대한 정보는 찾을 수 있었다.
키 : HKEY_CURRENT_USER \ SOFTWARE \ Microsoft \ Windows \ Shell \ Bags \ 1 \ Desktop 값 : FFlags 유형 : REG_DWORD 데이터 :
1075839520 (아이콘 자동 정렬 = OFF 및 그리드에 아이콘 정렬 = OFF) 1075839521 (아이콘 자동 정렬 = ON 및 아이콘을 그리드에 정렬 = OFF) 1075839524 (아이콘 자동 정렬 = OFF 및 아이콘을 그리드에 정렬 = ON) 1075839525 (자동 정렬 아이콘 = ON 및 그리드에 아이콘 정렬 = ON)
GroupByDirection
이 값은 뷴류 방법이 켜져 있을 때의 오름차순 내림차순에 대한 값이었다. 분류방법이 꺼져있었을 때에는 1의 값을 가지고 있었다.
1 : 오름차순
ffffffff : 내림차순
GroupByKey:FMTID
다음과 같이 분류방법에 대해 바꿀 때만 값이 바뀌었다.
정확하진 않지만 분류방법이 있을때는 아래와 같은 값을 가졌었다.
또한 분류방법이 없을 때는 아래와 같이 0000..의 값을 가졌었다.
GroupByKey:PID
위에 분류 방법에 대한 PID이며 각 방법에 따른 PID 값은 다음과 같다.CategoryGroupByKey:PID Value
이름
10
수정한 날짜
14
유형
4
크기
12
만든 날짜
15
태그
5
GroupView
이 값 또한 분류 방법을 고를 때마다 0xffffffff(4294967295) 의 값이 지정됐다.
지정 하지 않으면 아래와 같이 0000....의 값으로 바뀌었다.
IconSize
아이콘 사이즈는 이름 그대로 아이콘 사이즈에 대한 값이었다. 아이콘 값은 밑에 LogicalViewMode, Mode를 모두 살펴보고 정리하도록 하겠다.
LogicalViewMode
LogicalViewMode는 보기 방법에 따른 값이다.
대략 미리 값들만 살펴보자.2 - 타일4 - 간단히
5 - 내용
3 - 아이콘
1 - 자세히
Mode
Mode값 또한 보기 방법에 따른 값이다. LogicalViewMode와 뭐가 다른지는 모르겠다.;;
대략 값들을 살펴보자3 - 간단히6 - 타일
8 - 내용
4 - 자세히
1 - 아이콘 보기
여태 나온 IconSize, LogicalViewMode, Mode 의 값들을 정리하면 아래 표와 같다.보기IconSize(in pixels)LogicalViewModeMode
아주 큰 아이콘
256
3
1
큰 아이콘
96
3
1
보통 아이콘
48
3
1
작은 아이콘
16
3
1
간단히
16
4
3
자세히
16
1
4
타일
48
2
6
내용
32
5
8
rev
이 값은 뭔지 모르겠다... 아무리 건들여봐도 0에서 값이 변하질 않는다.
Sort
정렬 기준과 관련된 값이다.
오름차순 정렬을 하면 마지막 4byte가 01 00 00 00의 값을 가진다.
내림차순 정렬을 하면 마지막 4byte가 FF FF FF FF의 값을 가진다.
그 위에 24byte는 정렬 기준 타입(이름, 크기, 등등)과 관련된 헥스값인 것 같다. (정확하게 파악하지 못했다.)
Vid
보기 메뉴와 관련된 값이다. 값에 따른 옵션은 다음 표와 같다.보기Vid
매우 큰 ~ 보통 아이콘
{0057D0E0-3573-11CF-AE69-08002B2E1262}
작은 아이콘
{089000C0-3573-11CF-AE69-08002B2E1262}
간단히
{0E1FA5E0-3573-11CF-AE69-08002B2E1262}
자세히
{137E7700-3573-11CF-AE69-08002B2E1262}
타일
{65F125E5-7BE1-4810-BA9D-D271C8432CE3}
내용
{30C2C434-0889-4C8D-985D-A9F71830B0A9}
Windows10 ShellbagMRU Structure
위 사진에 있는 Hex 값 Structure에 대해 분석을 할 예정이다.
우선 이 값들은 Block 구조 안에 Extension Block 구조를 가지고 있는 형식이라고 한다.
c0wb3ll폴더의 경우 위에 22byte가 Block 구조이며 그 밑에 66byte가 Extension Block 구조이다. 우선 Block 구조 부터 살펴 보도록 하자.
댓글