EventLogとEVTX
eventlogedit が利用されると、イベントログ内で個別のレコードが削除されます。
下記Blogでは、eventlogeditがレコードを削除する仕組み、検出ツールとサンプルのEVTXファイルが紹介されています。
サンプルEVTXファイルの内容を確認したいと思います。EVTXのファイル形式については、Windows XML Event Log (EVTX) format の資料を参考にしています。
サンプルファイル post-Security.evtx をイベントビューアで開きます。イベントビューアでは「4616(S): The system time was changed.」のレコードを確認できません。
File header
45 6C 66 46 69 6C 65 00 "ElfFile\x00" Signature
00 00 00 00 00 00 00 00 First chunk number
01 00 00 00 00 00 00 00 Last chunk number ⇒ 1
7F 00 00 00 00 00 00 00 Next record identifier ⇒ 127
80 00 00 00 Header size ⇒ 128
01 00 Minor version
03 00 Major version
00 10 Header block size(or chunk data offset) ⇒ 4096
02 00 Number of chunks ⇒ 2
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 Unknown (Empty values)
00 00 97 1B File flags
1A 82 44 3F Checksum
Chunk header(Chunk 1)Size 512
45 6C 66 43 68 6E 6B 00 "ElfChnk\x00" Signature
01 00 00 00 00 00 00 00 First event record number ⇒ 1
66 00 00 00 00 00 00 00 Last event record number ⇒ 102
01 00 00 00 00 00 00 00 First event record identifier ⇒ 1
66 00 00 00 00 00 00 00 Last event record identifier ⇒ 102
80 00 00 00 Header size (or offset to pointer data) ⇒ 128
A0 FA 00 00 Last event record data offset ⇒ 64,160
80 FD 00 00 Free space offset ⇒ 64,896
10 78 56 8C Event records checksum
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 Unknown (Empty values)
01 00 00 00 Unknown (flags?)
84 B9 53 5B Checksum
Chunk header(Chunk 2)Size 512
4096+65536 = 69,632
45 6C 66 43 68 6E 6B 00 "ElfChnk\x00" Signature
67 00 00 00 00 00 00 00 First event record number ⇒ 103
7E 00 00 00 00 00 00 00 Last event record number ⇒ 126
67 00 00 00 00 00 00 00 First event record identifier ⇒ 103
7E 00 00 00 00 00 00 00 Last event record identifier ⇒ 126
80 00 00 00 Header size (or offset to pointer data) ⇒ 128
28 5D 00 00 Last event record data offset ⇒ 23,848
F8 61 00 00 Free space offset ⇒ 250.080
A1 A8 17 5D Event records checksum
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 Unknown (Empty values)
01 00 00 00 Unknown (flags?)
5F 2D 86 33 Checksum
Event record ID 104
2A 2A 00 00 "\x2a\x2a\x00\x00" Signature
68 06 00 00 Size ⇒ 1,640
68 00 00 00 00 00 00 00 Event record identifier ⇒ 104
55 CB 22 91 22 74 D3 01 Written date and time ⇒ FILETIME (UTC): 12/13/2017 2:56:33 PM、FILETIME (local): 12/13/2017 11:56:33 PM
上記Size値から、レコード104は73,608~75,248の範囲だと分かります。
しかし、オフセット 74,288 には Event record ID 105 のシグネチャがあります。
この部分が削除されているレコードとなります。
2A 2A 00 00 "\x2a\x2a\x00\x00" Signature
C0 03 00 00 Size ⇒ 960
69 00 00 00 00 00 00 00 Event record identifier ⇒ 105
00 26 28 96 22 74 D3 01 ⇒ FILETIME (UTC): 12/13/2017 2:56:42 PM、FILETIME (local): 12/13/2017 11:56:42 PM
オフセット 75,248 には再び、 Event record ID 105 のシグネチャが登場します。
2A 2A 00 00 "\x2a\x2a\x00\x00" Signature
38 04 00 00 Size ⇒ 1080
69 00 00 00 00 00 00 00 Event record identifier ⇒ 105
37 B8 ED 96 22 74 D3 01 ⇒ FILETIME (UTC): 12/13/2017 2:56:43 PM、FILETIME (local): 12/13/2017 11:56:43 PM
イベントビューアでは、12/13/2017 11:56:42 PM のレコードが無い事を確認できます。
参考URL:
Windows 10 and Windows Server 2016 security auditing and monitoring reference
https://www.microsoft.com/en-us/download/details.aspx?id=52630
[MS-EVEN6]: BinXml Example Using Templates
RegistryとTransaction log files
Windows 10 環境で取得した ntuser.dat.LOG1 ファイルのデータ内容を確認します。
ファイルフォーマットについては「Windows registry file format specification」のNew format を参照しています。
ファイルの先頭 512バイトは、Base block となっており、NTUSER.DAT ファイルの一部バックアップとなっています。(部分的には異なる)
Log entries
オフセット512からLog entrieが開始されます。
48 76 4C 45 Signature ⇒ HvLE
00 8E 01 00 Size ⇒ 101,888
00 00 00 00 Flags
9B 01 00 00 Sequence number
00 50 0E 00 Hive bins data size ⇒ 937,984
0D 00 00 00 Dirty pages count ⇒ 13
4E 8D E6 65 CA 45 AE 85 Hash-1
E7 5 DD 9B AE 69 9 EC 79 Hash-2
Dirty pages references
オフセット40から Dirty pages references が Dirty pages count 分(=13)続きます。
00000000 Offset ⇒ 0
00100000 Size ⇒ 4096
00000300 Offset ⇒ 196,608
00100000 Size ⇒ 4096
00600300 Offset ⇒ 221,184
00100000 Size ⇒ 4096
00300600 Offset ⇒ 405,504
00200000 Size ⇒ 8192
00C00600 Offset ⇒ 442,368
00100000 Size ⇒ 4096
00B00700 Offset ⇒ 503,808
00100000 Size ⇒ 4096
00E00700 Offset ⇒ 516,096
00100000 Size ⇒ 4096
00200800 Offset ⇒ 532,480
00100000 Size ⇒ 4096
00600B00 Offset ⇒ 745,472
00100000 Size ⇒ 4096
00000C00 Offset ⇒ 786,432
00100000 Size ⇒ 4096
00A00C00 Offset ⇒ 827,392
00800000 Size ⇒ 32768
00A00D00 Offset ⇒ 892,928
00100000 Size ⇒ 4096
00D00D00 Offset ⇒ 905,216
00400000 Size ⇒ 16,384
Dirty page
例えば、「RegistryとFile format(3)」で参照した UserInitMprLogonScript 値は NTUSER.DAT ファイル内の、Hive Bins Data のオフセット 443,304 にあります。
上記 Dirty pages reference の Offset 値から、オフセット 442,368 のDirty Page内にデータが含まれている事を確認できます。
NTUSER.DAT.LOG1 ファイル内では、Base block 512 + Log entrie 40 + Dirty pages references 104 + 4096 + 4096 + 4096 + 8192 = 21,136 からの 4096 バイトになります。
30 00 00 00 Size ⇒ 48
76 6B Signature ⇒ vk
16 00 Name length ⇒ 22
3C 00 00 00 Data size ⇒ 60
28 33 0E 00 Data offset ⇒ 930,600
01 00 00 00 Data type ⇒ REG_SZ
01 00 Flags
04 00 Spare
55736572496E69744D70724C6F676F6E5363726970746D00 ⇒ UserInitMprLogonScriptm
削除データの復元
yarp: yet another registry parser を利用すると、削除データの復元が可能です。
このツールはトランザクションログにも対応しており、オプション指定により含める・含めないを選択できます。
--deleteオプションを利用した出力結果で、削除された値を確認できました。
---
Key path: Environment
Last written timestamp (UTC): 2017-12-09 05:58:21.726800
Access bits: 2Value name: Path
Value type: REG_EXPAND_SZ
Data size: 102
Data (decoded):
%USERPROFILE%\AppData\Local\Microsoft\WindowsApps;Value name: TEMP
Value type: REG_EXPAND_SZ
Data size: 66
Data (decoded):
%USERPROFILE%\AppData\Local\TempValue name: TMP
Value type: REG_EXPAND_SZ
Data size: 66
Data (decoded):
%USERPROFILE%\AppData\Local\TempValue name: OneDrive
Value type: REG_SZ
Data size: 56
Data (decoded):
C:\Users\forensics\OneDriveAssociated deleted values below (may contain reallocated data):
Value name: UserInitMprLogonScript
Value type: REG_SZ
Data size: 60
Data (decoded):
c:\users\forensics\mrset.bat---
snip
---
Deleted values (all, may contain reallocated data):
Value name: UserInitMprLogonScript
Value type: REG_SZ
Data size: 60
Data (decoded):
c:\users\forensics\mrset.bat
素晴らしい!
参考URL:
RegistryとFile format(3)
レジストリから値を削除し、変化を確認します。
サンプルとして、HKEY_CURRENT_USER\Environment 配下にUserInitMprLogonScript値を作成します。
この値はAPT28で自動起動の手口としても利用されています。
この値のオフセット位置を確認します。
Registry Explorer の Technical Details で Relative offset を確認します。
オフセット位置は 4096+968=5064 になります。
次に、Value list cell index のオフセットを確認します。
オフセット位置は 4096+443352=447448 となります。 Value countは5ですから、5個の値があります。
NTUSER.DAT のオフセット 447448 を参照します。
E0 FF FF FF -32
C8 18 01 00 ⇒ 71880 ⇒ Path
58 19 01 00 ⇒ 72024 ⇒ TEMP
D0 19 01 00 ⇒ 72144 ⇒ TMP
B8 4D 07 00 ⇒ 478648 ⇒ OneDrive
A8 C3 06 00 ⇒ 443304 ⇒ UserInitMprLogonScript ⇒ 4096+443304=447400
A8 C3 06 00 ⇒ 443304
00 00 41 00 ⇒ 4259840
Registry Explorer では下記から確認できます。Data のオフセット位置は 4096+930600 =934696 です。
オフセット位置934696で値を確認します。
値を削除
レジストリ Environment キーからUserInitMprLogonScript値を削除します。
Registry ExplorerからNTUSER.DATを参照し、UserInitMprLogonScript値が無い事を確認します。
値を削除した後のNTUSER.DAT で、オフセット 447448 を参照します。Value list cell index の内容を確認します。 Value countは4となっています。
E0 FF FF FF
C8 18 01 00
58 19 01 00
D0 19 01 00
B8 4D 07 00
A8 C3 06 00 ⇒ 443304 ⇒ UserInitMprLogonScript ⇒ 4096+443304=447400
A8C30600
00004100
NTUSER.DAT のオフセット 447400 を確認します。
NTUSER.DAT のオフセット位置 4096+930600 =934696 で Data 内容を確認します。
削除された値を確認できました。
次はLOGファイルを確認してみたいと思います。
参考URL:
RegistryとFile format(2)
前回の続きです。
ROOTキー(nk)のサブキーを確認します。
ROOTキー配下に、サブキーは 9個あります。
ROOTキーのCELL内容から、サブキーのリストはオフセット位置 72,288(4096 + 68,192)である事を確認できます。
09 00 00 00 Number of subkeys ⇒ 9
01 00 00 00 Number if volatile subkeys ⇒ 1
60 0A 01 00 Subkey list offset ⇒ 68,192
NTUSER.DAT のオフセット 72,288 を参照します。
Hash leaf (lh)
A0 FF FF FF Cell Size ⇒ -96
6C 68 Signature ⇒ lh ⇒ Hash leaf (lh)
09 00 Number of elements ⇒ 9
78 00 00 00 Key node offset ⇒ 120
86 BC AC 05 Name hash
E8 00 00 00 Key node offset ⇒ 232
23 8E C0 55 Name hash
70 02 00 00 Key node offset ⇒ 624
B9 D7 9C BD Name hash
C8 03 00 00 Key node offset ⇒ 968
C9 CE 48 6F Name hash
28 04 00 00 Key node offset ⇒ 1,064
35 25 37 00 Name hash
20 10 01 00 Key node offset ⇒ 69,664
87 6E 02 E5 Name hash
70 03 00 00 Key node offset ⇒ 880
4B BE 5B 71 Name hash
80 04 00 00 Key node offset ⇒ 1,152
63 14 FE E9 Name hash
68 05 00 00 Key node offset ⇒ 1,384
F9 D0 41 61 Name hash
68050000F9D04161382D303332462D31
Control Panel key
サブキーを更に辿ってみます。
「Key node offset ⇒ 624」のサブキーを確認する為、オフセット 4,720(4096 + 624) を参照します。
A0 FF FF FF Cell Size ⇒ -96
6E 6B Signature ⇒ nk
20 00 Flag
EF 1B CF D2 B9 55 D3 01 ⇒ Last written timestamp ⇒ 11/4/2017 10:11:11 PM
02 00 00 00 Access bits
20 00 00 00 Parent
0F 00 00 00 Number of subkeys ⇒ 15
00 00 00 00 Number of volatile subkeys
60 1F 01 00 Subkeys list offset ⇒ 73,568
FF FF FF FF Volatile subkeys list offset
01 00 00 00 Number of key values ⇒ 1
50 81 07 00 Key values list offset ⇒ 491,856
C8 22 00 00 Key security offset ⇒ 8,904
FF FF FF FF Class name offset
1E 00 00 00 Largest subkey name length
00 00 00 00 Largest subkey class name length
38 00 00 00 Largest value name length
08 00 00 00 Largest value data size
00 00 00 00 WorkVar
0D 00 Key name length ⇒ 13
00 00 Class name length
436F6E74726F6C2050616E656C ⇒ Control Panel
000000
Key values list
値リストを確認する為、オフセット 495,952( 4096 + 491,856 )を参照します。
F8 FF FF FF Size ⇒ -8
B8 85 02 00 Key value offset ⇒ 165,304
Key value
値を確認する為、オフセット 169,400 (4096 + 165,304)を参照します。
C8 FF FF FF Size ⇒ -56
76 6B Signature
1C 00 Name length ⇒ 28
08 00 00 00 Data size ⇒ 8
F0 85 02 00 Data offset ⇒ 165,360
03 00 00 00 Data Type ⇒ REG_BINARY
01 00 Flags
0D 00 Spare
53657474696E6773457874656E73696F6E417070536E617073686F74 ⇒ SettingsExtensionAppSnapshot
656C0100
Value data
データ内容を確認する為、オフセット 139,456 (4096 + 165,360)を参照します。
F0 FF FF FF Size ⇒ -16
00 00 00 00 00 00 00 00 Data
09 04 09 04 Slack
参考URL:
RegistryとFile format(1)
レジストリのバイナリ構造について確認します。レジストリファイルの構造については、「Windows registry file format specification」の資料を参考にします。
サンプルのレジストリファイルは Windows 10 のNTUSER.DAT を利用します。
Base Block
72 65 67 66 Signature regf
0C 01 00 00 Primary sequence number
0C 01 00 00 Secondary sequence number
00 00 00 00 00 00 00 00 Last written timestamp
01 00 00 00 Major version
05 00 00 00 Minor version
00 00 00 00 File type ⇒ 0 means primary file
01 00 00 00 File format ⇒ 1 means direct memory load
20 00 00 00 Root cell offset ⇒ 32
00 50 0E 00 Hive bins data size ⇒ 937,984
01 00 00 00 Clustering factor
3F 00 5C 00 43 00 3A 00 5C 00 55 00 73 00 65 00 72 00 73 00 5C 00 66 00 6F 00 72 00 65 00 6E 00 73 00 69 00 63 00 73 00 5C 00 6E 00 74 00 75 00 73 00 65 00 72 00 2E 00 64 00 61 00 74 00 00 00 File Name
Offset 112
74 A1 A6 47 14 A5 E7 11 A9 4E EC 0D 9A 05 C8 60 RmId
74 A1 A6 47 14 A5 E7 11 A9 4E EC 0D 9A 05 C8 60 LogId
00 00 00 00 Flags
75 A1 A6 47 14 A5 E7 11 A9 4E EC 0D 9A 05 C8 60 TmId
72 6D 74 6D GUID signature ⇒ rmtm
22 CD DD 2A 10 64 D3 01 Last reorganized timestamp ⇒ 11/23/2017 4:04:32 AM
4F665267010000000000000000000000 ⇒ ???
Hive bin
68 62 69 6E Signature hbin
00 00 00 00 Offset
00 10 00 00 Size ⇒ 4096
00 00 00 00 00 00 00 00 ⇒ Reserved
00 00 00 00 00 00 00 00 ⇒ Timestamp
00 00 00 00 Spare (or MemAlloc)
Cell
A8 FF FF FF Size ⇒ -88 (negative if a cell is allocated)
6E 6B nk ⇒ Key node (nk) ⇒ Registry key node
2C 00 Flags
01 21 E3 2A 10 64 D3 01 Last written timestamp(UTC) ⇒ 11/23/2017 4:04:32 AM
02 00 00 00 Access bits
98 07 00 00 Parent
09 00 00 00 Number of subkeys ⇒ 9
01 00 00 00 Number if volatile subkeys ⇒ 1
60 0A 01 00 Subkey list offset ⇒ 68,192
68 02 00 80 Volatile subkey list offset
00 00 00 00 Number of key values
FF FF FF FF Key values list offset
50 65 00 00 Key security offset
FF FF FF FF Class name offset
2A 00 00 00 Largest subkey name length
00 00 00 00 Largest subkey class name length
00 00 00 00 Largest value name length
00 00 00 00 Largest value data size
00 00 00 00 WorkVar
04 00 Key name length
00 00 Class name length
52 4F 4F 54 00 00 00 00 ⇒ ROOT
Registry ExplorerでROOTキーのTechnical detailesを参照すれば、簡単に確認できます。
参考URL:
https://posts.specterops.io/hiding-registry-keys-with-psreflect-b18ec5ac8353
USN Journal と Timestamp
タイムスタンプを変更した場合の、USN ジャーナルの動作について確認してみます。検証環境は Windows 10 1709 です。
E:ドライブに crocodile.jpg ファイルをコピーし、USN Journal を確認します。
fsutil usn readjournal e: csv > output.csv
Autopsy で $SI と $FN 値を確認します。
次に、BulkFileChanger を利用し、タイムスタンプを変更します。今回は、2017年を1973年へ変更しています。
Autopsy で $SI と $FN を確認します。$SI のタイムスタンプが 1973年になっている事を確認できます。秒以下のタイムスタンプ精度については、完全には維持されていません。
USN Journal を確認します。Basic info change を USN 612 で確認できます。
fsutil usn readjournal e: csv > output2.csv
SetMACE
SetMace ツールを利用してタイムスタンプを変更します。変更するタイムスタンプは $SI だけとしています。
SetMace64.exe e:\crocodile.jpg -z "2000:01:01:00:00:00:789:1234" -si
Autopsy で $SI と $FN を確認します。Last User Journal Update Sequence Numberは 704 のままです。
USN Journal を確認します。
HIDDEN COBRA
US-CERT から出ているアラート「HIDDEN COBRA – North Korean Trojan: Volgmer」には関連するマルウェアとして下記レポートが含まれていますます。
https://www.us-cert.gov/sites/default/files/publications/MAR-10135536-D_WHITE_S508C.PDF より引用
When the files are decompressed, Ins.dll is installed into "%system32%\appnettimgr.dll" as a service named "appnettimgr." appnettimgr is designed to modify its file created timestamp to match that of notepad.exe."
マルウェア実行後のUSN Journal は次のようになります。
参考URL:
FileDate Changer v1.1 - Change the created/modified time of files
BulkFileChanger: Change date/time/attributes of multiple files
RegisterXLLとAutoruns
トレンドマイクロ社のブログ「ChessMaster’s New Strategy: Evolving Tools and Tactics」には下記の記述があります。
The Powershell script leverages RegisterXLL, which is a component of Excel, to load BKDR_ANEL into Excel.exe
マルウェアは Excel の RegisterXLL を利用して起動しているようです、この仕組みは「Add-In Opportunities for Office Persistence」内の XLL “Add-Ins” for Excel" の項目が参考になります。
確認できるマルウェアファイルが無いので、実際にマルウェアが動作した場合にレジストリキーへ登録されるか未確認です。
アドインがレジストリキーに登録される場合、下記レジストリキーに OPTION 値として登録されます。
HKEY_CURRENT_USER\Software\Microsoft\Office\<Version>\Excel\Options
Excel 2016 環境で XLL をアドインとして登録し、レジストリキーを確認します。OPEN 値に xll が登録されています。
Autoruns 13.80 で Office タブを確認。Option キーがチェック対象ではない為、Autoruns からは XLL の登録を確認できません。
XLL ファイルは DLL ですので、署名が無い DLL ファイルをチェックするなど、別の確認手段で発見する必要があります。
参考URL:
Execute a DLL via .xll files and the Excel.Application object's RegisterXLL() method · GitHub
GitHub - MoooKitty/xllpoc: Code Exec via Excel
Win 10 と sdelete
Windows 10 ver 1709 上での sdelete コマンドの動作について。
Sdelete コマンドについては、Kazamiya さんが「SDelete | Forensicist」に詳しく整理されていますので、そちらを参照ください。
Picturesフォルダに JPEG ファイルを置いてあります。このボリュームは NTFS でフォーマットしてあります。
JPEG 画像ファイルのメタ情報をAutopsy 4.5.0 で確認します。JPEG 画像ファイルのMFTレコード番号は 39 で、親フォルダ(Pictures)の MFT レコード番号は 43 です。
sdelete を利用して JPEG ファイルを削除します。
ファイルの削除後、E: ドライブを Autopsy で確認します。先ほどのJPEG画像ファイルは Pictures フォルダ配下ではなくroot上で発見できます。
$FN属性の Parent MFT Entry が 5 になっている事を確認できます。
sdeleteはファイル名を26回変更しますが、ファイル名変更時に親フォルダをrootに設定するようですね。
フォルダを削除
再度 JPEG 画像ファイルを配置し、Pictures フォルダの単位で削除してみます。JPEG 画像ファイルの MFT レコード番号は 39、フォルダのMFTレコード番号は 43 です。
JPEGファイルのファイル名変更されています。しかし、Picturesフォルダの名前は変更されていません。
なお、JPEGファイルのデータ内容は 0x00 となっています。
Cドライブ
C:ドライブでテストファイルを作成し、sdeleteで削除します。
ファイル名の変更は行われていません。temp フォルダ配下で削除ファイルとして確認できます。データ内容は 0x00 になっています。
参考URL:
https://jpcertcc.github.io/ToolAnalysisResultSheet_jp/details/sdelete.htm
Rundll32 と Prefetch
Rundll32.exe を利用した DLL 実行と、プリフェッチファイルの関係について確認してみます。テストした環境は Win 10 1709 Build 16299.15 です。
DLL ファイルには、Didier Stevens さんの作られた cmd.dll を利用します。
Rundll32
Windows\Prefetch フォルダ配下にある .pf ファイルは削除しておきます。念のため WinPrefetchVew でも確認しておきます。
rundll32 経由で cmd.dll を起動します。
WinPrefetchViewで RunDll32 を確認します。RunDll32 のファイルリスト内に cmd.dll の項目を確認できます。
システムを再起動した後、AppCompatCache 内で cmd.dll のレコードを確認しましたが、これは存在しませんでした。
念のため、cmd.dll のパスを変更して再度テストしましたが、AppCompatCache 内にレコードは確認できませんでした。
SHELL32
次に Shell32.dll 経由で CMD.DLL を呼び出してみます。(プリフェッチファイルは事前に削除します。)
プリフェッチファイルを確認します。
システムを再起動した後、AppCompatCache 内で cmd.dll のレコードを確認します。レコードが2件ありますが、これは念のためパスを変更した場合もテストしたものとなります。
shell32.dll 経由で cmd.dll を起動した場合、 AppCompatCache 内にレコードが残るようですね。
PowerShell
PowerShdll を利用し、Rundll32 経由で PowerShell を呼び出した場合。
rundll32.exe PowerShdll,main -w
参考URL:
pentestlab.blog
$LogFile (2) と Defrag
NTFSボリューム F: 上でデフラグを実行した場合に、$LogFile に記録される内容を確認してみます。
サンプルの画像ファイル crocodile.jpg のメタ情報を確認します。クラスタ番号 34848 からデータが配置されています。
$STANDARD_INFORMATION Attribute Values:
Flags: Archive
Owner ID: 0
Security ID: 264 (S-1-5-21-1901480256-120802936-2790681297-1000)
Created: 2017-10-29 00:28:07.050364800 (UTC)
File Modified: 2017-09-15 22:08:28.397301700 (UTC)
MFT Modified: 2017-09-15 22:08:28.397301700 (UTC)
Accessed: 2017-10-29 00:28:07.050364800 (UTC)
DataRun
デフラグを実行
F:ドライブ上で幾つかファイルを削除した後、デフラグを実行します。
デフラグ実行後の crocodile.jpg のメタ情報を確認します。新たにクラスタ番号 1992 からデータが配置されています。
また、MFT Modified のタイムスタンプはデフラグにより変化してない事を確認できます。
$STANDARD_INFORMATION Attribute Values:
Flags: Archive
Owner ID: 0
Security ID: 264 (S-1-5-21-1901480256-120802936-2790681297-1000)
Created: 2017-10-29 00:28:07.050364800 (UTC)
File Modified: 2017-09-15 22:08:28.397301700 (UTC)
MFT Modified: 2017-09-15 22:08:28.397301700 (UTC)
Accessed: 2017-10-29 00:28:07.050364800 (UTC)
DataRun
$LogFile
LogFileParser を利用して、デフラグ実行後の $LogFile ファイルをパースします。
フィルタを利用し、crocodile.jpg ファイルのレコードを表示します。
デフラグ前の DataRun値 32 78 07 20 88 00 を $LogFile で検索します。オフセット位置 4AB70 でヒットしました。この値が含まれると考えられる $LogFile のレコードオフセットは 0x0004AB08 です。
オフセット 0x0004AB08(LSN 1086817)のレコードをパースしてみます。
6195100000000000 this_lsn; ⇒ 1086817
5595100000000000 client_previous_lsn; ⇒
5595100000000000 client_undo_next_lsn;
40000000 client_data_length; ⇒ 64
0000 seq_number;
0000 client_index;
01000000 record_type;
18000000 transaction_id;
0000000000000000 reserved_or_alignment[3];
0900 redo_operation; ⇒ UpdateMappingPairs
0900 undo_operation; ⇒ UpdateMappingPairs
2800 redo_offset; ⇒ 40
1000 redo_length; ⇒ 16
3800 undo_offset;⇒ 56
0800 undo_length;⇒ 8
1800 target_attribute;
0100 lcns_to_follow;
1001 record_offset; ⇒ 272
4000 attribute_offset; ⇒ 64
0200 MFT Cluster Index
0200 alignment_or_reserved;
0D000000 Target VCN
00000000 Alignment or Reserved
0D630000 Target LCN
00000000 alignment_or_reserved1;
220001C807327806588100008AB1FFFF ⇒ redo data
3278072088000000 ⇒ undo data
上記の C807(1992)は新たに配置されたクラスタ番号のデータ部分になります。
クラスタの再配置により、クラスタ番号 1992 が長さ 1 で割り当てられた時点のデータである事を確認できます。
クラスタが徐々に割り当てられていく状況は、lf_DT_DataRuns のセル内容から確認ができます。
参考URL:
http://forensicinsight.org/wp-content/uploads/2013/06/F-INSIGHT-NTFS-Log-TrackerEnglish.pdf
https://www.sans.org/summit-archives/file/summit-archive-1493741055.pdf