hacktricks/forensics/basic-forensic-methodology/partitions-file-systems-carving
2024-09-04 13:35:19 +00:00
..
file-data-carving-recovery-tools.md Translated ['README.md', 'crypto-and-stego/hash-length-extension-attack. 2024-09-04 13:35:19 +00:00
file-data-carving-tools.md Translated ['1911-pentesting-fox.md', '6881-udp-pentesting-bittorrent.md 2024-07-18 18:37:42 +00:00
README.md Translated ['binary-exploitation/basic-stack-binary-exploitation-methodo 2024-07-18 22:14:33 +00:00

Partitions/File Systems/Carving

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}

Partitions

Diski ngumu au SSD inaweza kuwa na sehemu tofauti kwa lengo la kutenganisha data kimwili.
Kitengo cha chini cha diski ni sehemu (ambayo kawaida ina 512B). Hivyo, kila ukubwa wa sehemu unahitaji kuwa mara kadhaa ya ukubwa huo.

MBR (master Boot Record)

Imewekwa katika sehemu ya kwanza ya diski baada ya 446B ya msimbo wa boot. Sehemu hii ni muhimu kuonyesha kwa PC ni nini na kutoka wapi sehemu inapaswa kuunganishwa.
Inaruhusu hadi sehemu 4 (kwa kiwango cha juu 1 tu inaweza kuwa hai/bootable). Hata hivyo, ikiwa unahitaji sehemu zaidi unaweza kutumia sehemu za kupanua. Byte ya mwisho ya sehemu hii ya kwanza ni saini ya boot record 0x55AA. Sehemu moja tu inaweza kuashiria kuwa hai.
MBR inaruhusu max 2.2TB.

Kutoka bytes 440 hadi 443 za MBR unaweza kupata Saini ya Disk ya Windows (ikiwa Windows inatumika). Barua ya diski ya mantiki ya diski ngumu inategemea Saini ya Disk ya Windows. Kubadilisha saini hii kunaweza kuzuia Windows kuanza (chombo: Active Disk Editor).

Format

Offset Length Item
0 (0x00) 446(0x1BE) Msimbo wa boot
446 (0x1BE) 16 (0x10) Sehemu ya Kwanza
462 (0x1CE) 16 (0x10) Sehemu ya Pili
478 (0x1DE) 16 (0x10) Sehemu ya Tatu
494 (0x1EE) 16 (0x10) Sehemu ya Nne
510 (0x1FE) 2 (0x2) Saini 0x55 0xAA

Muundo wa Rekodi ya Sehemu

Offset Length Item
0 (0x00) 1 (0x01) Bendera hai (0x80 = bootable)
1 (0x01) 1 (0x01) Kichwa cha mwanzo
2 (0x02) 1 (0x01) Sehemu ya mwanzo (bits 0-5); bits za juu za silinda (6- 7)
3 (0x03) 1 (0x01) Silinda ya mwanzo bits 8 za chini
4 (0x04) 1 (0x01) Msimbo wa aina ya sehemu (0x83 = Linux)
5 (0x05) 1 (0x01) Kichwa cha mwisho
6 (0x06) 1 (0x01) Sehemu ya mwisho (bits 0-5); bits za juu za silinda (6- 7)
7 (0x07) 1 (0x01) Silinda ya mwisho bits 8 za chini
8 (0x08) 4 (0x04) Sehemu zinazotangulia sehemu (little endian)
12 (0x0C) 4 (0x04) Sehemu katika sehemu

Ili kuunganisha MBR katika Linux unahitaji kwanza kupata offset ya mwanzo (unaweza kutumia fdisk na amri p)

Na kisha tumia msimbo ufuatao

#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 (Anwani ya block ya kimantiki)

Anwani ya block ya kimantiki (LBA) ni mpango wa kawaida unaotumika kwa kuelezea eneo la blocks za data zilizohifadhiwa kwenye vifaa vya kuhifadhi kompyuta, kwa ujumla mifumo ya kuhifadhi ya sekondari kama vile diski ngumu. LBA ni mpango wa anwani rahisi wa mstari; blocks zinapatikana kwa index ya nambari nzima, block ya kwanza ikiwa LBA 0, ya pili LBA 1, na kadhalika.

GPT (Jedwali la Partition la GUID)

Jedwali la Partition la GUID, linalojulikana kama GPT, linapendekezwa kwa uwezo wake ulioimarishwa ikilinganishwa na MBR (Rekodi ya Boot Kuu). Inajulikana kwa kitambulisho cha kipekee duniani kwa partitions, GPT inajitokeza kwa njia kadhaa:

  • Mahali na Ukubwa: GPT na MBR zote huanza kwenye sehemu 0. Hata hivyo, GPT inafanya kazi kwa 64bits, tofauti na MBR ambayo ni 32bits.
  • Mipaka ya Partition: GPT inasaidia hadi partitions 128 kwenye mifumo ya Windows na inaruhusu hadi 9.4ZB ya data.
  • Majina ya Partition: Inatoa uwezo wa kupewa majina partitions kwa hadi wahusika 36 wa Unicode.

Ustahimilivu wa Data na Urejeleaji:

  • Ukarabati: Tofauti na MBR, GPT haitoi mipangilio na data ya boot mahali pamoja. Inarudia data hii kwenye diski, ikiongeza uadilifu wa data na ustahimilivu.
  • Ukaguzi wa Ukarabati wa Mzunguko (CRC): GPT inatumia CRC kuhakikisha uadilifu wa data. Inachunguza kwa makini uharibifu wa data, na inapogundulika, GPT inajaribu kurejesha data iliyo haribika kutoka eneo lingine la diski.

MBR ya Kulinda (LBA0):

  • GPT inahifadhi ulinganifu wa nyuma kupitia MBR ya kulinda. Kipengele hiki kinapatikana katika nafasi ya MBR ya zamani lakini kimeundwa kuzuia zana za zamani za MBR zisizoe GPT disks, hivyo kulinda uadilifu wa data kwenye disks zilizofomatiwa na GPT.

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

MBR ya Mchanganyiko (LBA 0 + GPT)

Kutoka Wikipedia

Katika mifumo ya uendeshaji inayounga mkono boot ya GPT kupitia huduma za BIOS badala ya EFI, sehemu ya kwanza inaweza pia kutumika kuhifadhi hatua ya kwanza ya bootloader code, lakini imebadilishwa kutambua GPT partitions. Bootloader katika MBR haipaswi kudhani ukubwa wa sehemu kuwa 512 bytes.

Kichwa cha jedwali la partition (LBA 1)

Kutoka Wikipedia

Kichwa cha jedwali la partition kinaelezea blocks zinazoweza kutumika kwenye diski. Pia kinaelezea idadi na ukubwa wa entries za partition zinazounda jedwali la partition (offsets 80 na 84 katika jedwali).

Offset Urefu Maudhui
0 (0x00) 8 bytes Sahihi ("EFI PART", 45h 46h 49h 20h 50h 41h 52h 54h au 0x5452415020494645ULL kwenye mashine za little-endian)
8 (0x08) 4 bytes Toleo 1.0 (00h 00h 01h 00h) kwa UEFI 2.8
12 (0x0C) 4 bytes Ukubwa wa kichwa katika little endian (katika bytes, kawaida 5Ch 00h 00h 00h au 92 bytes)
16 (0x10) 4 bytes CRC32 ya kichwa (offset +0 hadi ukubwa wa kichwa) katika little endian, huku uwanja huu ukiwa na sifuri wakati wa hesabu
20 (0x14) 4 bytes Imehifadhiwa; lazima iwe sifuri
24 (0x18) 8 bytes LBA ya sasa (mahali pa nakala hii ya kichwa)
32 (0x20) 8 bytes LBA ya nakala (mahali pa nakala nyingine ya kichwa)
40 (0x28) 8 bytes LBA ya kwanza inayoweza kutumika kwa partitions (jedwali la partition la msingi LBA ya mwisho + 1)
48 (0x30) 8 bytes LBA ya mwisho inayoweza kutumika (jedwali la partition la sekondari LBA ya kwanza 1)
56 (0x38) 16 bytes Disk GUID katika mchanganyiko wa endian
72 (0x48) 8 bytes LBA ya kuanzia ya safu ya entries za partition (daima 2 katika nakala ya msingi)
80 (0x50) 4 bytes Idadi ya entries za partition katika safu
84 (0x54) 4 bytes Ukubwa wa entry moja ya partition (kawaida 80h au 128)
88 (0x58) 4 bytes CRC32 ya safu ya entries za partition katika little endian
92 (0x5C) * Imehifadhiwa; lazima iwe sifuri kwa sehemu nyingine za block (420 bytes kwa ukubwa wa sehemu 512 bytes; lakini inaweza kuwa zaidi na ukubwa wa sehemu kubwa)

Entries za Partition (LBA 233)

Muundo wa entry ya partition ya GUID
Offset Urefu Maudhui
0 (0x00) 16 bytes Aina ya partition GUID (mchanganyiko wa endian)
16 (0x10) 16 bytes GUID ya kipekee ya partition (mchanganyiko wa endian)
32 (0x20) 8 bytes LBA ya kwanza (little endian)
40 (0x28) 8 bytes LBA ya mwisho (inajumuisha, kawaida ni odd)
48 (0x30) 8 bytes Bendera za sifa (mfano, bit 60 inaashiria kusoma pekee)
56 (0x38) 72 bytes Jina la partition (wahusika 36 UTF-16LE)

Aina za Partitions

Aina zaidi za partition katika https://en.wikipedia.org/wiki/GUID_Partition_Table

Kukagua

Baada ya kuunganisha picha ya forensics na ArsenalImageMounter, unaweza kukagua sehemu ya kwanza kwa kutumia zana ya Windows Active Disk Editor. Katika picha ifuatayo MBR iligundulika kwenye sehemu 0 na kutafsiriwa:

Ikiwa ilikuwa jedwali la GPT badala ya MBR inapaswa kuonekana sahihi EFI PART katika sehemu 1 (ambayo katika picha ya awali ni tupu).

Mifumo ya Faili

Orodha ya mifumo ya faili ya 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

Mfumo wa faili wa FAT (Jedwali la Usambazaji wa Faili) umeundwa kuzunguka kipengele chake cha msingi, jedwali la usambazaji wa faili, lililopo kwenye mwanzo wa kiasi. Mfumo huu unalinda data kwa kudumisha nakala mbili za jedwali, kuhakikisha uadilifu wa data hata kama moja imeharibiwa. Jedwali, pamoja na folda ya mzizi, lazima iwe katika mahali thabiti, muhimu kwa mchakato wa kuanzisha mfumo.

Kitengo cha msingi cha kuhifadhi cha mfumo wa faili ni cluster, kawaida 512B, kinachojumuisha sekta kadhaa. FAT imeendelea kupitia matoleo:

  • FAT12, inasaidia anwani za cluster za bit 12 na kushughulikia hadi clusters 4078 (4084 na UNIX).
  • FAT16, ikiongeza hadi anwani za bit 16, hivyo inaruhusu clusters hadi 65,517.
  • FAT32, ikipiga hatua zaidi na anwani za bit 32, ikiruhusu clusters 268,435,456 kwa kiasi.

Kikwazo kikubwa katika matoleo ya FAT ni ukubwa wa faili wa juu wa 4GB, ulioanzishwa na uwanja wa bit 32 unaotumika kuhifadhi ukubwa wa faili.

Vipengele muhimu vya saraka ya mzizi, hasa kwa FAT12 na FAT16, ni pamoja na:

  • Jina la Faili/Folda (hadi wahusika 8)
  • Sifa
  • Tarehe za uundaji, mabadiliko, na ufikiaji wa mwisho
  • Anwani ya Jedwali la FAT (inaonyesha cluster ya kuanzia ya faili)
  • Ukubwa wa Faili

EXT

Ext2 ni mfumo wa faili wa kawaida kwa partitions zisizo na journaling (partitions ambazo hazibadiliki sana) kama partition ya boot. Ext3/4 ni journaling na hutumiwa kawaida kwa partitions zingine.

Metadata

Faili zingine zina metadata. Habari hii ni kuhusu maudhui ya faili ambayo wakati mwingine inaweza kuwa ya kuvutia kwa mchambuzi kwani kulingana na aina ya faili, inaweza kuwa na habari kama:

  • Kichwa
  • Toleo la MS Office lililotumika
  • Mwandishi
  • Tarehe za uundaji na mabadiliko ya mwisho
  • Mfano wa kamera
  • Koordinati za GPS
  • Habari za picha

Unaweza kutumia zana kama exiftool na Metadiver kupata metadata ya faili.

Urejeleaji wa Faili Zilizofutwa

Faili Zilizofutwa Zilizorekodiwa

Kama ilivyoonekana hapo awali kuna maeneo kadhaa ambapo faili bado imehifadhiwa baada ya "kufutwa". Hii ni kwa sababu kawaida kufutwa kwa faili kutoka mfumo wa faili kunaashiria tu kuwa imefutwa lakini data haiguswi. Hivyo, inawezekana kukagua rekodi za faili (kama MFT) na kupata faili zilizofutwa.

Pia, OS kawaida huhifadhi habari nyingi kuhusu mabadiliko ya mfumo wa faili na nakala za akiba, hivyo inawezekana kujaribu kuzitumia kurejesha faili au habari nyingi iwezekanavyo.

{% content-ref url="file-data-carving-recovery-tools.md" %} file-data-carving-recovery-tools.md {% endcontent-ref %}

Kuchonga Faili

Kuchonga faili ni mbinu inayojaribu kupata faili katika wingi wa data. Kuna njia 3 kuu ambazo zana kama hizi hufanya kazi: Kulingana na vichwa na miguu ya aina za faili, kulingana na miundo ya aina za faili na kulingana na maudhui yenyewe.

Kumbuka kwamba mbinu hii haiwezi kufanya kazi kurejesha faili zilizovunjika. Ikiwa faili haihifadhiwi katika sekta zinazofuatana, basi mbinu hii haitakuwa na uwezo wa kuipata au angalau sehemu yake.

Kuna zana kadhaa ambazo unaweza kutumia kwa kuchonga faili zikionyesha aina za faili unazotaka kutafuta.

{% content-ref url="file-data-carving-recovery-tools.md" %} file-data-carving-recovery-tools.md {% endcontent-ref %}

Kuchonga Msimu wa Data

Kuchonga Msimu wa Data ni sawa na Kuchonga Faili lakini badala ya kutafuta faili kamili, inatafuta vipande vya habari vinavyovutia.
Kwa mfano, badala ya kutafuta faili kamili inayojumuisha URLs zilizorekodiwa, mbinu hii itatafuta URLs.

{% content-ref url="file-data-carving-recovery-tools.md" %} file-data-carving-recovery-tools.md {% endcontent-ref %}

Kufuta Salama

Kwa wazi, kuna njia za "kufuta kwa usalama" faili na sehemu ya rekodi kuhusu hizo. Kwa mfano, inawezekana kuandika tena maudhui ya faili kwa data ya junk mara kadhaa, na kisha kuondoa rekodi kutoka $MFT na $LOGFILE kuhusu faili hiyo, na kuondoa Nakala za Kivuli za Kiasi.
Unaweza kugundua kwamba hata ukifanya kitendo hicho kunaweza kuwa na sehemu nyingine ambapo uwepo wa faili bado umeandikwa, na hiyo ni kweli na sehemu ya kazi ya kitaalamu ya forensics ni kuzipata.

Marejeo

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}