LoginSignup
0
0

More than 1 year has passed since last update.

メモリフォレンジックCTF「MemLabs」Lab4のWriteUp(Volatility2,3)

Posted at

はじめに

前回に続きLab4を解いていく,また使用するツールなどの備忘録を残す.
しかし,今回は問題を解く過程でVolatility2でないと詰んだので,Volatility2を使用する.

MemLabs

P.Abhiram Kumar氏が公開しているCTFスタイルでメモリフォレンジックを学ぶことができる教材で,Githubにて公開されています。

Writeup

使用したツール

  • Volatility2

問題

My system was recently compromised. The Hacker stole a lot of information but he also deleted a very important file of mine. I have no idea on how to recover it. The only evidence we have, at this point of time is this memory dump. Please help me.
Note: This challenge is composed of only 1 flag.
The flag format for this lab is: inctf{s0me_l33t_Str1ng}

最近、私のシステムが危険にさらされました。
ハッカーは多くの情報を盗んだのですが、私のとても重要なファイルも削除してしまいました。
どうやったら復元できるか分からない。
現時点での唯一の証拠は、このメモリダンプです。どうか助けてください。
注:この課題は、1つのフラグのみで構成されています。
このラボのフラグフォーマットは次のとおりです:inctf{s0me_l33t_Str1ng}。

初動調査

今回の場合,ファイルの復元がメインになるが取り敢えず,メモリダンプ取得時に起動していたプロセス情報を確認.
画像_2023-01-03_191711345.png
StikyNot.exe(PID:2432)が気になるので,調査してみる.
StikyNot.exeのバックアップファイルとしてStickyNotes.sntが 存在している可能性があるので,filescanプラグインで確認.ファイルをダンプしてみる.

$ vol3 -f MemoryDump_Lab4.raw windows.filescan | grep -i ".snt"
0x3eec02f0 100.0\Windows\System32\sysntfy.dll	216
0x3fd40910	\Users\SlimShady\AppData\Roaming\Microsoft\Sticky Notes\StickyNotes.snt	216

ダンプしたファイルには以下の記載がありました。

The clipboard plugin works well but it doesn't give the flag

クリップボードプラグインはうまく動きますが、フラグが立ちません.

特に情報はないですね.他に情報がないか探していきたいと思う.
実行結果の中からいくつか気になるファイルをピックアップして記載する.

$ vol3 -f MemoryDump_Lab4.raw windows.filescan | grep -i "Desktop"
0x3e8ad250	\Users\eminem\Desktop\galf.jpeg	216
0x3e8d19e0	\Users\eminem\Desktop\Screenshot1.png	216
0x3fc398d0	\Users\SlimShady\Desktop\Important.txt	216
0x3ebe2a20	\Users\eminem\Desktop\DumpIt\2PAC-20190629-072925.raw	216

DumpItのデータはそのままの意味と思うので,galf.jpeg,Screenshot1.png,Important.txtをダンプしてみる.
結果として,いかにもな名前のImportant.txtのダンプは失敗して,galf.jpeg,Screenshot1.pngに情報はなしでした.

$ vol3 -f MemoryDump_Lab4.raw windows.dumpfiles --physaddr 0x3e8ad250
$ vol3 -f MemoryDump_Lab4.raw windows.dumpfiles --physaddr 0x3e8d19e0
$ vol3 -f MemoryDump_Lab4.raw windows.dumpfiles --physaddr 0x3fc398d0
Volatility 3 Framework 2.4.1
Progress:  100.00		PDB scanning finished                        
Cache	FileObject	FileName	Result

Flag

ファイルの名前からもImportant.txtが今回削除されて復元が必要なファイルであると推測できるため,復元を試みる.
NTFSファイルシステムのMFTからデータ属性のデータを取得したいと思い,Volatility3でも実現可能か調べたがプラグインもなく無理そうだ...
大人しくVolatility2を使いたいと思う.

$ vol.py -f MemoryDump_Lab4.raw --profile=Win7SP1x64 mftparser | grep -i important.txt -C 20
MFT entry found at offset 0x3bd8ac00
Attribute: In Use & File
Record Number: 60583
Link count: 2

