Cosa fa#
Determina il tipo di contenuto di un file esaminando la sua struttura interna (Magic Bytes / Magic Numbers), ignorando completamente l'estensione. È uno strumento critico per distinguere file di testo, binari, script o malware mascherati.
Filosofia Linux: "Everything is a file"#
In Linux l'estensione (es. .txt, .jpg) è solo una scorciatoia per gli umani. Il sistema operativo e i tool di sicurezza si fidano solo dei Magic Bytes, ovvero i primi byte del file che ne dichiarano la vera natura.
Sintassi#
file [opzioni] nomefile
Comandi essenziali#
| Comando | Flag | Cosa fa |
|---|---|---|
file segreto | — | Mostra la natura del file "segreto". |
file -b segreto | -b (brief) | Modalità breve: non ripete il nome del file nell'output. |
file -i segreto | -i (mime) | Mostra il tipo MIME (es. text/plain). |
file -L link | -L (deref) | Segue i link simbolici e analizza il file originale. |
file -- ./* | -- | Analizza tutto nella cartella, gestendo i nomi che iniziano con -. |
Analisi Ricorsiva (Massiva)#
Quando devi analizzare centinaia di file in sottocartelle diverse, la combinazione con find è lo standard professionale:
# Cerca tutti i file (-type f) ed esegue il comando file su ognuno
find . -type f -exec file {} +{}: Viene sostituito dai nomi dei file trovati.+: Ottimizza l'esecuzione passando più file contemporaneamente al comandofile(molto più veloce di;).
Scenario Reale (Blue Team / DFIR)#
Durante l'analisi di un incidente, trovi un file chiamato immagine.png. L'estensione suggerisce una foto, ma il comando file immagine.png restituisce: ELF 64-bit LSB executable. Hai appena scoperto un malware che tenta di nascondersi alla vista dell'utente.
Dove l'ho usato#
- bandit-04 — Per distinguere l'unico file leggibile (
ASCII text) in mezzo a molti file binari classificati comedata.
Note personali#
Ricorda: Se il terminale "impazzisce" con caratteri strani dopo aver visualizzato un file, probabilmente hai usato
catsu un binario. Usa il comandoresetper ripristinare la sessione.


