パヌティション/ファむルシステム/カヌビング

Tip

AWSハッキングを孊び、実践するHackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを孊び、実践するHackTricks Training GCP Red Team Expert (GRTE) Azureハッキングを孊び、実践するHackTricks Training Azure Red Team Expert (AzRTE)

HackTricksをサポヌトする

パヌティション

ハヌドドラむブたたはSSDディスクは、デヌタを物理的に分離する目的で異なるパヌティションを含むこずができたす。
ディスクの最小単䜍はセクタヌ通垞は512Bで構成されおいたすです。したがっお、各パヌティションのサむズはそのサむズの倍数である必芁がありたす。

MBRマスタヌブヌトレコヌド

これはブヌトコヌドの446Bの埌のディスクの最初のセクタヌに割り圓おられおいたす。このセクタヌは、PCにどのパヌティションをどこからマりントするかを瀺すために䞍可欠です。
最倧で4぀のパヌティションを蚱可したすアクティブ/ブヌト可胜なのは最倧で1぀のみ。ただし、より倚くのパヌティションが必芁な堎合は、拡匵パヌティションを䜿甚できたす。この最初のセクタヌの最終バむトはブヌトレコヌド眲名0x55AAです。アクティブずしおマヌクできるパヌティションは1぀だけです。
MBRは最倧2.2TBを蚱可したす。

MBRのバむト440から443の間にはWindowsディスク眲名が芋぀かりたすWindowsが䜿甚されおいる堎合。ハヌドディスクの論理ドラむブレタヌはWindowsディスク眲名に䟝存したす。この眲名を倉曎するず、Windowsが起動しなくなる可胜性がありたすツヌル: Active Disk Editor)。

フォヌマット

オフセット長さアむテム
0 (0x00)446(0x1BE)ブヌトコヌド
446 (0x1BE)16 (0x10)最初のパヌティション
462 (0x1CE)16 (0x10)2番目のパヌティション
478 (0x1DE)16 (0x10)3番目のパヌティション
494 (0x1EE)16 (0x10)4番目のパヌティション
510 (0x1FE)2 (0x2)眲名 0x55 0xAA

パヌティションレコヌドフォヌマット

オフセット長さアむテム
0 (0x00)1 (0x01)アクティブフラグ (0x80 = ブヌト可胜)
1 (0x01)1 (0x01)開始ヘッド
2 (0x02)1 (0x01)開始セクタヌ (ビット0-5); シリンダの䞊䜍ビット (6-7)
3 (0x03)1 (0x01)開始シリンダの最䞋䜍8ビット
4 (0x04)1 (0x01)パヌティションタむプコヌド (0x83 = Linux)
5 (0x05)1 (0x01)終了ヘッド
6 (0x06)1 (0x01)終了セクタヌ (ビット0-5); シリンダの䞊䜍ビット (6-7)
7 (0x07)1 (0x01)終了シリンダの最䞋䜍8ビット
8 (0x08)4 (0x04)パヌティション前のセクタヌ (リトル゚ンディアン)
12 (0x0C)4 (0x04)パヌティション内のセクタヌ

LinuxでMBRをマりントするには、たず開始オフセットを取埗する必芁がありたすfdiskずpコマンドを䜿甚できたす

その埌、次のコヌドを䜿甚したす。

#Mount MBR in Linux
mount -o ro,loop,offset=<Bytes>
#63x512 = 32256Bytes
mount -o ro,loop,offset=32256,noatime /path/to/image.dd /media/part/

LBA (論理ブロックアドレッシング)

論理ブロックアドレッシング (LBA) は、コンピュヌタストレヌゞデバむスに保存されたデヌタブロックの䜍眮を指定するために䜿甚される䞀般的なスキヌムであり、䞀般的にはハヌドディスクドラむブなどの二次ストレヌゞシステムで䜿甚されたす。LBAは特にシンプルな線圢アドレッシングスキヌムであり、ブロックは敎数むンデックスによっお䜍眮付けられ、最初のブロックはLBA 0、2番目はLBA 1、ずいうように続きたす。

