Skip to main content
  1. Concetti/

Magic Bytes

·2 mins
Alessio Barnini
Author
Alessio Barnini
Table of Contents

Cos'è
#

I Magic Bytes sono sequenze di byte posizionate all'inizio di un file (nell'header) che permettono al sistema operativo e ai software di identificarne il tipo reale, indipendentemente dall'estensione.

Come funziona
#

Il sistema operativo (o strumenti come file) legge i primi byte del file e li confronta con un database di "firme" note.

    FILE REALE (.jpg camuffato)          PROCESSO DI ANALISI
    +--------------------------+        +--------------------------+
    | 7F 45 4C 46 ...          | -----> | Lettura primi 4 byte     |
    +--------------------------+        | Match: 7F454C46 = ELF    |
                                        +------------+-------------+
                                                     |
                                                     v
                                            RISULTATO: Eseguibile Linux
                                            (Non è una foto!)

Immaginiamo di guardare l'inizio di un file immagine PNG tramite un editor esadecimale:

    OFFSET (Posizione)    HEXADECIMAL (Magic Bytes)       ASCII
    ------------------    -------------------------       -----
    00000000:             89 50 4E 47 0D 0A 1A 0A         .PNG....
                          ^--- FIRMA PNG ---^

🛠️ Firme Comuni da Memorizzare
#

Ecco alcuni esempi di firme che incontrerai spesso nelle CTF e nel lavoro reale:

Formato FileEstensioneMagic Bytes (Hex)Traduzione ASCII
Eseguibile Linux.elf7F 45 4C 46.ELF
Immagine JPEG.jpgFF D8 FF(Variabile)
Archivio ZIP.zip50 4B 03 04PK..
Documento PDF.pdf25 50 44 46%PDF

Perché è importante per il Blue Team
#

  1. Rilevamento Malware: Un attaccante potrebbe inviare un file malevolo rinominato in vacanza.jpg. Un sistema di difesa che controlla i Magic Bytes vedrà che inizia con 7F 45 4C 46 e capirà che si tratta di un eseguibile, bloccandolo 🛡️.

  2. Data Recovery: Se un file system è corrotto e i nomi dei file sono persi, i software di recupero scansionano il disco cercando queste firme per ricostruire i file originali.

Dove l'ho incontrato
#

  • bandit-12 — Abbiamo usato il comando file per identificare i vari strati di compressione.

Collegato a
#

  • system — Il comando principale per leggerli.
  • xxd — Per visualizzarli manualmente in esadecimale.
  • forensics — Categoria.

Related