forensic/Win Artifact

Windows Artifacts - ShellBags

SKUSTI 2022. 8. 17. 14:39

윈도우 아티팩트 Shellbags

Writer : KUSTI

환경 : Windows 10

도구 : x

디지털 포렌식 관점에서의 의미

  1. 사용자가 특정 폴더에 접근한 시간 정보 확인
  2. 사용자가 특정 폴더에 관해 덮어쓰기, 삭제에 대한 증거 수집

Shellbags 레지스트리

  1. Bags : 창 크기, 위치 및 보기보드와 같은 보기 기본설정 저장
  2. BagsMRU : 유사한 트리구조를 생성하여 폴더 이름과 레코드 폴더 저장경로를 저장

주요 레지스트리 키

  1. MRUListEX : 최근 접근한 파일을 나열하는 레지스트리 키이다. 앞에서 부터 순서대로 가장 마지막에 열었던 폴더를 의미한다. 해당 키에 들어있는 값은 NodeSlot의 값을 가진다.
  1. NodeSlot : Bags의 하위키의 이름을 갖고 있다.
  1. NodeSlots : 고정값 2
  2. COMDlg : Dialog Box를 열었을때 생성됨
  3. LegacyCOMDlg : Legacy Dialog Box를 열었을때 생성됨

추가 지식

  1. Dialog Box : 대화상자라고도 불리며 윈도우에서 일반적인 창이다.
  2. Legacy Dialog Box : Dialog Box의 구버전

주요 레지스트리 경로 :

  1. HKEY_CURRENT_USER\SOFTWARE\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags
    1. 846에서 Shell을 들어가면 KUSTI폴더의 Bags 정보를 볼 수 있다.
    2. 하위 설정파일에 SniffedFolderType이 있는데 이는 폴더타입을 나타낸다.
    3. Shell 밑에 5C4F28B5로 시작하는 값이 있는데 이는 Generic을 뜻하는 GUI 값이다.
      그 외 GUI
        {57807898-8c4f-4462-bb63-71042380b109} Generic
        {5fa96407-7e77-483c-ac93-691d05850de8} Videos 
        {b3690e58-e961-423b-b687-386ebfd83239} Pictures 
        {cd0fc69b-71e2-46e5-9690-5bcd9f57aab3} UserFiles 
        {d674391b-52d9-4e07-834e-67c98610f39d} Programs 
        {7d49d726-3c21-4f05-99aa-fdc2c9474656} Documents 
        {0b0ba2e3-405f-415e-a6ee-cad625207853} Searches 
    4. 5C4F28B5~ 하위 파일
      1. ColInfo(Dataset을 구성하는 Column information) FD DF DF FD 10 00 00 00 00 00 00 00 00 00 00 00 은 고정인것 같다. 그 뒤 4byte는 윈도우 탐색기 세부목록의 개수이다. 나의 경우 04 00 00 00으로 되어있다.
      2. FFlags
      3. GroupByDirection 오름차순과 내림차순 정렬 1 : 오름차순 / ffffffff : 내림차순
      4. 기타는 생략
  2. 밑 2에 있는 BagMRU에서 NodeSlot값을 먼저 보고 오자.
  3. HKEY_CURRENT_USER\SOFTWARE\Classes\Local Settings\Software\Microsoft\Windows\Shell\BagMRU GUI로 접근하지 않고 악성바이러스나 cd 명령어를 이용해 접근했을 경우 생기지 않는다.
    1. 바탕화면에 있는 폴더들을 표시한다.
    2. 실험삼아 바탕화면에 KUSTI라는 폴더를 만들고 접근한 후 레지스트리값을 보았을대 59 레지스터키가 생성되었다. (상위키)
    3. MRUListEX에 3b 값이 추가되었다.
    4. LegacyCOMDlg와 COMDlg가 생성될 수 있다.
    5. NodeSlot값을 확인하고 Bags으로 넘어간다. 나는 34E (846)이 나왔다.
  4. HKEY_CURRENT_USER\Microsoft\Windows\Shell\Bags
  5. HKEY_CURRENT_USER\Microsoft\Windows\Shell\BagMRU

Window 10 ShellBagsMRU Structure

  1. Block + Extension Block 형태로 되어있고 Block 구조안에 Extension Block 구조를 갖고 있다 말한다.
  2. Block

Address RangeSizeFiled nameDescription

0x00~0x01 2 BlockSize Block Size
0x02~0x03 2 Type 0x31 : Directory, 0x32 : File
0x04~0x07 4 File Size Folder : 00 00 00 00
0x08~0x0B 4 M Time M time
0x0C~0x0D 2 Type 0x10 : Directory, 0x20 : Zip File
0x0E~ . ShortName Shortname(diff)

Extension Block

Address RangeSizeFiled nameDescription

0x00~0x01 2 Extension BlockSize Block Size
0x02~0x03 2 Version Version
0x04~0x07 4 Signature be ef 00 04
0x08~0x0B 4 C Time C Time
0x0C~0x0F 4 A Time A Time
0x10~0x13 4 Identifier 0x2E : Windows 8.1, 10
0x14~0x17 4 MFT Entry Number MFT Entry Number
0x18~0x19 2 Reserved Area Reserved Area set 0x00
0x1A~0x1B 2 MFT Sequence Number MFT Sequence Number
0x1C~0x29 14 Reserved Area Reserved Area set 0x00
0x2A~0x2D 4 Check Sum file/folder Unique Number
0x2E~?? ?? File Name File name (diff)
??~??+4 4 Extension Block Offset Extension Block offset (Starting point Extention Block)

Extension Block

의문 : Extension BlockSize에서 3E가 나왔다면 Extension BlockSize의 2byte를 빼고의 size이다.

도구없이 Extension Block을 조사 할때는 Extension Block offset -> Extension Block Size -> Filename -> C,A Time을 보는게 편할것 같다.

Reference

https://c0wb3ll.tistory.com/entry/ShellBags-Windows10

 

ShellBags (Windows10)

Shellbags (Windows10) Shellbag이란? 1-1. 정의 Shellbags란 User Registry Hive 파일 (ntuser.dat/usrclass.dat) 의 ShellBag의 하위키이며 사용자가 로컬, 네트워크 및 이동식 저장장치에서 접근한 폴더 정보가..

c0wb3ll.tistory.com