Partitions/File Systems/Carving

Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!

Άλλοι τρόποι υποστήριξης του HackTricks:

Διαμερίσματα

Ένας σκληρός δίσκος ή ένας δίσκος SSD μπορεί να περιέχει διαφορετικά διαμερίσματα με σκοπό τη φυσική διαχωρισμό των δεδομένων. Η ελάχιστη μονάδα ενός δίσκου είναι το sector (συνήθως αποτελείται από 512B). Έτσι, η μέγεθος κάθε διαμερίσματος πρέπει να είναι πολλαπλάσιο του μεγέθους αυτού.

MBR (Κύριο Μητρώο Εκκίνησης)

Είναι εγκατεστημένο στον πρώτο τομέα του δίσκου μετά τα 446B του κώδικα εκκίνησης. Αυτός ο τομέας είναι ουσιώδης για να υποδείξει στον Η/Υ τι και από πού πρέπει να τοποθετηθεί ένα διαμέρισμα. Επιτρέπει έως και 4 διαμερίσματα (το πολύ μόνο 1 μπορεί να είναι ενεργό/εκκινήσιμο). Ωστόσο, αν χρειάζεστε περισσότερα διαμερίσματα μπορείτε να χρησιμοποιήσετε επεκτεινόμενα διαμερίσματα. Το τελευταίο byte αυτού του πρώτου τομέα είναι η υπογραφή του εγγράφου εκκίνησης 0x55AA. Μόνο ένα διαμέρισμα μπορεί να επισημανθεί ως ενεργό. Το MBR επιτρέπει μέγιστο 2,2TB.

Από τα bytes 440 έως τα 443 του MBR μπορείτε να βρείτε τη Σφραγίδα Δίσκου των Windows (εάν χρησιμοποιείται τα Windows). Το λογικό γράμμα οδήγησης του σκληρού δίσκου εξαρτάται από τη Σφραγίδα Δίσκου των Windows. Η αλλαγή αυτής της σφραγίδας μπορεί να αποτρέψει τα Windows από την εκκίνηση (εργαλείο: Active Disk Editor).

Μορφή

OffsetΜήκοςΣτοιχείο

0 (0x00)

446(0x1BE)

Κώδικας εκκίνησης

446 (0x1BE)

16 (0x10)

Πρώτο Διαμέρισμα

462 (0x1CE)

16 (0x10)

Δεύτερο Διαμέρισμα

478 (0x1DE)

16 (0x10)

Τρίτο Διαμέρισμα

494 (0x1EE)

16 (0x10)

Τέταρτο Διαμέρισμα

510 (0x1FE)

2 (0x2)

Υπογραφή 0x55 0xAA

Μορφή Εγγραφής Διαμερίσματος

OffsetΜήκοςΣτοιχείο

0 (0x00)

1 (0x01)

Σημαία ενεργότητας (0x80 = εκκινήσιμο)

1 (0x01)

1 (0x01)

Έναρξη κεφαλής

2 (0x02)

1 (0x01)

Έναρξη τομέα (bits 0-5); ανώτερα bits του κυλίνδρου (6- 7)

3 (0x03)

1 (0x01)

Χαμηλότερα 8 bits του κυλίνδρου έναρξης

4 (0x04)

1 (0x01)

Κωδικός τύπου διαμέρισματος (0x83 = Linux)

5 (0x05)

1 (0x01)

Τέλος κεφαλής

6 (0x06)

1 (0x01)

Τέλος τομέα (bits 0-5); ανώτερα bits του κυλίνδρου (6- 7)

7 (0x07)

1 (0x01)

Χαμηλότερα 8 bits του κυλίνδρου τέλους

8 (0x08)

4 (0x04)

Τομείς πριν το διαμέρισμα (little endian)

12 (0x0C)

4 (0x04)

Τομείς στο διαμέρισμα

