Skip to main content
  1. Comandi/

lsof - list open files

·3 mins
Alessio Barnini
Author
Alessio Barnini
Table of Contents

Cosa fa
#

Elenca tutti i file aperti dal sistema. Poiché in Unix "tutto è un file", questo include documenti, socket di rete, pipe, librerie e device hardware. In incident response è uno dei primi comandi da eseguire — mostra cosa sta facendo un processo in questo momento.

parti dal processo.

"Questo processo cosa ha aperto?" Ottimo quando hai già un pid o un nome processo sospetto.

Sintassi
#

lsof [opzioni] [filtro]

Comandi essenziali
#

ComandoFlagSignificato flagCosa fa
sudo lsof -i-iinternetMostra tutti i socket di rete aperti.
sudo lsof -i -P-Pno Port namesMostra porte numeriche invece degli alias (es. 22 invece di ssh).
sudo lsof +L1+L1link count < 1Analisi Forense: Mostra file aperti che sono stati eliminati dal disco.
sudo lsof -i :22-i :Ninternet port NChi sta usando la porta 22?
sudo lsof -p 1234-ppidTutti i file aperti dal processo con PID 1234.
sudo lsof -u root | grep /tmpFile aperti da root in /tmp — segnale sospetto.
lsof -t -i :3000-tterseRestituisce solo il PID — utile in pipe con kill.

Analisi Forense: Il flag +L1
#

Perché è fondamentale
#

Gli attaccanti spesso scaricano un malware, lo avviano e poi usano rm per eliminare l'eseguibile dal disco. Il processo rimane attivo in memoria, ma non c'è più traccia del file nel filesystem.

La logica del Link Count#

  • L sta per Link Count (il numero di riferimenti a un file).
  • Quando un file viene rimosso ma un processo lo tiene ancora aperto, il suo link count scende a 0.
  • +L1 istruisce lsof a mostrare tutti i file con link count inferiore a 1.
sudo lsof +L1
# Se l'output mostra un processo in esecuzione da /tmp o /var/run che punta a un file (deleted), è un forte indicatore di compromissione.

Leggere l'output (Rete)
#

sudo lsof -i -P | grep LISTEN
# COMMAND  PID  USER  FD   TYPE  DEVICE SIZE/OFF NODE  NAME
# sshd    1234  root  3u  IPv4   12345      0t0  TCP   *:22 (LISTEN)
#  ^        ^    ^    ^    ^                           ^    ^
#  |        |    |    |    |                           |    stato
#  |        |    |    |    tipo (IPv4/IPv6/unix)       indirizzo:porta
#  |        |    |    File Descriptor (u=read/write)
#  |        |    utente proprietario
#  |        PID
#  nome comando

Combinazioni utili
#

# Incident response — panoramica rapida
sudo lsof -i -P | grep LISTEN          # porte aperte
sudo lsof -i TCP | grep ESTABLISHED    # connessioni attive

# Processo sospetto — tutto quello che ha aperto
sudo lsof -p 4821

# Trova chi occupa una porta e terminalo
kill $(lsof -t -i :8080)

Scenario Reale
#

Un alert segnala traffico anomalo. Usi ss -tulpn e trovi un PID strano. Esegui sudo lsof +L1 e noti che quel PID sta eseguendo un file chiamato ... (tre punti) in /tmp che risulta (deleted). Hai appena trovato un malware che cercava di nascondersi.

Collegato a
#

Related