Shellbagsについて
ShellBagsって
ShellBags は、WindowsのExplorerで2度目以降にフォルダーを開いた際、前回と同じ状態で利用できるよう、フォルダーのウィンドウサイズ、表示レイアウト、表示位置などの情報を記録する仕組みのこと。
ShellBagsの情報自体はレジストリに保存されている。ShellBagsの情報は、そのフォルダが削除された後も残るので、フォレンジックスの際に使用されることも。
こちらの資料にShellBagsの詳細が述べられている。
Windows ShellBag Forensics in Depth (giac.org)
Windows8.1までの情報しかないが、レジストリの格納場所は以下になる。
NTUSER.DAT\Software\Microsoft\Windows\Shell\BagMRU
NTUSER.DAT\Software\Microsoft\Windows\Shell\Bags
UsrClass.dat\Local Settings\Software\Microsoft\Windows\Shell\BagMRU
UsrClass.dat\Local Settings\Software\Microsoft\Windows\Shell\Bags
Windowsにログインしている状態であれば、レジストリエディタから直接、レジストの内容を確認できる。ログインしていない場合、ユーザープロファイルフォルダに保存されているNTUSER.DATとUsrClass.datから確認できる。
これをメモ帳などで開くと、バイナリファイルのため、文字化けして内容が確認できない。これを閲覧するツールがいくつかある。
Regripper
Kali LinuxでRegripperというツールが使えるようなので、使ってみた。
- インストール
dpkg --add-architecture i386 && apt update && apt -y install wine32
をしてから、
sudo apt install regripper
でインストールできる。
- 起動
regripper -h
により、GUI画面が起動。
- 使い方
こちらの動画が分かりやすかった。
https://www.youtube.com/watch?v=aAzuMdis0uo
Hive File: .datファイルを選択
Report File: パースした情報の書き出し先
Plugin File: 「All」ですべての情報が書き出される
余談
ShellBagsの情報が削除されるタイミングは良く分からない。先ほどの資料では、基本的に削除されないように読み取れる。
放っておくと、レジストリが肥大化する原因になる。
実際、Windowsで移動ユーザープロファイルを使用していて、ログインに時間がかかるようになり、ShellBags関連のレジストリを削除したらログイン時間が短縮されたことがあった。
ただ、削除しすぎると、デスクトップのアイコンの位置がおかしくなったりします。
このようなツールも存在する。
確かにプライバシーの観点からも、履歴の削除は出来た方が良いのかもしれない。
しばらくの後、ShellBags関連のレジストリを削除していても、ログイン時間が長くなる現象が発生した。いろいろ調べてみても分からず、最終手段として、UsrClass.datを削除してみた。
当然、問題が発生すると思いきや、ログイン時間は短縮され、他にまったく影響がなかった。例えば、ログインに20分以上かかっていた人が、3分に短縮された。
UsrClass.datをRegripperで見てみると、Windowsストアアプリの情報がたくさん(重複・過去のもの)あり、ストアアプリを使用していない環境だったので、影響がなかったと思われる。
検索すると、UsrClass.datを削除したため、Windowsストアアプリを再インストールすることになった情報があった。
そもそもUsrClass.datに保存される以下のKEYはログオフ時に削除していた。
\Local Settings\Software\Microsoft\Windows\Shell\BagMRU
\Local Settings\Software\Microsoft\Windows\Shell\Bags
UsrClass.datに保存されるShellBagsの情報の必要性が分からない。
また、Windowsストアアプリを禁止している場合、UsrClass.datの存在意義って?と考えてしまう。
マイクロソフトとしては、レジストリを消さないで、と言いますが、消さないと何ともならない状況をなんとかして欲しい。
まとめ
NTUSER.DATとUsrClass.datをregripperなどでパースすることで、ShellBagsから過去に開いたファイル・フォルダを確認できる。それ以外にも、ログイン遅延の原因や対策を見つけられることがある。