Για να τοποθετήσετε ένα MBR στο Linux πρέπει πρώτα να λάβετε την αρχική μετατόπιση (μπορείτε να χρησιμοποιήσετε το 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, το δεύτερο LBA 1, και ούτω καθεξής.

GPT (Πίνακας Οδηγιών Μοναδικών Αναγνωριστικών)

Ο Πίνακας Οδηγιών Μοναδικών Αναγνωριστικών, γνωστός ως GPT, προτιμάται για τις βελτιωμένες δυνατότητές του σε σύγκριση με το MBR (Master Boot Record). Διακριτικό για το παγκοσμίως μοναδικό αναγνωριστικό για τμήματα, ο GPT ξεχωρίζει με διάφορους τρόπους:

  • Τοποθεσία και Μέγεθος: Τόσο ο GPT όσο και το MBR ξεκινούν από το τομέα 0. Ωστόσο, ο GPT λειτουργεί με 64 bits, αντίθετα με τα 32 bits του MBR.

  • Όρια Τμημάτων: Ο GPT υποστηρίζει έως και 128 τμήματα σε συστήματα Windows και φιλοξενεί έως και 9,4ΖΒ δεδομένων.

  • Ονόματα Τμημάτων: Προσφέρει τη δυνατότητα να ονομάζετε τμήματα με έως και 36 χαρακτήρες Unicode.

Ανθεκτικότητα Δεδομένων και Ανάκτηση:

  • Επαναληπτικότητα: Αντίθετα με το MBR, ο GPT δεν περιορίζει την διαίρεση σε τμήματα και δεδομένα εκκίνησης σε ένα μόνο σημείο. Αντιγράφει αυτά τα δεδομένα σε όλο το δίσκο, βελτιώνοντας την ακεραιότητα και την ανθεκτικότητα των δεδομένων.

  • Έλεγχος Κυκλικής Επανάληψης (CRC): Ο GPT χρησιμοποιεί το CRC για να εξασφαλίσει την ακεραιότητα των δεδομένων. Παρακολουθεί ενεργά τη διάβρωση δεδομένων και, όταν ανιχνευθεί, ο GPT προσπαθεί να ανακτήσει τα δεδομένα από άλλη τοποθεσία στο δίσκο.

Προστατευτικό MBR (LBA0):

  • Ο GPT διατηρεί την συμβατότητα προς τα πίσω μέσω ενός προστατευτικού MBR. Αυτό το χαρακτηριστικό βρίσκεται στον χώρο του παλαιού MBR αλλά σχεδιάστηκε για να αποτρέπει τις παλαιότερες εργαλειοθήκες που βασίζονται στο MBR από το να αντικαταστήσουν κατά λάθος τους δίσκους GPT, προστατεύοντας έτσι την ακεραιότητα των δεδομένων στους δίσκους μορφοποιημένους με GPT.

Υβριδικό MBR (LBA 0 + GPT)

Από τη Wikipedia

Σε λειτουργικά συστήματα που υποστηρίζουν την εκκίνηση βασισμένη σε GPT μέσω υπηρεσιών BIOS αντί για EFI, ο πρώτος τομέας ενδέχεται να χρησιμοποιείται επίσης για την αποθήκευση του πρώτου σταδίου του κώδικα εκκίνησης του φορτωτή, αλλά τροποποιημένος για να αναγνωρίζει τμήματα GPT. Ο φορτωτής στο MBR δεν πρέπει να υποθέτει μέγεθος τομέα 512 bytes.

Κεφαλίδα πίνακα τμημάτων (LBA 1)

Από τη Wikipedia

Η κεφαλίδα του πίνακα τμημάτων καθορίζει τα χρήσιμα τμήματα στο δίσκο. Ορίζει επίσης τον αριθμό και το μέγεθος των καταχωρήσεων τμημάτων που αποτελούν τον πίνακα τμημάτων (οφσετ 80 και 84 στον πίνακα).

ΟφσετΜήκοςΠεριεχόμενα

0 (0x00)

8 bytes

Υπογραφή ("EFI PART", 45h 46h 49h 20h 50h 41h 52h 54h ή 0x5452415020494645ULL σε μικρότερα μηχανήματα)

8 (0x08)

4 bytes

Αναθεώρηση 1.0 (00h 00h 01h 00h) για UEFI 2.8

12 (0x0C)

4 bytes

Μέγεθος κεφαλίδας σε μικρότερη λειτουργία (σε bytes, συνήθως 5Ch 00h 00h 00h ή 92 bytes)

16 (0x10)

4 bytes

CRC32 της κεφαλίδας (οφσετ +0 μέχρι μέγεθος κεφαλίδας) σε μικρότερη λειτουργία, με αυτό το πεδίο να μηδενίζεται κατά την υπολογιστική διαδικασία

20 (0x14)

4 bytes

Κρατούμενο; πρέπει να είναι μηδέν

24 (0x18)

8 bytes

Τρέχον LBA (τοποθεσία αυτού του αντίγραφου κεφαλίδας)

32 (0x20)

8 bytes

Αντίγραφο LBA (τοποθεσία του άλλου αντίγραφου κεφαλίδας)

40 (0x28)

8 bytes

Πρώτο χρήσιμο LBA για τμήματα (τελευταίο LBA πρωτεύοντος πίνακα + 1)

48 (0x30)

8 bytes

Τελευταίο χρήσιμο LBA (πρώτο LBA δευτερεύοντος πίνακα − 1)

56 (0x38)

16 bytes

GUID δίσκου σε μικτή λειτουργία

72 (0x48)

8 bytes

Έναρξη LBA ενός πίνακα καταχωρήσεων τμημάτων (πάντα 2 στον πρωτεύον αντίγραφο)

80 (0x50)

4 bytes

Αριθμός καταχωρήσεων τμημάτων στον πίνακα

84 (0x54)

4 bytes

Μέγεθος μιας μεμονωμένης καταχώρησης τμήματος (συνήθως 80h ή 128)

88 (0x58)

4 bytes

CRC32 του πίνακα καταχωρήσεων τμημάτων σε μικρότερη λειτουργία

92 (0x5C)

*

Κρατούμενο; πρέπει να είναι μηδέν για το υπόλοιπο του τομέα (420 bytes για μέγεθος τομέα 512 bytes; αλλά μπορεί να είναι περισσότερο με μεγαλύτερα μεγέθη τομέων)

Καταχωρήσεις τμημάτων (LBA 2–33)

Μορφή καταχώρησης τμήματος GUID

Οφσετ

Μήκος

Περιεχόμενα

0 (0x00)

16 bytes

Οδηγός τύπου τμήματος GUID (μικτή λειτουργία)

16 (0x10)

16 bytes

Μοναδικός οδηγός τμήματος (μικτή λειτουργία)

32 (0x20)

8 bytes

Πρώτο LBA (little endian)

40 (0x28)

8 bytes

Τελευταίο LBA (συμπεριλαμβανομένου, συνήθως περιττό)

48 (0x30)

8 bytes

Σημαίες χαρακτηριστικών (π.χ. το bit 60 υποδηλώνει μόνο για ανάγνωση)

56 (0x38)

72 bytes

Όνομα τμήματος (36 UTF-16LE μονάδες κώδικα)

**

Συστήματα Αρχείων

Λίστα Συστημάτων Αρχείων 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 (File Allocation Table) σύστημα αρχείων σχεδιάστηκε γύρω από τον πυρήνα του, τον πίνακα εκχώρησης αρχείων, που βρίσκεται στην αρχή του όγκου. Αυτό το σύστημα προστατεύει τα δεδομένα διατηρώντας δύο αντίγραφα του πίνακα, εξασφαλίζοντας την ακεραιότητα των δεδομένων ακόμη και αν ένα από αυτά καταστραφεί. Ο πίνακας, μαζί με τον ριζικό φάκελο, πρέπει να βρίσκονται σε μια σταθερή τοποθεσία, η οποία είναι κρίσιμη για τη διαδικασία εκκίνησης του συστήματος.

Η βασική μονάδα αποθήκευσης του συστήματος αρχείων είναι ένα cluster, συνήθως 512B, που αποτελείται από πολλούς τομείς. Το FAT έχει εξελιχθεί μέσα από τις εκδόσεις:

  • FAT12, υποστηρίζοντας διευθύνσεις cluster 12-bit και χειριζόμενος έως 4078 clusters (4084 με UNIX).

  • FAT16, ενισχύοντας σε διευθύνσεις 16-bit, επομένως φιλοξενεί έως 65,517 clusters.

  • FAT32, προχωρώντας περαιτέρω με διευθύνσεις 32-bit, επιτρέποντας εντυπωσιακά 268,435,456 clusters ανά όγκο.

Ένα σημαντικό περιορισμό σε όλες τις εκδόσεις FAT είναι το μέγιστο μέγεθος αρχείου 4GB, που επιβάλλεται από το πεδίο 32-bit που χρησιμοποιείται για την αποθήκευση του μεγέθους του αρχείου.

Κύρια στοιχεία του ριζικού καταλόγου, ιδιαίτερα για FAT12 και FAT16, περιλαμβάνουν:

  • Όνομα Αρχείου/Φακέλου (έως 8 χαρακτήρες)

  • Χαρακτηριστικά

  • Ημερομηνίες Δημιουργίας, Τροποποίησης και Τελευταίας Πρόσβασης

  • Διεύθυνση Πίνακα FAT (που υποδεικνύει το cluster έναρξης του αρχείου)

  • Μέγεθος Αρχείου

EXT

Το Ext2 είναι το πιο κοινό σύστημα αρχείων για μη-καταγραφή διαμερίσματα (διαμερίσματα που δεν αλλάζουν πολύ) όπως το διαμέρισμα εκκίνησης. Τα Ext3/4 είναι καταγραφικά και χρησιμοποιούνται συνήθως για τα υπόλοιπα διαμερίσματα.

Μεταδεδομένα

Κάποια αρχεία περιέχουν μεταδεδομένα. Αυτές οι πληροφορίες αφορούν το περιεχόμενο του αρχείου το οποίο μερικές φορές μπορεί να είναι ενδιαφέρον για έναν αναλυτή καθώς ανάλογα με τον τύπο του αρχείου, μπορεί να περιέχει πληροφορίες όπως:

  • Τίτλος

  • Έκδοση MS Office που χρησιμοποιήθηκε

  • Δημιουργός

  • Ημερομηνίες δημιουργίας και τελευταίας τροποποίησης

  • Μοντέλο της κάμερας

  • Γεωγραφικές συντεταγμένες

  • Πληροφορίες εικόνας

Μπορείτε να χρησιμοποιήσετε εργαλεία όπως το exiftool και το Metadiver για να λάβετε τα μεταδεδομένα ενός αρχείου.

Ανάκτηση Διαγραμμένων Αρχείων

Καταγεγραμμένα Διαγραμμένα Αρχεία

Όπως είδαμε προηγουμένως, υπάρχουν αρκετά μέρη όπου το αρχείο εξακολουθεί να αποθηκεύεται ακόμα και μετά την "διαγραφή" του. Αυτό συμβαίνει επειδή συνήθως η διαγραφή ενός αρχείου από ένα σύστημα αρχείων απλώς το επισημαίνει ως διαγεγραμμένο αλλά τα δεδομένα δεν αγγίζονται. Έπειτα, είναι δυνατόν να ελεγχθούν τα μητρώα των αρχείων (όπως ο MFT) και να βρεθούν τα διαγεγραμμένα αρχεία.

Επίσης, το λειτουργικό σύστημα συνήθως αποθηκεύει πολλές πληροφορίες σχετικά με τις αλλαγές στο σύστημα αρχείων και τα αντίγραφα ασφαλείας, οπότε είναι δυνατόν να προσπαθήσετε να τα χρησιμοποιήσετε για να ανακτήσετε το αρχείο ή τόσες πληροφορίες όσο είναι δυνατόν.

pageFile/Data Carving & Recovery Tools

Ανάγλυφο Αρχείων

Το ανάγλυφο αρχείων είναι μια τεχνική που προσπαθεί να βρει αρχεία στο μεγάλο όγκο δεδομένων. Υπάρχουν 3 κύριοι τρόποι λειτουργίας εργαλείων όπως αυτά: Βασισμένοι στους τίτλους και τους υποσέντρους των τύπων αρχείων, βασισμένοι στις δομές των τύπων αρχείων και βασισμένοι στο περιεχόμενο ίδιο.

Σημειώστε ότι αυτή η τεχνική δεν λειτουργεί για την ανάκτηση κομμένων αρχείων. Αν ένα αρχείο δεν αποθηκεύεται σε συνεχόμενους τομείς, τότε αυτή η τεχνική δεν θα μπορέσει να το βρει ή τουλάχιστον ένα μέρος του.

Υπάρχουν πολλά εργαλεία που μπορείτε να χρησιμοποιήσετε για το ανάγλυφο αρχείων δείχνοντας τους τύπους αρχείων που θέλετε να αναζητήσετε

pageFile/Data Carving & Recovery Tools

Ανάγλυφο Ροής Δεδομένων

Το Ανάγλυφο Ροής Δεδομένων είναι παρόμοιο με το Ανάγλυφο Αρχείων αλλά αντί να αναζητά ολοκληρωμένα αρχεία, αναζητά ενδιαφέρουσες αποσπάσματα πληροφοριών. Για παράδειγμα, αντί να αναζητά ένα ολόκληρο αρχείο που περιέχει καταγεγραμμένες διευθύνσεις URL, αυτή η τεχνική θα αναζητήσει τις διευθύνσεις URL.

pageFile/Data Carving & Recovery Tools

Ασφαλής Διαγραφή

Φυσικά, υπάρχουν τρόποι για τη "ασφαλή" διαγραφή αρχείων και μέρους των καταγραφών σχετικά με αυτά. Για παράδειγμα, είναι δυνατόν να αντικαταστήσετε το περιεχόμενο ενός αρχείου με ανούσια δεδομένα πολλές φορές, και στη συνέχεια να αφαιρέσετε τις καταγραφές από το $MFT και το $LOGFILE σχετικά με το αρχείο, και να αφαιρέσετε τις Αντιγραφές Σκιών του Δίσκου. Μπορεί να παρατηρήσετε ότι ακόμα και εκτελώντας αυτήν την ενέργεια ενδέχεται να υπάρχουν **άλλα μέρη όπου η ύπαρξη του αρχείου εξακολουθεί να κ

Last updated