Tutorials

🛡️ chkrootkit – Guida Completa

chkrootkit Check Rootkit è un tool forense open-source che consente di rilevare rootkit conosciuti su sistemi Unix/Linux. Funziona come scanner locale e ispeziona il sistema alla ricerca di modifiche

🛡️ chkrootkit – Guida Completa

📌 Cos’è chkrootkit?

chkrootkit (Check Rootkit) è un tool forense open-source che consente di rilevare rootkit conosciuti su sistemi Unix/Linux. Funziona come scanner locale e ispeziona il sistema alla ricerca di modifiche sospette a file binari di sistema, configurazioni, moduli kernel, connessioni attive e file nascosti.

✅ Ideale in contesti di hardening post-installazione, analisi forense o rilevamento precoce di compromissioni.

🔧 Installazione

Debian/Ubuntu:

bash
sudo apt update
sudo apt install chkrootkit

RHEL/CentOS:

bash
sudo yum install chkrootkit

Arch Linux:

bash
sudo pacman -S chkrootkit

Oppure installazione manuale:

bash
git clone https://github.com/Magentron/chkrootkit.git
cd chkrootkit
make sense
sudo ./chkrootkit

⚙️ Funzionamento di base

🔍 Esecuzione standard:

bash
sudo chkrootkit

Esegue tutti i controlli disponibili, stampando l’output direttamente a terminale.

📋 Visualizzare solo i risultati positivi:

bash
sudo chkrootkit | grep INFECTED

🎯 Cosa controlla chkrootkit?

ModuloCosa verifica
ifconfig, ps, ls, login, sshd...Controlla se i binari di sistema sono stati sostituiti
wted, lastlog, syslogdVerifica manipolazioni nei log
inetd, xinetdControlla anomalie nei servizi
Interfaces di reteRileva interfacce inusuali
/devCerca dispositivi e file nascosti
moduli kernelRileva rootkit in esecuzione come LKM (Loadable Kernel Modules)

📁 File e Log Utili

  • Non genera log di default: è buona prassi redirigere l’output in un file per revisione post-scansione.
bash
sudo chkrootkit > /var/log/chkrootkit.log

🧪 Controlli Avanzati e Opzioni Utili

ComandoDescrizione
-qModalità silenziosa
-xModalità debug estesa (esamina ogni comando usato)
-nSalta la scansione di interfacce di rete
-dSolo debug, non esegue il check
-p Specifica il path alternativo per i binari di sistema (utile per ambienti chroot)

🧩 Esempi di utilizzo

Eseguire una scansione completa e salvare i risultati:

bash
sudo chkrootkit > /var/log/chkrootkit_$(date +%F).log

Debug per analisi forense:

bash
sudo chkrootkit -x > debug_output.txt

🔄 Automazione e Cron

Per automatizzare la scansione:

bash
sudo crontab -e

Aggiungi ad esempio:

bash
0 3   * /usr/sbin/chkrootkit | mail -s "Chkrootkit Daily Report" you@example.com

📌 Differenze tra chkrootkit e rkhunter

ToolCaratteristiche
chkrootkitLightweight, rileva modifiche attive, ottimo per verifica manuale post-compromissione
rkhunterPiù esteso, con verifica checksum, cron job, aggiornamento firma rootkit

⚠️ Utilizzali entrambi per coprire un ampio spettro di detection!


⚠️ Limitazioni

  • Non rileva rootkit avanzati in modalità stealth (es. kernel-space con funzioni di hooking sofisticate).
  • Non ha una firma aggiornata automaticamente (a differenza di rkhunter).
  • Nessun modulo integrato per alerting via mail o SIEM (va integrato manualmente).

🧠 Consigli da Red Teamer / Pentester

  • Se trovi chkrootkit installato su un host, evita modifiche ai binari noti (es. /bin/ls, /sbin/ifconfig) o potrebbero venire rilevate subito.
  • In fase di pivoting post-exploitation, puoi eseguire chkrootkit per verificare la compromissione di un sistema tramite SSH tunneling o reverse shell.
  • Buona prassi: utilizzare chkrootkit da live environment (bootable) per evitare rootkit attivi che falsano l'output.

📎 Conclusione

chkrootkit è uno strumento veloce, affidabile e semplice da utilizzare per individuare rootkit noti, file sospetti e anomalie su sistemi Linux. Ideale per:

  • ✳️ Verifica rapida di compromissione
  • 🔁 Integrazione in audit periodici
  • 🔍 Analisi manuale post-pentesting