
Bash-basiertes Linux-Persistenzerkennungstool für DFIR-Untersuchungen. Scannt 15+ Persistenzmechanismen (systemd, cron, Kernel-Module, SSH, Container) mit Konfidenz-Bewertung und erstellt CSV-/JSONL-Berichte für die forensische Analyse.
Ein umfassendes Tool zur Erkennung von Linux-Persistenzmechanismen für Digital Forensics und Incident Response (DFIR)-Untersuchungen.
Persistnux ist ein Bash-basiertes Tool, das darauf ausgelegt ist, bekannte Linux-Persistenzmechanismen zu identifizieren, die von Angreifern genutzt werden, um den Zugriff auf kompromittierte Systeme aufrechtzuerhalten. Es führt umfassende Prüfungen im gesamten System durch und erstellt detaillierte Berichte im CSV- und JSONL-Format für die weitere Analyse.
.service) in /etc/systemd/system, /lib/systemd/system, /usr/lib/systemd/system/etc/crontab, /etc/cron.d/*)/etc/cron.{daily,hourly,weekly,monthly})/etc/cron.allow und /etc/cron.deny ACL-Dateien – Einträge, die auf nicht existierende Benutzer verweisen, werden markiert/etc/profile, /etc/bash.bashrc, /etc/zshrc)/etc/profile.d/*).bashrc, .bash_profile, .zshrc, .profile usw.)/etc/rc.local und Varianten/etc/init.d)/etc/rc*.d)/etc/ld.so.preload) – jede aufgeführte Bibliothek wird über den Paketmanager verifiziert/etc/ld.so.conf, /etc/ld.so.conf.d/) – Konfigurationsdateiintegrität + nicht standardmäßige Pfad-.so-Dateien werden gescannt und verifiziert/etc/environment LD_PRELOAD/LD_LIBRARY_PATH – Umgebungsdatei wird als HOCH markiert; referenzierte Bibliothekspfade werden verifiziert (unverwaltet/modifiziert → KRITISCH)/etc/modprobe.d/, /etc/modprobe.conf) – Dateiintegrität; install-Direktiven werden auf verdächtige Befehlsziele analysiert; blacklist von Sicherheitsmodulen (AppArmor, SELinux, seccomp) wird als HOCH markiert/etc/modules, /etc/modules-load.d/) – Konfigurationsintegrität; referenzierte Modulnamen werden über modinfo zu .ko-Dateien aufgelöst und verifiziertlsmod) – Aufzählung und Integritätsprüfung.config/autostart, /etc/xdg/autostart) – alle Benutzerverzeichnisse werden im Root-Modus gescannt/etc/environment) – LD_PRELOAD/LD_LIBRARY_PATH-Bibliothekspfade werden verifiziert/etc/sudoers, /etc/sudoers.d/) – NOPASSWD/ALL-Muster → HOCH.so-Module werden über den Paketmanager verifiziert; @include-Direktiven werden verfolgt; /etc/pam.conf wird einbezogenpam_exec.so-Skriptanalyse – fehlende/verdächtige Skripte → KRITISCHpam_python.so / pam_perl.so-Relay-Erkennung – Skript wird extrahiert und analysiertpam_script.so-Hook-Dateierkennung in /etc/security/pam_env.conf und ~/.pam_environment LD_PRELOAD-Bibliotheksverifizierung/etc/security/ allgemeiner Scan/etc/update-motd.d/) – Paketüberprüfung; modifiziert → KRITISCH~/.ssh/authorized_keys – kürzlich geänderte Schlüssel werden markiert; Inhalt der command=-Option auf verdächtige Muster analysiert~/.ssh/rc – Vorhandensein wird als MITTEL markiert; verdächtiger/Reverse-Shell-Inhalt → HOCH/KRITISCHdpkg -V auf Debian/Ubuntu, rpm -Va auf RHEL/CentOS)/usr/bin, /usr/sbin, /bin, /sbin → KRITISCHER Fund/lib/security → KRITISCHER Fundinit= Kernel-Parameter-Injection (/etc/default/grub, /etc/default/grub.d/*.cfg)/pre-pivot-Hooks, die in /sysroot/etc/shadow schreiben/etc/initramfs-tools/scripts/ und /hooks//boot/initrd.img-*-Images (mtime-basiert).pkla-Dateien mit bedingungslosen ResultAny/ResultInactive/ResultActive=yesunix-user:*)-Gewährungen.rules-Dateien mit bedingungslosem polkit.Result.YES (JavaScript-basiertes Polkit >= 0.106)Exec=-Registrierung (/usr/share/dbus-1/system-services/)allow own="*" oder send_destination="*"-Direktiven/etc/NetworkManager/dispatcher.d/)RUN+=-Direktiven, die beliebige Befehle oder Skripte ausführen (/etc/udev/rules.d/, /lib/udev/rules.d/)/run/udev/rules.d/at/cron-Delegierungsmuster in RUN+= (häufige Umgehung von Vordergrundbeschränkungen)--privileged, --pid=host)docker.sock-Bind-Mounts in Container (vollständige Host-Kontrolle über Docker-API)nsenter -t 1 in Container-Entrypoints oder Dockerfilesgetcap – cap_setuid+ep auf GTFOBins → KRITISCH.original, .old, .bak, .real) mit Wrapper-Skripten/etc/passwd/etc/passwdauthorized_keys-Dateien# Repository klonen
git clone https://github.com/yourusername/persistnux.git
cd persistnux
# Skript ausführbar machen
chmod +x persistnux.sh