Skip to main content
  1. Comandi/

File

·2 mins
Alessio Barnini
Author
Alessio Barnini
Table of Contents

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.

Tutto è un file in linux

Sintassi
#

file [opzioni] nomefile

Comandi essenziali
#

ComandoFlagCosa fa
file segretoMostra 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 comando file (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 come data.

Note personali
#

Ricorda: Se il terminale "impazzisce" con caratteri strani dopo aver visualizzato un file, probabilmente hai usato cat su un binario. Usa il comando reset per ripristinare la sessione.

Collegato a
#

  • system — categoria
  • file — categoria
  • cat — se file conferma che è testo, si usa cat per leggerlo.
  • find — per analisi massive su più cartelle.

Related