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진수이다.
가장 상위의 BagMRU는 Desktop을 의미한다.
그러니까, 바탕화면 상의 이 여러 폴더들이 BagMRU 하위에 저장되어있다는 뜻이다.
또 Hex 값을 살펴본다면 What to do name 이라는 폴더의 이름을 확인할 수 있다.
각 Hex값이 정확하게 의미하는 바는 다음과 같다. 일단 구조는 Block + 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 순으로 집어넣으면된다.