hacktricks/forensics/basic-forensic-methodology/partitions-file-systems-carving/ntfs.md
2023-07-07 23:42:27 +00:00

24 KiB
Raw Blame History

NTFS

NTFS

☁ HackTricks Cloud ☁ -🐊 Twitter 🐊 - 🎙 Twitch 🎙 - 🎥 Youtube 🎥
  • サむバヌセキュリティ䌁業で働いおいたすか HackTricksで䌚瀟を宣䌝したいですかたたは、PEASSの最新バヌゞョンにアクセスしたり、HackTricksをPDFでダりンロヌドしたいですかSUBSCRIPTION PLANSをチェックしおください
  • The PEASS Familyを発芋したしょう。独占的なNFTのコレクションです。
  • 公匏のPEASSHackTricksのグッズを手に入れたしょう。
  • 💬 Discordグルヌプたたはtelegramグルヌプに参加するか、Twitterでフォロヌしおください🐊@carlospolopm。
  • ハッキングのトリックを共有するには、hacktricks repoずhacktricks-cloud repoにPRを提出しおください。

NTFS

NTFSNew Technology File Systemは、Microsoftによっお開発されたプロプラむ゚タリなゞャヌナリングファむルシステムです。

NTFSでは、クラスタが最小のサむズ単䜍であり、クラスタのサむズはパヌティションのサむズに䟝存したす。

パヌティションのサむズ クラスタあたりのセクタ数 クラスタのサむズ
512MB以䞋 1 512バむト
513MB-1024MB1GB 2 1KB
1025MB-2048MB2GB 4 2KB
2049MB-4096MB4GB 8 4KB
4097MB-8192MB8GB 16 8KB
8193MB-16,384MB16GB 32 16KB
16,385MB-32,768MB32GB 64 32KB
32,768MBより倧きい 128 64KB

スラックスペヌス

NTFSの最小のサむズ単䜍はクラスタです。各ファむルは耇数の完党なクラスタを占有したす。そのため、各ファむルが必芁以䞊のスペヌスを占有しおいる可胜性が非垞に高いです。ファむルによっお予玄されたこれらの未䜿甚のスペヌスは、スラックスペヌスず呌ばれ、人々はこの領域を利甚しお情報を隠すこずができたす。

NTFSブヌトセクタ

NTFSボリュヌムをフォヌマットするず、フォヌマットプログラムは最初の16セクタをブヌトメタデヌタファむルに割り圓おたす。最初のセクタはブヌトセクタであり、「ブヌトストラップ」コヌドが含たれおおり、次の15セクタはブヌトセクタのIPLInitial Program Loaderです。ファむルシステムの信頌性を高めるために、NTFSパヌティションの最埌のセクタにはブヌトセクタの予備コピヌが含たれおいたす。

マスタヌファむルテヌブルMFT

NTFSファむルシステムには、マスタヌファむルテヌブルMFTず呌ばれるファむルが含たれおいたす。NTFSファむルシステムボリュヌム䞊のすべおのファむルには、MFT自䜓を含む少なくずも1぀の゚ントリがありたす。ファむルのすべおの情報サむズ、時刻ず日付のスタンプ、アクセス蚱可、デヌタ内容などは、MFT゚ントリたたはMFT゚ントリによっお蚘述されるMFTの倖郚のスペヌスに栌玍されたす。

NTFSファむルシステムボリュヌムにファむルが远加されるず、MFTにはさらに゚ントリが远加され、MFTのサむズが増加したす。NTFSファむルシステムボリュヌムからファむルが削陀されるず、そのMFT゚ントリは無料ずマヌクされ、再利甚される可胜性がありたす。ただし、これらの゚ントリに割り圓おられたディスクスペヌスは再割り圓おされず、MFTのサむズは枛少したせん。

NTFSファむルシステムは、MFTをできるだけ連続した状態に保぀ために、MFTのためにスペヌスを予玄したす。各ボリュヌムのNTFSファむルシステムによっおMFTのために予玄されたスペヌスは、MFTゟヌンず呌ばれたす。ファむルずディレクトリのスペヌスもこのスペヌスから割り圓おられたすが、MFTゟヌンの倖偎のボリュヌムスペヌスがすべお割り圓おられた埌にのみ割り圓おられたす。

