Skip to main content
  1. Comandi/

strings - estrae stringhe leggibili da file binari

·2 mins
Alessio Barnini
Author
Alessio Barnini
Table of Contents

Cosa fa
#

Analizza file binari o flussi di dati per estrarre e stampare sequenze di caratteri ASCII (testo leggibile) lunghe almeno 4 caratteri (default).

Sintassi
#

strings [opzioni] [file]

Visualizzazione: Il Filtro Binario 🧬
#

Immagina di passare un secchio di sabbia (file binario) attraverso un setaccio che trattiene solo le pietre preziose (testo).

       FILE BINARIO (Input)                 strings (Processo)
    +-------------------------+          +-----------------------+
    | 0x7F 0x45 0x4C 0x46 ... |          |  [ SCAN BYTES ]       |
    | 0x01 0x01 0x01 0x00 ... |  ----->  |  (Scarta i binari)    |
    | 0x50 0x41 0x53 0x53 ... |          |  (Trattiene ASCII)    |
    +-------------------------+          +-----------+-----------+
                                                     |
                                                     v
                                            [ OUTPUT TESTUALE ]
                                               "ELF"
                                               "PASS"

Comandi ed Opzioni Essenziali
#

OpzioneNomeEffetto
-a--allScansiona l'intero file, non solo le sezioni di dati.
-n [num]--bytesImposta la lunghezza minima della stringa (es. -n 10).
-t [d,o,x]--radixStampa l'offset (posizione) della stringa nel file (decimale, ottale, esadecimale).

Combinazioni da Analista SOC 🕵️‍♂️
#

# Cerca la parola "password" ignorando maiuscole/minuscole in un eseguibile
strings -a malvage.exe | grep -i "password"

# Estrae solo stringhe lunghe almeno 8 caratteri (riduce il rumore)
strings -n 8 firmware.bin

Scenario Reale: Malware Analysis
#

Un attaccante nasconde un indirizzo IP di un server C2 (Command & Control) dentro un programma apparentemente innocuo. Poiché l'IP è memorizzato come testo per connettersi ai socket, strings lo rivelerà immediatamente senza bisogno di avviare il malware in una sandbox.

Dove l'ho usato
#

  • bandit-09 — Per estrarre la password preceduta da "====" in un file binario.

Collegato a
#

  • grep — Per filtrare i risultati.
  • xxd — Per vedere anche la parte binaria/esadecimale.

Related