디지털 포렌식 #44 (Shellbag)

0

디지털포렌식

목록 보기
109/115

Shellbags이란 사용자가 Local / Network 환경에서 접근한 "폴더"의 정보들을 레지스트리에 기록하는, Registry Shellbag의 하위 키를 의미한다.

사용자가 폴더에 접근했는지, 접근했다면 언제 했는지(MAC Time)등에 대한 정보를 확인할 수 있다.

Windows XP / Vista / 7 ~ 에 따라 각 경로가 다르지만, 가장 최신인 Windows 10을 기준으로 살펴보자.

Shellbag은 단일 경로에 저장되지 않고 다양하게 저장된다. 또, 경로를 보면 알 수 있듯이 BagMRU와 Bags로 구분할 수 있다.

그 중 포렌식적으로 의미있는 정보는 BagMRU이다.

HKCU\Software\Microsoft\Windows\Shell\Bags
HKCU\Software\Microsoft\Windows\Shell\BagMRU

하지만 위의 경로에는 더 이상 의미있는 정보가 저장되지 않는다. 실제로 확인해보면,

FF FF FF FF 만이 기록되어있음을 확인할 수 있다.
그렇다면 실제로 어디에 중요한 정보가 저장되어 있을까?

HKCU\Software\Classes\LocalSettings\Software\Microsoft\Windows\Shell\Bags
HKCU\Software\Classes\LocalSettings\Software\Microsoft\Windows\Shell\BagMRU

바로 해당 경로이다.


사진처럼 사용자가 접근했던 폴더의 정보들이 기록되었음을 확인할 수 있다.
또 Recentdocs와 같은 여타 비슷한 레지스트리처럼, MRU List를 통해 그 순서를 추정할 수 있다.

*Hex값으로 기록되어있고, 16진수이다.

  • 또한, GUI 적으로 접근하지 않고 CMD, API등의 방법들로 접근한다면 기록되지 않는다. 쉽게 말해서, 일반 사용자가 접근한 폴더들은 기록되지만 악성 프로그램등이 접근하거나 cmd의 cd 명령어를 통해 접근한 것은 기록되지 않는다는 뜻이다.

가장 상위의 BagMRU는 Desktop을 의미한다.


그러니까, 바탕화면 상의 이 여러 폴더들이 BagMRU 하위에 저장되어있다는 뜻이다.


또 Hex 값을 살펴본다면 What to do name 이라는 폴더의 이름을 확인할 수 있다.

각 Hex값이 정확하게 의미하는 바는 다음과 같다. 일단 구조는 Block + Extension Block 구조로 표현된다.

  1. Block

    Block size, File size, Modification time 이름 그대로
    (1st)Type
    (2st)Type
  2. Extension Block

Block 구조 뒤에 따라붙는 Extension Block이다.
여기서도 File name은 마찬가지로 Different size by Name length이다.

다음은 Known Folder Derived Folder Type을 확인할 수 있는 경로이다.
컴퓨터\HKEY_CURRENT_USER\SOFTWARE\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags\Number(Diff by Folder)\Shell

해당 경로의 하위 폴더에는 폴더의 타입을 나타내는 여러 GUID가 저장된다.