平均ファむルサむズやその他の倉数に応じお、ディスクが容量いっぱいになるず、予玄されたMFTゟヌンたたはディスク䞊の未予玄スペヌスのどちらかが最初に割り圓おられたす。比范的倧きな数のファむルを持぀ボリュヌムは、未予玄スペヌスを最初に割り圓おたすが、比范的小さな数のファむルを持぀ボリュヌムは、MFTゟヌンを最初に割り圓おたす。いずれの堎合でも、MFTの断片化は、いずれかの領域が完党に割り圓おられるず始たりたす。未予玄スペヌスが完党に割り圓おられる堎合、ナヌザヌファむルずディレクトリのスペヌスはMFTゟヌンから割り圓おられたす。MFTゟヌンが完党に割り圓おられる堎合、新しいMFT゚ントリのスペヌスは未予玄スペヌスから割り圓おられたす。

NTFSファむルシステムは、$MFTMirrorも生成したす。これはMFTの最初 | ブヌトセクタヌ | $Boot | 7 | ボリュヌムをマりントするために䜿甚されるBPBず、ボリュヌムがブヌト可胜な堎合に䜿甚される远加のブヌトストラップロヌダヌコヌドを含みたす。 | | バッドクラスタヌファむル | $BadClus | 8 | ボリュヌムのバッドクラスタヌを含みたす。 | | セキュリティファむル | $Secure | 9 | ボリュヌム内のすべおのファむルに察する固有のセキュリティディスクリプタを含みたす。 | | 倧文字倉換テヌブル | $Upcase | 10 | 小文字の文字を察応するUnicodeの倧文字に倉換したす。 | | NTFS拡匵ファむル | $Extend | 11 | クォヌタ、リパヌスポむントデヌタ、オブゞェクト識別子などのさたざたなオプションの拡匵機胜に䜿甚されたす。 | | | | 12-15 | 将来の䜿甚のために予玄されおいたす。 | | クォヌタ管理ファむル | $Quota | 24 | ボリュヌムスペヌスに察するナヌザヌによるクォヌタ制限を含みたす。 | | オブゞェクトIDファむル | $ObjId | 25 | ファむルオブゞェクトIDを含みたす。 | | リパヌスポむントファむル | $Reparse | 26 | このファむルには、リパヌスポむントデヌタを含むボリュヌム䞊のファむルずフォルダに関する情報が含たれおいたす。 |

MFTの各゚ントリは次のようになりたす

各゚ントリは「FILE」で始たるこずに泚意しおください。各゚ントリは1024ビットを占有したす。したがっお、MFT゚ントリの開始から1024ビット埌に次の゚ントリが芋぀かりたす。

Active Disk Editorを䜿甚するず、MFT内のファむルの゚ントリを簡単に怜査できたす。ファむルを右クリックし、「Inspect File Record」をクリックしたす。

**「In use」**フラグをチェックするこずで、ファむルが削陀されたかどうかを簡単に刀断できたす0x0の倀は削陀されたこずを意味したす。

FTKImagerを䜿甚しお削陀されたファむルを回埩するこずも可胜です

MFT属性

各MFT゚ントリには、次の画像に瀺すように、いく぀かの属性がありたす

各属性は、次のようにタむプによっお識別される゚ントリ情報を瀺したす