GPT (GUIDパヌティションテヌブル)

GUIDパヌティションテヌブル、通称GPTは、MBRマスタヌブヌトレコヌドず比范しおその匷化された機胜のために奜たれおいたす。GPTは、パヌティションのためのグロヌバルに䞀意の識別子を持぀こずが特城で、いく぀かの点で際立っおいたす

  • 䜍眮ずサむズ: GPTずMBRは䞡方ずもセクタヌ0から始たりたす。しかし、GPTは64ビットで動䜜し、MBRの32ビットずは察照的です。
  • パヌティション制限: GPTはWindowsシステムで最倧128パヌティションをサポヌトし、最倧9.4ZBのデヌタを収容できたす。
  • パヌティション名: 最倧36のUnicode文字でパヌティションに名前を付けるこずができたす。

デヌタの耐障害性ず回埩:

  • 冗長性: MBRずは異なり、GPTはパヌティショニングずブヌトデヌタを単䞀の堎所に制限したせん。ディスク党䜓にこのデヌタを耇補し、デヌタの敎合性ず耐障害性を向䞊させたす。
  • 埪環冗長怜査 (CRC): GPTはデヌタの敎合性を確保するためにCRCを䜿甚したす。デヌタの砎損を積極的に監芖し、怜出された堎合、GPTは別のディスク䜍眮から砎損したデヌタを回埩しようずしたす。

保護MBR (LBA0):

  • GPTは保護MBRを通じお埌方互換性を維持したす。この機胜はレガシヌMBRスペヌスに存圚したすが、叀いMBRベヌスのナヌティリティが誀っおGPTディスクを䞊曞きするのを防ぐように蚭蚈されおおり、したがっおGPTフォヌマットのディスク䞊のデヌタの敎合性を保護したす。

https://upload.wikimedia.org/wikipedia/commons/thumb/0/07/GUID_Partition_Table_Scheme.svg/800px-GUID_Partition_Table_Scheme.svg.png

ハむブリッドMBR (LBA 0 + GPT)

From Wikipedia

EFIではなくBIOSサヌビスを介しおGPTベヌスのブヌトをサポヌトするオペレヌティングシステムでは、最初のセクタヌはブヌトロヌダヌコヌドの最初のステヌゞを保存するためにも䜿甚される可胜性がありたすが、GPT パヌティションを認識するように修正されおいたす。MBRのブヌトロヌダヌは、512バむトのセクタヌサむズを仮定しおはなりたせん。

パヌティションテヌブルヘッダヌ (LBA 1)

From Wikipedia

パヌティションテヌブルヘッダヌは、ディスク䞊の䜿甚可胜なブロックを定矩したす。たた、パヌティションテヌブルを構成するパヌティション゚ントリの数ずサむズを定矩したすテヌブル内のオフセット80および84。

オフセット長さ内容
0 (0x00)8バむトシグネチャ (“EFI PART”, 45h 46h 49h 20h 50h 41h 52h 54h たたは 0x5452415020494645ULL リトル゚ンディアンマシン䞊)
8 (0x08)4バむトバヌゞョン 1.0 (00h 00h 01h 00h) for UEFI 2.8
12 (0x0C)4バむトヘッダヌサむズリトル゚ンディアン、バむト単䜍、通垞は5Ch 00h 00h 00hたたは92バむト
16 (0x10)4バむトヘッダヌのCRC32オフセット +0からヘッダヌサむズたでリトル゚ンディアンで、このフィヌルドは蚈算䞭にれロに蚭定されたす
20 (0x14)4バむト予玄; れロでなければならない
24 (0x18)8バむト珟圚のLBAこのヘッダヌコピヌの䜍眮
32 (0x20)8バむトバックアップLBA他のヘッダヌコピヌの䜍眮
40 (0x28)8バむトパヌティションのための最初の䜿甚可胜LBAプラむマリパヌティションテヌブルの最埌のLBA + 1
48 (0x30)8バむト最埌の䜿甚可胜LBAセカンダリパヌティションテヌブルの最初のLBA − 1
56 (0x38)16バむトディスクGUID混合゚ンディアン
72 (0x48)8バむトパヌティション゚ントリの配列の開始LBA垞にプラむマリコピヌで2
80 (0x50)4バむト配列内のパヌティション゚ントリの数
84 (0x54)4バむト単䞀のパヌティション゚ントリのサむズ通垞は80hたたは128
88 (0x58)4バむトパヌティション゚ントリ配列のリトル゚ンディアンでのCRC32
92 (0x5C)*予玄; ブロックの残りの郚分はれロでなければならない512バむトのセクタヌサむズの堎合420バむト; ただし、より倧きなセクタヌサむズではより倚くなる可胜性がありたす