$STANDARD_INFORMATION
Creation                       Modified                       MFT Altered                    Access Date                    Type
------------------------------ ------------------------------ ------------------------------ ------------------------------ ----
2019-06-27 13:14:13 UTC+0000 2019-06-27 13:26:12 UTC+0000   2019-06-27 13:26:12 UTC+0000   2019-06-27 13:14:13 UTC+0000   Archive

$FILE_NAME
Creation                       Modified                       MFT Altered                    Access Date                    Name/Path
------------------------------ ------------------------------ ------------------------------ ------------------------------ ---------
2019-06-27 13:14:13 UTC+0000 2019-06-27 13:14:13 UTC+0000   2019-06-27 13:14:13 UTC+0000   2019-06-27 13:14:13 UTC+0000   Users\SlimShady\Desktop\IMPORT~1.TXT

$FILE_NAME
Creation                       Modified                       MFT Altered                    Access Date                    Name/Path
------------------------------ ------------------------------ ------------------------------ ------------------------------ ---------
2019-06-27 13:14:13 UTC+0000 2019-06-27 13:14:13 UTC+0000   2019-06-27 13:14:13 UTC+0000   2019-06-27 13:14:13 UTC+0000   Users\SlimShady\Desktop\Important.txt

$OBJECT_ID
Object ID: 7726a550-d498-e911-9cc1-0800275e72bc
Birth Volume ID: 80000000-b800-0000-0000-180000000100
Birth Object ID: 99000000-1800-0000-690d-0a0d0a0d0a6e
Birth Domain ID: 0d0a0d0a-0d0a-6374-0d0a-0d0a0d0a0d0a

$DATA
0000000000: 69 0d 0a 0d 0a 0d 0a 6e 0d 0a 0d 0a 0d 0a 63 74   i......n......ct
0000000010: 0d 0a 0d 0a 0d 0a 0d 0a 66 7b 31 0d 0a 0d 0a 0d   ........f{1.....
0000000020: 0a 5f 69 73 0d 0a 0d 0a 0d 0a 5f 6e 30 74 0d 0a   ._is......_n0t..
0000000030: 0d 0a 0d 0a 0d 0a 5f 45 51 75 34 6c 0d 0a 0d 0a   ......_EQu4l....
0000000040: 0d 0a 0d 0a 5f 37 6f 5f 32 5f 62 55 74 0d 0a 0d   ...._7o_2_bUt...
0000000050: 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 5f 74 68 31 73   ..........._th1s
0000000060: 5f 64 30 73 33 6e 74 0d 0a 0d 0a 0d 0a 0d 0a 5f   _d0s3nt........_
0000000070: 6d 34 6b 65 0d 0a 0d 0a 0d 0a 5f 73 33 6e 0d 0a   m4ke......_s3n..
0000000080: 0d 0a 0d 0a 0d 0a 73 33 7d 0d 0a 0d 0a 47 6f 6f   ......s3}....Goo
0000000090: 64 20 77 6f 72 6b 20 3a 50                        d.work.:P

***************************************************************************

DATA属性に文字が出てきたので,いい感じに調整するとFlagが手に入る.
画像_2023-01-04_000759979.png

Flag
Flag
inctf{1_is_n0t_EQu4l_7o_2_bUt_th1s_d0s3nt_m4ke_s3ns3}

おまけ

galf.jpegの画像

galf.jpeg

Screenshot1.pngの画像

Screenshot1.png

MFTについて

NTFSファイルシステムにはMFTという領域が存在している.
MFTは,ボリューム全体の管理情報やボリューム内の全ファイル,フォルダのエントリや属性情報を持っている.
また,MFTは$で始まるメタファイルの群と、各ファイル/フォルダのレコード (1 KBytes 固定長) で構成されている1

複数の属性2がある中で$DATA属性には,ファイルのデータが記録されており,1レコードの上限である1KBを超えない限りファイルのデータはMFT内に保存されることになる.そのため,比較的ファイルサイズが小さい傾向のあるtxtファイルだとMFTにデータが残っていることが期待される.

より詳細に知りたい場合は,注釈1の「【図解】NTFSファイルシステムの仕組みと構造解析~MFT, 拡張属性, 代替データストリーム~」を読むと理解しやすい.

  1. 【図解】NTFSファイルシステムの仕組みと構造解析~MFT, 拡張属性, 代替データストリーム~ 2

  2. ATTRIBUTE_LIST_ENTRY構造体

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0