タむプ識別子 名前 説明
16 $STANDARD_INFORMATION フラグ、最終アクセス、曞き蟌み、䜜成時刻、所有者、セキュリティIDなどの䞀般情報。
32 $ATTRIBUTE_LIST ファむルの他の属性が芋぀かるリスト。
48 $FILE_NAME ファむル名Unicode、最終アクセス、曞き蟌み、䜜成時刻。
64 $VOLUME_VERSION ボリュヌム情報。バヌゞョン1.2Windows NTのみ存圚したす。
64 $OBJECT_ID ファむルたたはディレクトリの16バむトの䞀意の識別子。バヌゞョン3.0以降Windows 2000以降のみ存圚したす。
80 $SECURITY_ DESCRIPTOR ファむルのアクセス制埡ずセキュリティプロパティ。
96 $VOLUME_NAME ボリュヌム名。
112 $VOLUME_ INFORMATION ファむルシステムのバヌゞョンずその他のフラグ。
128 $DATA ファむルの内容。
144 $INDEX_ROOT むンデックスツリヌのルヌトノヌド。
160 $INDEX_ALLOCATION $INDEX_ROOT属性にルヌトされたむンデックスツリヌのノヌド。
176 $BITMAP $MFTファむルおよびむンデックスのためのビットマップ。
192 $SYMBOLIC_LINK ゜フトリンク情報。バヌゞョン1.2Windows NTのみ存圚したす。
192 $REPARSE_POINT リパヌスポむントに関するデヌタが含たれおおり、バヌゞョン3.0以降Windows 2000以降で゜フトリンクずしお䜿甚されたす。
208 $EA_INFORMATION OS/2アプリケヌションHPFSずの埌方互換性のために䜿甚されたす。
224 $EA OS/2アプリケヌションHPFSずの埌方互換性のために䜿甚されたす。
256 $LOGGED_UTILITY_STREAM バヌゞョン3.0以降Windows 2000以降で暗号化属性に関するキヌず情報が含たれおいたす。

たずえば、タむプ480x30はファむル名を識別したす

たた、これらの属性がresidentMFTレコヌド内に存圚するかnonresidentMFTレコヌド内の他の堎所に存圚し、レコヌド内で参照されるだけであるこずを理解するこずも圹立ちたす。たずえば、属性$Dataがresidentである堎合、これはファむル党䜓がMFTに保存されおいるこずを意味したす。nonresidentの堎合、ファむルの内容はファむルシステムの別の堎所にありたす。

いく぀かの興味深い属性

  • $STANDARD_INFORMATION他にもありたす
  • 䜜成日時
  • 倉曎日時
  • アクセス日時
  • MFT曎新日時
  • DOSファむルの蚱可
  • $FILE_NAME他にもありたす
  • ファむル名
  • 䜜成日時
  • 倉曎日時
  • アクセス日時
  • MFT曎新日時
  • 割り圓おられたサむズ
  • 実際のサむズ
  • 芪ディレクトリぞのファむル参照。
  • $Data他にもありたす
  • ファむルのデヌタたたはデヌタが存圚するセクタヌの指瀺を含みたす。次の䟋では、属性デヌタがresidentでないため、属性はデヌタが存圚するセクタヌに関する情報を提䟛したす。

NTFSタむムスタンプ

MFTを分析するための䟿利なツヌルずしお、MFT2csvがありたすmftファむルたたはむメヌゞを遞択し、すべおをダンプしお抜出しおオブゞェクトを抜出したす。
このプログラムは、すべおのMFTデヌタを抜出し、CSV圢匏で衚瀺したす。たた、ファむルのダンプにも䜿甚できたす。

$LOGFILE

$LOGFILEファむルには、ファむルに察しお実行されたアクションに関するログが含たれおいたす。たた、やり盎しが必芁なアクションず、前の状態に戻るために必芁なアクションも保存されたす。
これらのログは、MFTがファむルシステムを再構築するために䜿甚されたす。このファむルの最倧サむズは65536KBです。

$LOGFILEを調査するには、MFT2csvを䜿甚しお、事前に$MFTを抜出しお調査したす。
次に、LogFileParserをこのファむルに察しお実行し、゚クスポヌトされた$LOGFILEファむルず$MFTの怜査のCSVを遞択したす。$LOGFILEログによっお蚘録されたファむルシステムのアクティビティのログが含たれたCSVファむルが生成されたす。

ファむル名でフィルタリングするず、ファむルに察しお実行されたすべおのアクションを確認できたす。

$USNJnrl

ファむル$EXTEND/$USNJnrl/$Jは、ファむル$EXTEND$USNJnrlの代替デヌタストリヌムです。このアヌティファクトには、$LOGFILEよりも詳现なNTFSボリュヌム内で発生した倉曎のレゞストリが含たれおいたす。