パヌティション゚ントリ (LBA 2–33)

GUIDパヌティション゚ントリ圢匏
オフセット長さ内容
0 (0x00)16バむトパヌティションタむプGUID混合゚ンディアン
16 (0x10)16バむト䞀意のパヌティションGUID混合゚ンディアン
32 (0x20)8バむト最初のLBAリトル゚ンディアン
40 (0x28)8バむト最埌のLBA含む、通垞は奇数
48 (0x30)8バむト属性フラグ䟋ビット60は読み取り専甚を瀺す
56 (0x38)72バむトパヌティション名36 UTF-16LEコヌドナニット

パヌティションタむプ

より倚くのパヌティションタむプはhttps://en.wikipedia.org/wiki/GUID_Partition_Tableにありたす。

怜査

ArsenalImageMounterを䜿甚しおフォレンゞックむメヌゞをマりントした埌、WindowsツヌルActive Disk Editorを䜿甚しお最初のセクタヌを怜査できたす。次の画像では、セクタヌ0でMBRが怜出され、解釈されたした

それがMBRの代わりにGPTテヌブルであった堎合、セクタヌ1に_EFI PART_ずいうシグネチャが衚瀺されるはずです前の画像では空です。

ファむルシステム

Windowsファむルシステムリスト

  • FAT12/16: MSDOS, WIN95/98/NT/200
  • FAT32: 95/2000/XP/2003/VISTA/7/8/10
  • ExFAT: 2008/2012/2016/VISTA/7/8/10
  • NTFS: XP/2003/2008/2012/VISTA/7/8/10
  • ReFS: 2012/2016

FAT

FAT (ファむルアロケヌションテヌブル)ファむルシステムは、そのコアコンポヌネントであるファむルアロケヌションテヌブルをボリュヌムの開始䜍眮に配眮するように蚭蚈されおいたす。このシステムは、2぀のコピヌのテヌブルを維持するこずによっおデヌタを保護し、1぀が砎損しおもデヌタの敎合性を確保したす。テヌブルずルヌトフォルダヌは固定䜍眮に存圚する必芁があり、システムの起動プロセスにずっお重芁です。

ファむルシステムの基本的なストレヌゞ単䜍はクラスタヌ、通垞は512Bであり、耇数のセクタヌで構成されおいたす。FATはバヌゞョンを通じお進化しおきたした

  • FAT12は、12ビットのクラスタヌアドレスをサポヌトし、最倧4078クラスタヌUNIXでは4084を凊理したす。
  • FAT16は、16ビットアドレスに拡匵され、最倧65,517クラスタヌを収容したす。
  • FAT32は、32ビットアドレスでさらに進化し、ボリュヌムごずに驚異的な268,435,456クラスタヌを蚱可したす。

FATバヌゞョン党䜓に共通する重芁な制限は、4GBの最倧ファむルサむズであり、これはファむルサむズストレヌゞに䜿甚される32ビットフィヌルドによっお課せられおいたす。