{0b0ba2e3-405f-415e-a6ee-cad625207853} Searches 
{0b2baaeb-0042-4dca-aa4d-3ee8648d03e5} Pictures.Library 
{0c3794f3-b545-43aa-a329-c37430c58d2a} ControlPanelAllItems 
{20338b7b-531c-4aad-8011-f5b3db2123ec} Contacts.SearchResults 
{292108be-88ab-4f33-9a26-7748e62e37ad} Videos.LibraryFolder 
{2c7bbec6-c844-4a0a-91fa-cef6f59cfda1} Printers 
{36011842-dccc-40fe-aa3d-6177ea401788} Documents.SearchResults 
{3d1d4ea2-1d8c-418a-bff8-f18370157b55} OtherUsers.SearchResults 
{3f2a72a7-99fa-4ddb-a5a8-c604edf61d6b} Music.Library 
{3f98a740-839c-4af7-8c36-5badfb33d5fd} Documents.LibraryFolder 
{4dcafe13-e6a7-4c28-be02-ca8c2126280d} Pictures.SearchResults 
{503a4e73-1734-441a-8eab-01b3f3861156} Communications.SearchResults 
{524ddb2b-2a4f-43b8-b8fe-e91ef9d8ba69} Contacts.Library 
{549461d3-eb58-4c80-ba29-f1204c4502c3} Internet
{57807898-8c4f-4462-bb63-71042380b109} Generic
{59bd6dd1-5cec-4d7e-9ad2-ecc64154418d} UsersLibraries.SearchResults 
{5c4f28b5-f869-4e84-8e60-f11db97c5cc7} Generic 
{5f4eab9a-6833-4f61-899d-31cf46979d49} Generic.Library 
{5fa96407-7e77-483c-ac93-691d05850de8} Videos 
{631958a6-ad0f-4035-a745-28ac066dc6ed} Videos.Library 
{654a1b99-8a4b-4e7b-a4e1-46378ad77a61} Contacts.LibraryFolder 
{6d9969ff-612f-48ef-9b90-853fd82e6ec2} Sync 
{6ef8b050-8a6a-4d79-8344-9dfb5cf391fb} RestrictedNonIndexed 
{71689ac1-cc88-45d0-8a22-2943c3e7dfb3} Music.SearchResults 
{7d49d726-3c21-4f05-99aa-fdc2c9474656} Documents 
{7f2f5b96-ff74-41da-afd8-1c78a5f3aea2} PublishedItems 
{7fde1a1e-8b31-49a5-93b8-6be14cfa4943} Generic.SearchResults 
{80213e82-bcfd-4c4f-8817-bb27601267a9} CompressedFolder 
{834d8a44-0974-4ed6-866e-f203d80b3810} SearchHome 
{8faf9629-1980-46ff-8023-9dceab9c3ee3} OpenSearch 
{91475fe5-586b-4eba-8d75-d17434b8cdf6} Communications 
{921c636d-9fc8-40d7-899e-0845dcd03010} PublishedItems.SearchResults 
{94d6ddcc-4a68-4175-a374-bd584a510b78} Music 
{978e0ed7-92d6-4cec-9b59-3135b9c49ccf} Music.LibraryFolder 
{982725ee-6f47-479e-b447-812bfa7d2e8f} SearchConnector 
{b337fd00-9dd5-4635-a6d4-da33fd102b7a} OtherUsers 
{b3690e58-e961-423b-b687-386ebfd83239} Pictures 
{b372207c-0011-438f-9151-098b2e36b887} FileItemAPIs
{b689b0d0-76d3-4cbb-87f7-585d0e0ce070} Games 
{c1f8339f-f312-4c97-b1c6-ecdf5910c5c0} Pictures.LibraryFolder 
{c4d98f09-6124-4fe0-9942-826416082da9} UsersLibraries 
{cd0fc69b-71e2-46e5-9690-5bcd9f57aab3} UserFiles 
{d674391b-52d9-4e07-834e-67c98610f39d} Programs 
{da3f6866-35fe-4229-821a-26553a67fc18} Generic.LibraryFolder 
{db2a5d8f-06e6-4007-aba6-af877d526ea6} AccountPictures 
{de2b70ec-9bf7-4a93-bd3d-243f7881d492} Contacts 
{de4f0660-fa10-4b8f-a494-068b20b22307} ControlPanelCategory 
{e053a11a-dced-4515-8c4e-d51ba917517b} UserFiles.SearchResults 
{ea25fbd7-3bf7-409e-b97f-3352240903f4} Videos.SearchResults 
{ef87b4cb-f2ce-4785-8658-4ca6c63e38c6} StartMenu 
{fbb3477e-c9e4-4b3b-a2ba-d3f5d3cd46f9} Documents.Library

내가 확인한 건 Generic이다.

분석을 진행해주는 도구도 있다.

그럼 진짜 이 도구대로 정보가 기록되었는지 하나씩 확인해보면서 공부한 내용이 맞나 확인해보자.

MRUList에 00이 최신으로, 도구 역시 0이 최신으로 기록되어 있다.
또 경로를 확인해보면 0\8\2\4\0으로 기록되어있는데, 그럼 각각의 이름을 살펴보자.
이름은 UTF-16으로 인코딩되어 Hex값으로 기록되어있다.


D:

D:Study


디지털포렌식 이라는 폴더의 이름이 인코딩되어 Hex로 적혀있음을 확인할 수 있다.
D:Study:디지털포렌식

D:Study:디지털포렌식:Tool

도구의 분석 결과와 일치함을 확인할 수 있다.


https://ws1004-4n6.notion.site/ShellBags-Structure-Analysis-7220089274134a16a5be91a1bc657b95

https://docs.microsoft.com/en-us/windows/win32/shell/knownfolderid

그니까, Registry에 A B 가 있다면 변환기에 B A 순으로 집어넣으면된다.

0개의 댓글