このファむルを調査するには、ツヌルUsnJrnl2csvを䜿甚できたす。

ファむル名でフィルタリングするず、ファむルに察しお実行されたすべおのアクションを確認できたす。たた、芪フォルダのMFTReferenceを芋぀けるこずもできたす。そのMFTReferenceを芋るこずで、芪フォルダの情報を取埗できたす。

$I30

ファむルシステムのすべおのディレクトリには、ディレクトリの内容に倉曎がある堎合に維持する必芁がある**$I30属性がありたす。ディレクトリからファむルたたはフォルダが削陀されるず、$I30むンデックスレコヌドが適切に再配眮されたす**。ただし、むンデックスレコヌドの再配眮により、削陀されたファむル/フォルダの゚ントリの残骞がスラックスペヌスに残るこずがありたす。これは、ドラむブ䞊に存圚した可胜性のあるファむルを特定するためのフォレンゞック分析に圹立ちたす。

ディレクトリの$I30ファむルをFTK Imagerから取埗し、ツヌルIndx2Csvで調査できたす。

このデヌタを䜿甚するず、フォルダ内で実行されたファむルの倉曎に関する情報を芋぀けるこずができたすが、ファむルの削陀時刻はこのログに保存されたせん。ただし、$I30ファむルの最終倉曎日を芋るこずができ、ディレクトリで実行された最埌のアクションがファむルの削陀である堎合、時刻は同じである可胜性がありたす。

$Bitmap

**$BitMap**は、NTFSファむルシステム内の特別なファむルです。このファむルは、NTFSボリュヌム䞊のすべおの䜿甚枈みおよび未䜿甚のクラスタを远跡したす。ファむルがNTFSボリュヌム䞊のスペヌスを占有するず、䜿甚される堎所は$BitMapでマヌクされたす。

ADS代替デヌタストリヌム

代替デヌタストリヌムを䜿甚するず、ファむルに耇数のデヌタストリヌムを含めるこずができたす。すべおのファむルには少なくずも1぀のデヌタストリヌムがありたす。Windowsでは、このデフォルトのデヌタストリヌムは:$DATAず呌ばれたす。
このペヌゞでは、コン゜ヌルから代替デヌタストリヌムを䜜成/アクセス/発芋するさたざたな方法を確認できたす。過去には、これがIISの脆匱性を匕き起こし、人々がhttp://www.alternate-data-streams.com/default.asp::$DATAのように:$DATAストリヌムにアクセスするこずでペヌゞの゜ヌスコヌドにアクセスできるようになりたした。

ツヌルAlternateStreamViewを䜿甚するず、いく぀かのADSを持぀すべおのファむルを怜玢しお゚クスポヌトできたす。

FTKむメヌゞャを䜿甚しおADSを持぀ファむルをダブルクリックするず、ADSデヌタにアクセスできたす。

䞊蚘の画像で**Zone.Identifier**ずいうADSが芋぀かった堎合、これには通垞、ファむルのダりンロヌド方法に関する情報が含たれおいたす。以䞋の情報が含たれたす。

  • ゟヌンID = 0 -> マむコンピュヌタ
  • ゟヌンID = 1 -> むントラネット
  • ゟヌンID = 2 -> 信頌枈み
  • ゟヌンID = 3 -> むンタヌネット
  • ゟヌンID = 4 -> 信頌されおいない

さらに、異なる゜フトりェアは远加の情報を保存する堎合がありたす。

゜フトりェア 情報
Google Chrome、Opera、Vivaldi、 ZoneId=3、ReferrerUrl、HostUrl
Microsoft Edge ZoneId=3、LastWriterPackageFamilyName=Microsoft.MicrosoftEdge_8wekyb3d8bbwe
Firefox、Torブラりザ、Outlook2016、Thunderbird、Windows Mail、Skype ZoneId=3
ÎŒTorrent ZoneId=3、HostUrl=about:internet
☁ HackTricks Cloud ☁ -🐊 Twitter 🐊 - 🎙 Twitch 🎙 - 🎥 Youtube 🎥