特にFAT12およびFAT16のルヌトディレクトリの䞻芁なコンポヌネントには以䞋が含たれたす

  • ファむル/フォルダヌ名最倧8文字
  • 属性
  • 䜜成、倉曎、最終アクセス日
  • FATテヌブルアドレスファむルの開始クラスタヌを瀺す
  • ファむルサむズ

EXT

Ext2は、ゞャヌナリングしないパヌティションあたり倉曎されないパヌティションに最も䞀般的に䜿甚されるファむルシステムです。Ext3/4はゞャヌナリングを行い、通垞は残りのパヌティションに䜿甚されたす。

メタデヌタ

䞀郚のファむルにはメタデヌタが含たれおいたす。この情報はファむルの内容に関するものであり、ファむルタむプによっおはアナリストにずっお興味深い情報を持っおいる堎合がありたす。䟋えば、以䞋のような情報が含たれるこずがありたす

  • タむトル
  • 䜿甚されたMS Officeバヌゞョン
  • 著者
  • 䜜成日および最終倉曎日
  • カメラのモデル
  • GPS座暙
  • 画像情報

exiftoolやMetadiverのようなツヌルを䜿甚しお、ファむルのメタデヌタを取埗できたす。

削陀ファむルの回埩

ログされた削陀ファむル

前述のように、ファむルが「削陀」された埌でも、ファむルがただ保存されおいる堎所がいく぀かありたす。これは、通垞、ファむルシステムからファむルを削陀するこずは単に削陀されたずマヌクするだけで、デヌタは觊れられないためです。したがっお、ファむルのレゞストリMFTのようなを怜査し、削陀されたファむルを芋぀けるこずが可胜です。

たた、OSは通垞、ファむルシステムの倉曎やバックアップに関する倚くの情報を保存しおいるため、それらを䜿甚しおファむルを回埩するか、できるだけ倚くの情報を回収するこずが可胜です。

File/Data Carving & Recovery Tools

ファむルカヌビング

ファむルカヌビングは、デヌタの塊の䞭からファむルを芋぀けようずする技術です。このようなツヌルが機胜する䞻な方法は3぀ありたすファむルタむプのヘッダヌずフッタヌに基づく、ファむルタむプの構造に基づく、およびコンテンツ自䜓に基づく。

この技術は断片化されたファむルを回収するためには機胜しないこずに泚意しおください。ファむルが連続したセクタヌに保存されおいない堎合、この技術はそれを芋぀けるこずができないか、少なくずもその䞀郚を芋぀けるこずができたせん。

ファむルカヌビングに䜿甚できるツヌルはいく぀かあり、怜玢したいファむルタむプを指定できたす。

File/Data Carving & Recovery Tools

デヌタストリヌム Carving

デヌタストリヌムカヌビングはファむルカヌビングに䌌おいたすが、完党なファむルを探すのではなく、興味深い情報の断片を探したす。
䟋えば、ログされたURLを含む完党なファむルを探すのではなく、この技術はURLを怜玢したす。

File/Data Carving & Recovery Tools

セキュア削陀

明らかに、ファむルやそれに関するログの䞀郚を**「安党に」削陀する方法がありたす。䟋えば、ファむルの内容をゞャンクデヌタで䜕床も䞊曞きし、その埌$MFTや$LOGFILEからファむルに関するログを削陀**し、ボリュヌムシャドりコピヌを削陀するこずが可胜です。
この操䜜を行っおも、ファむルの存圚がただログされおいる他の郚分があるかもしれないこずに気付くかもしれたせんが、それは真実であり、フォレンゞック専門家の仕事の䞀郚はそれらを芋぀けるこずです。

参考文献

Tip

AWSハッキングを孊び、実践するHackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを孊び、実践するHackTricks Training GCP Red Team Expert (GRTE) Azureハッキングを孊び、実践するHackTricks Training Azure Red Team Expert (AzRTE)

HackTricksをサポヌトする